2015-04-27 19 views
19

Mam siatkę, którą chcę obrócić o 90 stopni wewnątrz trzech JS. Oto obraz obecnej sytuacji: enter image description hereJak mogę obrócić siatkę o 90 stopni w ThreeJS?

Chcę, aby wybrana siatka została obrócona równolegle do dużej siatki. Próbowałem obracanie matrycy tak:

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

Ale siatka przechodzi w dziwnych rotacji. Czy istnieje łatwiejszy sposób obracania go o 90 stopni?

+2

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

Odpowiedz

5

Załóżmy, że meshToRotate należy obrócić o 90 stopni w osi X. Następnie wykonaj następujące czynności.

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

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

threejs rotacja używa radianach (jak zapewne wiesz)

można użyć tego

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

lub

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

Pracował świetnie. Dzięki! –

8

Istnieje funkcja i tworzone i wykorzystywane do obrót w moim projekcie. Możesz obracać obiekt za pomocą tej funkcji.

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 'TRZY.Math.degToRad()' lub 'TRÓJ.Math.radToDeg()' –

Powiązane problemy