反映Y轴的角度

时间:2010-12-29 18:23:20

标签: math trigonometry angle

我目前正在使用'Pi - angle'在Y轴上反射一个角度。我使用的角度系统是弧度,0为东,-Pi / 2为北,Pi / 2为南,+/- Pi为西,当我尝试使用上述方法反射角度时,它经常返回Pi以上的值,超出范围。我怎样才能防止这种情况发生?

谢谢,

DLiKS

4 个答案:

答案 0 :(得分:4)

关于x轴的反思:只需使用-angle

关于y轴的反思:使用

   if (angle >= 0)
      return pi - angle
   else
      return -pi - angle

这会在0:3°处创建一个分支切割到177°,而-3°会切割到-177°。 0映射到pi。 (如果您需要在[-pi,pi]区间中排除+ pi的角度,请将“> =”更改为“>”。

这也假定输入角度在[-pi,pi]范围内,正如您的问题陈述所示。如果没有,则需要首先使用对称模2 * pi(其中smod(x,M) = mod(x+M/2,M) - M/2)进行标准化。

答案 1 :(得分:2)

首先将你的初始角度按模数除以。所以,用C语言:

angle = fmod(angle, 2*Pi);
if (angle < -Pi)
    angle = angle + 2*Pi;

float inverted = Pi - angle;

事情是在进一步处理之前始终将输入标准化。

答案 2 :(得分:0)

由于整圆是2 * pi,你总是可以减去2 * pi并使角度回到范围内。

答案 3 :(得分:0)

为什么你选择北方为-Pi / 2。它会破坏所有默认的stuf,如单位圆上的sin(角度)= y坐标。

但是要回答你的问题,你可以在你的所有角度上添加k * 2Pi(其中k是任意整数),角度将保持不变。