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

时间:2013-01-19 10:43:42

标签: three.js

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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/

P.S。在运行它之前,您不需要保存小提琴。没有理由拥有这么多版本。

three.js r.55

答案 1 :(得分:1)

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