2015-04-27 18 views
19

Ho una mesh che voglio ruotare di 90 gradi all'interno di Three JS. Qui è l'immagine della situazione attuale: enter image description hereCome posso ruotare una mesh di 90 gradi in ThreeJS?

Voglio la maglia selezionato per essere ruotato parallelamente alla grande rete. Ho provato ruotare la matrice così:

matrix = new THREE.Matrix4().makeRotationX(1.57) 

Ma la rete va in strane rotazioni. C'è un modo più semplice per ruotarlo di 90 gradi?

+2

object.rotation.y = THREE.Math.degToRad (90); – gaitat

risposta

5

Diciamo che meshToRotate deve essere ruotato di 90 gradi sull'asse X. Quindi fai quanto segue.

 var meshToRotate = new THREE.Mesh(geometry, material); 

     //Rotating mesh by 90 degree in X axis.  
     meshToRotate.rotateX(Math.PI/2); 
28

La rotazione threejs utilizza radianti (come forse già sapete)

è possibile utilizzare questo

mesh.rotation.x = Math.PI/2; 

o

mesh.rotation.set(new THREE.Vector3(0, 0, Math.PI/2)); 
+1

Ha funzionato alla grande. Grazie! –

8

C'è una funzione che ho creato e usato per rotazione nel mio progetto. Puoi ruotare l'oggetto usando questa funzione.

function rotateObject(object,degreeX=0, degreeY=0, degreeZ=0){ 

    degreeX = (degreeX * Math.PI)/180; 
    degreeY = (degreeY * Math.PI)/180; 
    degreeZ = (degreeZ * Math.PI)/180; 

    object.rotateX(degreeX); 
    object.rotateY(degreeY); 
    object.rotateZ(degreeZ); 

} 


//such as rotating a plane ojbect 

rotateObject(myPlane, 40, 30 ,20); 
+5

NOT good 'THREE.Math.degToRad()' o 'THREE.Math.radToDeg()' –