Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在开发一款游戏,并且正在编写一个Entity基类。由于许多实体的行为类似于粒子(2D),我想使用法线而不是旋转度数。但是,由于我使用的是 OpenGL,因此我需要旋转法线的度数。从法线转换为度数的最快方法是什么,反之亦然。我知道我可以使用诸如 etc 之类的三角函数atan2 sin cos,但我很确定有更快的方法。任何帮助或方向将不胜感激。
Entity
atan2
sin
cos
如果您受限于二维并且您尝试将方向向量 (x, y) 转换为从 x 轴的度数,那么atan2(y, x)几乎肯定会是您最快的方法,除非您限制可能的值x 和 y 到一些非常微不足道的情况。当然,要从 y 轴获取度数,只需使用atan2(x, y)。这个角度将以弧度为单位。乘以 180/pi 以转换为度数。这应该需要很短的时间。
atan2(y, x)
atan2(x, y)
您绘制的图形表明atan2(x, y) * 180 / Math.PI它将为您提供所需的结果。
atan2(x, y) * 180 / Math.PI
不要担心速度,除非您已经分析了代码并确定此计算中存在瓶颈(这不太可能)。