我有一个单位矢量形式的角度。我需要能够改变这个角度。假设矢量V =(x,y)的角度是当前的A.如何在不转换矢量的情况下将角度更改为A + 0.2(这只是一个示例,它可以是我正在添加的任何值)一个角度,修改它,然后再次计算适当的矢量?
答案 0 :(得分: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);
}
答案 1 :(得分:1)
x2 = x * cos(angle) - y * sin(angle);
y2 = y * cos(angle) + x * sin(angle);