C++ 修改单位向量的角度
我有一个单位向量形式的角度。我需要能够改变这个角度。假设向量V=(x,y)的角度当前为A。如何将角度更改为A+0.2(这只是一个示例,它可以是我正在添加的任何值),而不将向量转换为角度,修改它,然后再次计算适当的向量?使用以下公式逆时针旋转向量:C++ 修改单位向量的角度,c++,vector,trigonometry,angle,C++,Vector,Trigonometry,Angle,我有一个单位向量形式的角度。我需要能够改变这个角度。假设向量V=(x,y)的角度当前为A。如何将角度更改为A+0.2(这只是一个示例,它可以是我正在添加的任何值),而不将向量转换为角度,修改它,然后再次计算适当的向量?使用以下公式逆时针旋转向量: x2 = x * cos(angle) - y * sin(angle); y2 = y * cos(angle) + x * sin(angle); 因此,要将向量V=(x,y)pi旋转一个角度A,您需要执行以下操作: V'=(x*cos(A)-
x2 = x * cos(angle) - y * sin(angle);
y2 = y * cos(angle) + x * sin(angle);
因此,要将向量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);
}
使用以下公式逆时针旋转向量: 因此,要将向量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);
}