我正在开发一款游戏,我正在写一个Entity
基类。由于许多实体的行为类似于粒子(2D),我想使用法线而不是旋转度。但是由于我使用OpenGL,我需要具有正常旋转度。从正常转换到度数的最快方法是什么,反之亦然。我知道我可以使用三角函数,例如atan2
sin
cos
等,但我很确定有更快的方法。任何帮助或指示将不胜感激。
答案 0 :(得分:9)
如果你被约束到两个维度并且你试图将方向向量(x,y)转换为x轴的度数,那么atan2(y, x)
几乎肯定是你最快的方法,除非你将x和y的可能值约束到一些非常微不足道的情况。要从y轴获得度数,当然只需使用atan2(x, y)
。该角度将以弧度为单位。乘以180 / pi转换为度数。这应该需要很少的时间。
您正在绘制的数字表明atan2(x, y) * 180 / Math.PI
会为您提供所需的结果。
除非您对代码进行了分析并确定此计算存在瓶颈(不太可能),否则不要关心速度。