2012-08-11 29 views

Respuesta

28

Encontrado gracias a alguna ayuda.

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

usando eso traduje la y del cilindro por 100 puntos por lo que básicamente gira en su extremo inferior.

+0

Por mi vida no puedo hacer que esto funcione. Traduce el punto de origen también, y la rotación no cambia en absoluto. – Tyguy7

+2

@ Tyguy7 - Necesita establecer geometry.verticesNeedUpdate = true –

+5

Ahora puede usar este atajo 'geometry.translate (x, y, z);', vea http://stackoverflow.com/questions/12835361/three-js -move-custom-geometry-to-origin – kraftwer1

2

Tomé un enfoque usando pivotes en mi caso. Básicamente, se crea un punto de giro:

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

Da las posibles maneras de hacer que un cuerpo gire alrededor de otro o de cualquier punto. Aquí hay más acerca de ese enfoque: https://github.com/mrdoob/three.js/issues/1830

Cuestiones relacionadas