gpt4 book ai didi

math - 水平翻转一个角度

转载 作者:行者123 更新时间:2023-12-03 22:49:35 25 4
gpt4 key购买 nike

我想知道一种在水平轴上翻转角度的方法,而无需进行很多操作。假设我的角度为 0(在我的代码坐标系中“指向右”),翻转的角度应该是 180(指向左)。如果是 90(向上),翻转后它应该仍然是 90。89 是 91,依此类推。
我可以对角度暗示的 X/Y 速度进行操作,但这会减慢速度,我觉得这不是正确的方法。
我不太懂数学,所以我可能会用错误的名字称呼事物......有人可以帮忙吗?

编辑:对不起,我花了很长时间,我不得不长时间离开电脑,好吧...
http://img215.imageshack.us/img215/8095/screenshot031v.jpg

这个截图可能会。上面的结构是两颗卫星和一条连接到中心白点的光束。两颗卫星应该继承白点的角度(为了调试目的它是可见的),所以如果它瞄准一个角度,它们会跟随。左边的卫星是镜像的,所以我按照建议用 180 角计算了它,尽管这也是我的第一次尝试。如您所见,它不是镜像而是翻转的。当白点旋转时,它会向后旋转。另一个没问题。

这是对与其他事物相关联的事物的角度重新计算,pid 将是父级,而 id 是当前的。 pin.ang 是对象链接到另一个对象时复制的角度偏移,因此它在旋转时保持位置:

if(object[id].mirror)
object[id].angle = 180 - (object[id].pin.ang + object[pid].angle);
else
object[id].angle = object[id].pin.ang + object[pid].angle;

这是具体的旋转部分。 OpenGL。 offx/y 用于偏心旋转的事物,例如即将从那里出来的光束,它使其他一切都正确。
glTranslatef(list[index[i]].x, list[index[i]].y, 0);
glRotatef(list[index[i]].angle, 0.0, 0.0, 1.0);
glTranslatef(list[index[i]].offx, -list[index[i]].offy, 0);

当旋转速度(每次重绘添加一个整数到当前角度时,旋转似乎也错过了,顺时针旋转为正,如下所示:
http://img216.imageshack.us/img216/7/screenshot032ulr.jpg

所以它绝对不是 180 度角,尽管它有多么明显。镜像只是通过反转纹理坐标来完成的,因此它不会影响角度。恐怕这可能是 GL 轮换方面的一个怪癖。

最佳答案

反射的数量(只看数学)将是 (180 - angle)

Angle | Reflection
------+-----------
0 | 180
90 | 90
89 | 91
91 | 89
360 | -180
270 | -90

如果您落在“水平面”以下,请注意负面影响 - 您可以保持原样,或作为特殊情况处理。

关于math - 水平翻转一个角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com