修改单位矢量的角度

时间:2011-05-15 04:03:17

标签: c++ vector trigonometry angle

我有一个单位矢量形式的角度。我需要能够改变这个角度。假设矢量V =(x,y)的角度是当前的A.如何在不转换矢量的情况下将角度更改为A + 0.2(这只是一个示例,它可以是我正在添加的任何值)一个角度,修改它,然后再次计算适当的矢量?

2 个答案:

答案 0 :(得分:5)

使用以下公式逆时针旋转矢量:

enter image description here

因此,要将矢量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);