P' = A + [n·(P - A)]*n + cos(theta)*[(P - A) - [n·(P - A)]*n] +- sin(theta)*[n cross (P -
A)] [formula 2]
esta fórmula es más general que la 1 porque sirve para girar alrededor de cualquier eje del
espacio, incluso alrededor de uno que no pase por el origen.
Ejemplo práctico:
Sea P = (3, 4, 5) un punto arbitrario del espacio que
queremos girar theta = pi/8 radianes respecto al eje AB
dado por los puntos A = (9, 2, 6) y B = (7, 0, 1)
Averiguar P' mediante productos escalares y vectoriales
[formula 2]
Solución:
(P - A) = (3, 4, 5) - (9, 2, 6) = (-6, 2, -1)
AB = ((7 - 9), (0 - 2), (1 - 6)) = (-2, -2, -5)
|AB| = sqrt [(-2)^2 + (-2)^2 + (-5)^2] = 5.744562647
n = AB/|AB| = (-2, -2, -5) / 5.744562647 = (-0.348155311,
-0.348155311, -0.870388279)
sin(theta) = 0,382683432
cos(theta) = 0,923879532
y, aplicando la fórmula 2:
P' = A + [n·(P - A)]*n + cos(theta)*[(P - A) - [n·(P -
A)]*n] +- sin(theta)*[n cross (P - A)]
P' = (9, 2, 6) + [(-0.348155311, -0.348155311,
-0.870388279)·(-6, 2, -1)]*(-0.348155311, -0.348155311,
-0.870388279) + cos(theta)*[(-6, 2, -1) - [(-0.348155311,
-0.348155311, -0.870388279)·(-6, 2, -1)]*(-0.348155311,
-0.348155311, -0.870388279)] +- sin(theta)*[(-0.348155311,
-0.348155311, -0.870388279) cross (-6, 2, -1)]
P'1 = (4.19614872, 5.65305114, 3.86032006)
P'2 = (2.59734948, 1.92251959, 5.99205237)
dependiendo de si aplicamos el signo + o el - en la
fórmula, es decir, depende de si el punto P ha girado pi/8
radianes en un sentido o en el otro.