¿Cómo se puede rotar un plano definido por su normal y su distancia desde el origen alrededor de un punto arbitrario en el espacio 3D?

Jim Wrenholt tiene la idea correcta.

Un plano definido por su normal [math] \ vec {N} [/ math] y su distancia desde el origen [math] d [/ math] también se puede expresar fácilmente como normal al plano y un punto en ese plano. Tome [math] \ hat {N} = \ vec {N} / | N | [/ math], y tiene [math] \ hat {N} d [/ math] como punto en el plano.

También tiene un centro P para una rotación y una matriz de rotación R. Como sugirió Jim Wrenholt, podemos usar esto traduciendo P al origen, girando y luego volviéndolo a traducir a P. Esto significa [matemáticas] R (\ hat {N} d – P) + P [/ math] será un punto en el nuevo plano, y [math] R \ vec {N} [/ math] (o [math] R \ hat {N} [/ math ]) será una nueva normalidad para el avión. Para que esto vuelva a su forma original, solo necesitamos la distancia desde el origen, que será la porción de ese vector de desplazamiento que está en la dirección de lo normal: [matemáticas] R \ hat {N} \ cdot (R ( \ hat {N} d – P) + P) [/ matemáticas]

Entonces toma el punto P.
Lo que es evidente es que hay muchas rotaciones posibles. Básicamente, cualquier rotación que conserve P hará el trabajo.
Las rotaciones de R3 (nunca dijiste que está en la dilensión 3, así que supongo que) corresponden a las matrices ortogonales del determinante 1. Así que aquí estás: cualquier matriz de este tipo estará bien.

No existe una expresión única para tales rotaciones, pero puede tomar los ángulos de Euler, funcionará.

Traslade el centro de rotación al origen, gire, traslade hacia atrás.