Three.js移动几何中心

23

我已经创建了一个圆柱体并想通过改变其边界框来将其旋转中心移动到其中的一个端点,但这并没有起作用。

http://jsfiddle.net/736a7/1/

这是我正在处理的示例。

基本上,我想让圆柱体像挥舞剑一样绕着它的手柄旋转。

2个回答

32

在得到一些帮助后,发现了这个问题的答案。

geometry.applyMatrix( new THREE.Matrix4().makeTranslation(x, y, z) );

使用这个方法我将圆柱的y轴移动了100个点,使它基本上在下端旋转。


我真的无法让它工作。它也会翻译原点,并且旋转根本不会改变。 - Tyguy7
2
@Tyguy7 - 你需要设置 geometry.verticesNeedUpdate = true。 - Agniva De Sarker
7
现在你可以使用这个快捷键geometry.translate(x, y, z);,参见https://dev59.com/a2nWa4cB1Zd3GeqP03Yb。 - kraftwer1

4

在我的案例中,我采用了一种使用数据透视表的方法。基本上,您需要创建一个数据透视点:

var pointToRotateAround;
var objectToRotate;
...
var pivot = new THREE.Object3D();
pivot.position=pointToRotateAround.position;
pivot.add(objectToRotate);
scene.add(pivot);
...
function render (){
pivot.rotation.z +=0.05;
}
...

它提供了使一个物体围绕另一个物体或任何点旋转的可能方法。以下是有关该方法的更多信息:https://github.com/mrdoob/three.js/issues/1830


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接