我不是数学家,但我以某种方式将游戏开发作为一种爱好。
从未研究过基本数学以外的任何东西,我很难弄清楚如何沿着X轴和方向反转某个物体的角度,面向相反的方向。横跨Y轴。
一张图片说的超过1000个单词(特别是没有受过教育的单词): http://img156.imageshack.us/i/wihwin.png/
我基本上想要扭转粘附在机器人上的大炮物体的方向。当机器人从面向右方变为左方时,我会按照每个人的建议(180 - angle)
进行操作,但它实际上会反转角度,使大炮在瞄准时向上瞄准。所以,我需要做点别的事情,但它逃避了我的知识。
换句话说,我在2D工作,所以我想要一个面朝右的角度。我的角度定义如下:
我希望瞄准角度为91的东西在颠倒时变为89。没有Z轴存在。任何人都会非常友好地帮助我吗?
答案 0 :(得分:6)
在回答你的编辑时你想要的是
-( x - 90 ) + 90
即
180 - x
当然,如果使用标准的C三角函数,你可能会以弧度而不是度数工作,这实际上是
M_PI - x
基本上这分为三个步骤
编辑:刚刚注意到这与@Paul R相同,但您似乎认为这不正确?
答案 1 :(得分:3)
如果不知道如何在你的游戏中定义大炮的方法,这是非常棘手的回答,但我会尝试给出一些指示。
听起来你的大炮是从侧面看的,你想让它从右向左转,但要让大炮朝上。计算取决于0的方向,以及角度是顺时针还是逆时针运行。
如果角度为0使大炮直指向上,则角度从直线上升,顺时针测量。因此,反向角度将是角度。如果负角度不起作用,则使用(360度角)。
如果角度为0的大炮指向右侧并且45度角指向右下方,那么朝上的大炮角度为180°至360°,其中270°为直线向上。因此,要反转角度,您可以使用(540度角)。
如果角度0的大炮指向右侧但是向右上方45度角,那么大炮角度从0到180.要反转角度,请使用(180度角)。
我希望有所帮助!李。
答案 2 :(得分:1)
这取决于您如何定义角度。如果你相对于X轴定义它,那么角度确实只是(180 - alpha)。
答案 3 :(得分:1)
查看图表,您标记的角度是相同的 - 您只需更改它们的起点。如果您实际上想要测量角度以使0度直线上升,那么它是360 - x
因此,如果您瞄准的是45度,则当它反转时,它是360-45 = 315度
答案 4 :(得分:0)
零度角点在哪里,90度点在哪里?
如果零是直线上升那么你可以-1 * angle
。