web-dev-qa-db-ja.com

Three.jsはジオメトリの中心を移動します

円柱を作成しましたが、そのバウンディングボックスを変更して回転の中心をその端の1つに移動したいのですが、機能しません。

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

私が取り組んできた例があります。

基本的には、ハンドルで剣を振っているように円筒を回転させたいです。

22
Recur

助けてくれてありがとう。

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

これを使用して、円柱のyを100ポイント変換したので、基本的にはその下端で回転します。

31
Recur

私の場合、ピボットを使用してアプローチしました。基本的に、ピボットポイントを作成します。

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/18

3