2012-08-11 29 views
18

円筒を作成しましたが、その回転中心をバウンディングボックスを変更することで回転させるが、回転しないようにしたい。Three.jsがジオメトリの中心を移動する

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

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

基本的には、シリンダーをハンドルで振られているかのように回転させたいと思います。

答えて

28

助けをしてくれました。それは下端のオンそれは基本的に回転するので、私は100ポイントシリンダのYを翻訳することを用いて

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

+0

私の人生にとって、私はこれを働かせることはできません。それは原点を変換するので、回転はまったく変わりません。 – Tyguy7

+2

@ Tyguy7 - geometry.verticesNeedUpdate = trueを設定する必要があります –

+5

このショートカットを使用できるようになりました 'geometry.translate(x、y、z);'、http://stackoverflow.com/questions/12835361/three-js -move-custom-geometry-to-origin – kraftwer1

2

私の場合ピボットを使用してアプローチをとった。基本的に、あなたはピボットポイントの作成:

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; 
} 
... 

をこれは、1人の体は別の、または任意の点の周りに回転させることが可能な方法を提供します。ここでそのアプローチについて詳しく説明します:https://github.com/mrdoob/three.js/issues/1830

関連する問題