23

我创建了一个圆柱体,我想通过改变它的边界框将它的旋转中心移动到它的一端,但它不起作用。

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

有一个我一直在努力的例子。

基本上我想旋转圆柱体,就好像它是一把被它的手柄挥动的剑。

4

2 回答 2

32

多亏了一些帮助才发现。

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

使用它我将圆柱体的 y 平移了 100 个点,所以它基本上在它的下端旋转。

于 2012-08-12T03:43:16.757 回答
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

于 2015-05-15T01:07:51.287 回答