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 回答