将atan2限制为特定角度范围

时间:2012-03-31 13:29:06

标签: atan2

我希望我的播放器精灵按照鼠标光标的位置旋转 我正在使用atan2为我的播放器精灵设置一个360度旋转动作脚本。

atan2(XMouse-XPlayer,YMouse-YPlayer) - 90

使用此功能,90度直线向上,0度直接向右,270度直线向下。我需要玩家精灵坐在屏幕的左侧,当它旋转时只面向屏幕的右侧(意味着它不能向后看)。

我需要将角度限制在两个条件下;小于90度或大于270度。

理想情况下,我想将0度设置为直线,然后我只需将条件设置为小于180度的角度(一个有条件而不是两个)。

能做到吗?

3 个答案:

答案 0 :(得分:0)

是。使用min()max()(虽然您还没有说过您正在使用的语言......)

答案 1 :(得分:0)

如果使用弧度,则检查的条件是abs(theta) < PI/2始终为真。这是来自维基百科的图片,只是为了向您展示我的意思。 enter image description here

答案 2 :(得分:0)

为了使0度笔直向上并从0到360度顺时针移动

使用公式:

f(x,y)= 180-90 *(1+符号(y))*(1-符号(x ^ 2))-45 *(2+符号(y))*符号(x)< / p>

    -180/pi()*sign(x*y)*atan((abs(y)-abs(x))/(abs(y)+abs(x)))