因此,到目前为止,我在 JavaFX 中用于旋转对象的方法是将其分层为 3 组,每组都附加一个 Rotate 并锁定到单个轴,如下所示:
Rotate heading, roll, pitch;
Group normalrotate, rollrotate, verticalrotate;
heading.setAxis(new Point3D(0,1,0));
normalrotate.getTransforms().add(heading);
roll.setAxis(new Point3D(0,0,1));
rollrotate.getTransforms().add(roll);
pitch.setAxis(new Point3D(1,0,0));
verticalrotate.getTransforms().add(pitch);
每次我需要旋转对象时都做了一个 setAngle() 。这仅适用于航向和滚动,直到我决定我也需要俯仰。现在很多 OpenGL 等教程都说旋转矩阵或四元数最适合这些类型的旋转,但是 javadoc 缺乏任何有用的数据。
示例:当我在 y 轴上将对象旋转 180 度时会发生什么(以及在透明蓝色中实际应该发生的情况) 我错过了什么吗?所有帮助将不胜感激。