1

私はスケルトン アニメーション エディターに取り組んでいます。現在、各ボーンには始点と終点があります。マウスがポイントの下にある場合、その後ドラッグすると、マウスの位置に基づいてボーンが回転します。これを行うには、atan2 を呼び出して、マウス座標をマウスが押された場所であるローカル空間に変換します。これは「機能」しますが、本当に間違っているように感じます。ボーンによって形成されるベクトルは、必ずしもマウス ポイントに対して平行である必要はありません。

atan2 について、私には理解できない何かがあるように感じます。

:

    if(boneUnderMouse)
    {
        boneUnderMouse->setAngle(startAngle + 
       (atan2((float)event.mouse.x - startX,event.mouse.y   - startY)));
    }

ありがとう

4

1 に答える 1

6

atan2引数y,の順序がありますx。したがって、必要です

 atan2((float)event.mouse.y - startY, (float)event.mouse.x - startX)
于 2011-05-23T18:27:28.033 に答える