我有个问题。在Three.js中,我想绕着倾斜23.5度的轴旋转球体(地球)。我找到了sphere.rotation.x,sphere.rotation.y和sphere.rotation.z,但是当我以正确的比例组合它们时,球体的旋转很奇怪-它没有永久的旋转轴。我认为我需要像sphere.rotation.vector(1,0,-1)这样的函数。有谁知道该函数的调用方式以及正确的语法?
非常感谢您的回答!
最佳答案
您需要为此使用quaternions。 This 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/