rotate rotar rotacion respecto referencia punto perfiles objetos objeto imagen girar entidades eje con como comando chaflanes java 3d rotation geometry coordinates

java - rotacion - Cómo rotar un objeto definido por puntos xyz alrededor del eje xy o z



rotar en autocad 3d (0)

Estoy trabajando con un programa donde visualizo moléculas. Las moléculas están representadas por múltiples valores x, y y z para cada átomo. Lo que me gustaría poder hacer es un poco de matemática en cada coordenada y hacer rotar la molécula resultante en uno de los ejes. He intentado usar estas fórmulas:

y'' = y*cos q - z*sin q

z'' = y*sin q + z*cos q

x'' = x

y los correspondientes para los ejes Y y Z. En rotaciones de 180 grados, la molécula resultante se ve bien, pero parece ser el enatiomero (imagen especular). Cualquier otro ángulo (que no sea 360) sesga las moléculas separadas unas de otras.

Lo que esperaba era que todos los átomos rotarían "juntos". Si importa, estoy trabajando en Java.

Gracias por tu ayuda

código editado

if (axis == ''X'') { // y'' = y*cos q - z*sin q // z'' = y*sin q + z*cos q // x'' = x y = y * Math.cos(radians) - z * Math.sin(radians); z = y * Math.sin(radians) + z * Math.cos(radians); } else if(axis == ''Y''){ //z'' = z*cos q - x*sin q //x'' = z*sin q + x*cos q //y'' = y z = z * Math.cos(radians) - x * Math.sin(radians); x = z * Math.sin(radians) + x * Math.cos(radians); } else if(axis == ''Z''){ //x'' = x*cos q - y*sin q //y'' = x*sin q + y*cos q //z'' = z x = x * Math.cos(radians) - y * Math.sin(radians); y = x * Math.sin(radians) + y * Math.cos(radians); }

editar 2. Encontrado el error. Estaba calculando correctamente el primer valor de coordenadas y asignándolo. Cuando intento calcular la segunda coordenada, he cambiado la primera coordenada y, por lo tanto, obtengo el valor incorrecto para la segunda. Lo siento por los problemas