如何将法线转换为度?

时间:2012-01-05 00:30:40

标签: java vector rotation normals

我正在开发一款游戏,我正在写一个Entity基类。由于许多实体的行为类似于粒子(2D),我想使用法线而不是旋转度。但是由于我使用OpenGL,我需要具有正常旋转度。从正常转换到度数的最快方法是什么,反之亦然。我知道我可以使用三角函数,例如atan2 sin cos等,但我很确定有更快的方法。任何帮助或指示将不胜感激。

enter image description here

1 个答案:

答案 0 :(得分:9)

如果你被约束到两个维度并且你试图将方向向量(x,y)转换为x轴的度数,那么atan2(y, x)几乎肯定是你最快的方法,除非你将x和y的可能值约束到一些非常微不足道的情况。要从y轴获得度数,当然只需使用atan2(x, y)。该角度将以弧度为单位。乘以180 / pi转换为度数。这应该需要很少的时间。

您正在绘制的数字表明atan2(x, y) * 180 / Math.PI会为您提供所需的结果。

除非您对代码进行了分析并确定此计算存在瓶颈(不太可能),否则不要关心速度。