java - 如何将法线转换为度数?

标签 java vector rotation normals

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

enter image description here

最佳答案

如果您受限于二维,并且您正尝试将方向 vector (x, y) 转换为与 x 轴的度数,则 atan2(y, x) 几乎肯定会是您最快的方法,除非您将 x 和 y 的可能值限制在一些非常微不足道的情况下。当然,要从 y 轴获取度数,只需使用 atan2(x, y)。这个角度将以弧度为单位。乘以 180/pi 以转换为度数。这应该需要很少的时间。

您绘制的图形表明 atan2(x, y) * 180/Math.PI 将为您提供所需的结果。

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

关于java - 如何将法线转换为度数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8736095/

相关文章:

css - 如何修复故障转换 :rotateX 3d button?

c++ - OpenGL 中的 3D 旋转

c++ - 枚举 unique_ptr vector 的编译错误

c++ - C++ 中的 vector 与数组?

java - B b 和 A<B> b 之间的区别

带有公钥/私钥的java-jwt

c++ - 在 C++ 中的 int 集 vector 中插入值

iOS UILabel 旋转问题

java - 将相对路径作为属性文件中的属性

java - JSch 问题 - 无法检索完整的命令输出