Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Three.js旋转,不围绕对象中心轴进行缩放_Javascript_Three.js_Geometry_Scale - Fatal编程技术网

Javascript Three.js旋转,不围绕对象中心轴进行缩放

Javascript Three.js旋转,不围绕对象中心轴进行缩放,javascript,three.js,geometry,scale,Javascript,Three.js,Geometry,Scale,在我自己从顶点和面创建的场景中,我有一系列Object3Ds。应该说,这些对象的顶点可以远离世界原点(X和Y值高达600'000ish)。在尝试旋转或缩放它们时,它们似乎围绕另一个轴而不是其局部中心旋转 奇怪的object3D.translateX(或Y Z)工作正常,正如预期的那样,只需移动位置(即: 将x位置增加10(远离0,0,0本地原点) 我甚至不能完全确定该对象围绕哪个轴旋转。当我使用object.position将几何体移动到0,0,0时,该对象似乎也不会围绕自身旋转 如果有任何用处

在我自己从顶点和面创建的场景中,我有一系列Object3Ds。应该说,这些对象的顶点可以远离世界原点(X和Y值高达600'000ish)。在尝试旋转或缩放它们时,它们似乎围绕另一个轴而不是其局部中心旋转

奇怪的object3D.translateX(或Y Z)工作正常,正如预期的那样,只需移动位置(即:

将x位置增加10(远离0,0,0本地原点)

我甚至不能完全确定该对象围绕哪个轴旋转。当我使用object.position将几何体移动到0,0,0时,该对象似乎也不会围绕自身旋转

如果有任何用处,我有代码来获取对象的中心(使用:

(尽管可能有更合适的方法?)

事实上,我已经找到了允许我绕中心点旋转(XYZ)的方法,但是我找不到一种单独绕X Y Z轴旋转的方法,只能一起旋转

有什么解决方案吗?这必须是一个常见的尝试(围绕中心轴缩放和旋转对象?)

编辑:有趣的是,我发现了各种各样的信息来源,暗示着旋转是围绕一个局部轴的,但是我的几何图形似乎不是这样!


对象围绕网格/对象坐标的0,0,0点旋转。 而不是在世界的0,0,0坐标附近。 这个物体可能不在它们自己起源的中心

将对象设置为0,0,0,并在0,0,0处创建一个立方体,然后查看它们是否位于同一位置

我需要编辑网格顶点,使它们真正以0,0,0为中心。 之后,我可以毫无问题地旋转它们


或者将对象设置为0,0,0,然后运行代码以获得对象的中心。我认为它不会是0,0,0。

谢谢你的建议。我会测试并返回给你。对象位置是0,0,0,所以我将其设置为-objectcenter.x,-objectcenter.y,-objectcenter.z以将其带到世界原点(世界0,0)。当我围绕这一点缩放时,我有一个类似的问题,这意味着对象原点必须位于我假设的其他随机点上?但这正是问题所在。当将位置设置为0,0,0时,对象中心必须为0,0,0。如果不是这样,则需要编辑顶点位置。如果希望对象旋转且围绕对象中心旋转,然后将位置设置为0,0,0。然后计算objectcenter。现在通过顶点设置vertex.x=vertex.x-objectcenter.x,vertex.y=vertex.y-objectcenter.y,vertex.z=vertex.z-objectcenter.z
object.position.x = 10
THREE.Box3().setFromObject(object).center