我有个问题。在Three.js中,我想绕着倾斜23.5度的轴旋转球体(地球)。我找到了sphere.rotation.x,sphere.rotation.y和sphere.rotation.z,但是当我以正确的比例组合它们时,球体的旋转很奇怪-它没有永久的旋转轴。我认为我需要像sphere.rotation.vector(1,0,-1)这样的函数。有谁知道该函数的调用方式以及正确的语法?

非常感谢您的回答!

最佳答案

您需要为此使用quaternionsThis video解释了什么是四元数以及它们如何在3D图形中使用。

您可以像这样构造一个四元数:

quaternion = new THREE.Quaternion().setFromAxisAngle( axisOfRotation, angleOfRotation );

然后通过以下方法将其应用于对象:
object.rotation.setEulerFromQuaternion( quaternion );

您也可以通过使用对象层次结构来实现。例如,您可以制作一个Object3D()实例并将其倾斜23.5度,然后创建一个球体(地球)并将其添加到倾斜的对象中。然后,球体将围绕倾斜的Y轴旋转。但是,四元数是解决此问题的最佳工具。

关于javascript - Three.js-围绕某个轴旋转球体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16319742/

10-09 03:07