1

単位ベクトルの形で角度があります。この角度を変えられるようにする必要があります。ベクトル V = (x,y) の角度が現在 A であるとします。ベクトルを変換せずに、角度を A+0.2 に変更するにはどうすればよいでしょうか (これは単なる例であり、追加する任意の値である可能性があります)。角度に変更してから、適切なベクトルを再度計算しますか?

4

2 に答える 2

5

次の式を使用して、ベクトルを反時計回りに回転させます。

ここに画像の説明を入力

したがって、ベクトル V = (x, y) pi を角度Aだけ回転するには、次のようにします。

V' = (x * cos(A) - y * sin(A), x * sin(A) + y * cos(A))

またはコードで:

vec2 rotateVec2(const vec2 &vec, float angle)
{
    float newX = vec.x * cos(angle) - vec.y * sin(angle);
    float newY = vec.y * sin(angle) + vec.y * cos(angle);
    return vec2(newX, newY);
}
于 2011-05-15T04:16:16.390 に答える
1
x2 = x * cos(angle) - y * sin(angle);
y2 = y * cos(angle) + x * sin(angle);
于 2011-05-15T04:15:43.930 に答える