Creé una caja de herramientas que puede rotar y reposicionar una malla con un eje en el medio. Cuando separo la rotación y la posición, la posición volverá a la anterior. Sin embargo, esto provoca la rotación no en la malla. Entonces, lo que hago es usar multiplicar. Pero esto no es lo que esperaba porque la posición de la malla debería estar donde la marqué (no en el eje de la malla). ¿Cómo rotar y posicionar el objeto para que permanezca en la posición especificada y rotar en esa ubicación? Aquí está mi código:
const translation = new THREE.Matrix4().makeTranslation( this.valueAOA_X, this.valueAOA_Y, this.valueAOA_Z ); const angleRadian = CoordinateConverter.degreeToRadian( this.valueAOA_Rotation ); const rotationAOA = new THREE.Matrix4().makeRotationZ(angleRadian); this.selectedModel.setPlacementTransform( rotationAOA.multiply(translation) );Lo arreglé con esta línea:
this.selectedModel.setPlacementTransform( translation.multiply(rotationAOA) );