我在场景中有一系列Object3D,我是从顶点和面部创建的。应该说这些物体的顶点可以离世界起源很远(X和Y值高达600&000; 000)。在尝试旋转或缩放它们时,它们似乎围绕另一个轴而不是它们的本地中心旋转。
奇怪的是,object3D.translateX(或Y Z)工作得很好,正如预期的那样,只是移动位置(即:
object.position.x = 10
将x位置递增10(远离0,0,0本地原点)。
我甚至不完全确定这个物体在哪个轴上旋转。当我使用object.position将几何体移动到0,0,0时,它似乎不会使对象绕自身旋转。
如果有任何用处,我有代码来获取对象的中心(使用:
THREE.Box3().setFromObject(object).center
(虽然可能有更合适的方法?))
确实我发现this post允许我围绕中心点旋转(XYZ),但是我无法找到一种方法围绕XYZ轴单独旋转,只能一起旋转。
有什么解决方案吗?这必须是一个常见的尝试(围绕中心轴缩放和旋转物体?)
编辑:有趣的是我发现各种信息来源暗示旋转是围绕局部轴的,但是我的几何形状似乎并非如此! Saying that rotation is around object axis
答案 0 :(得分:1)
对象围绕网格/对象坐标的0,0,0点旋转。 而不是在世界的0,0,0坐标周围。 并且对象可能不在他们自己的起源中心。
将对象设置为0,0,0并在0,0,0处创建一个多维数据集,并查看它们是否在同一位置。
我需要编辑网格顶点,使它们真正以0,0,0为中心。 之后,我可以毫无问题地旋转它们。
或者将对象放到0,0,0并运行代码以获取对象的中心。我认为它不会是0,0,0。