javascript - que - threejs studio
¿Cómo puedo rotar una malla 90 grados en ThreeJS? (4)
Digamos que meshToRotate
debe girarse 90 grados en el eje X. Entonces haz lo siguiente.
var meshToRotate = new THREE.Mesh( geometry, material );
//Rotating mesh by 90 degree in X axis.
meshToRotate.rotateX( Math.PI / 2 );
Tengo una malla que quiero girar 90 grados dentro de Tres JS. Aquí está la imagen de la situación actual:
Quiero que la malla seleccionada se gire paralelamente a la malla grande. He intentado rotar la matriz así:
matrix = new THREE.Matrix4().makeRotationX(1.57)
Pero la malla entra en extrañas rotaciones. ¿Hay alguna forma más fácil de girarlo 90 grados?
Hay una función que creé y usé para la rotación en mi proyecto. Puedes rotar el objeto usando esta función.
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);
La rotación de threejs usa radianes (como sabrás)
puedes usar esto
mesh.rotation.x = Math.PI / 2;
o
mesh.rotation.set(new THREE.Vector3( 0, 0, Math.PI / 2));
Probado en r96, también puedes usar
mesh.rotation.setFromVector3(new THREE.Vector3( Math.PI / 2, 0, 0));