围绕其中心点旋转自定义几何网格

Posted

技术标签:

【中文标题】围绕其中心点旋转自定义几何网格【英文标题】:Rotating a custom geometry mesh around its center point 【发布时间】:2013-01-03 00:33:37 【问题描述】:

当我们将 CustomGeometry 添加到定义顶点而不设置位置的场景时,我们如何让它围绕自己的中心点旋转?

小提琴:http://jsfiddle.net/tezcancirakoglu/Ldt7z

在示例代码中,对象围绕场景 X 轴旋转。我需要围绕它的中心点旋转它。

提示:红色立方体网格是旋转对象的初始中心点。我需要围绕红色立方体的 x 轴旋转它...我尝试了很多但还是失败了。

【问题讨论】:

【参考方案1】:

一种解决方案是平移网格几何体,并通过改变网格位置进行补偿,如下所示:

var offset = objMesh.centroid.clone();
objMesh.geometry.applyMatrix(new THREE.Matrix4().makeTranslation( -offset.x, -offset.y, -offset.z ) );
objMesh.position.copy( objMesh.centroid );

更新小提琴:http://jsfiddle.net/Ldt7z/165/

附:你不需要在运行它之前保存你的小提琴。没有理由有这么多版本。

three.js r.55

【讨论】:

非常感谢。那救了我!!【参考方案2】:

您可以使用边界框的中心,这基本上是顶点的“平均值”,但不能保证落在红色立方体上。

【讨论】:

我已经有了中心点,红色立方体是网格的中心点。我只是不知道如何围绕它旋转网格。 我接近解决方案,更新小提琴后,我设法在中心点轴上旋转三角形,但它在所有轴上旋转。如何将其设置为仅在 x 轴上旋转?

以上是关于围绕其中心点旋转自定义几何网格的主要内容,如果未能解决你的问题,请参考以下文章

Three.js - 将自定义几何移动到原点

如何正确旋转地图上的叠加层?

颤动 - 如何使用画布围绕中心旋转图像

如何绘制围绕中心坐标相对于设备旋转的真实世界坐标?

带有旋转的自定义 UIViewController 过渡

检测旋转 CAShapeLayer 上的触摸