3D rotation matrix around a point (not origin)

1.7k Views Asked by At

I'm trying to find the rotation matrix for when rotating around a point that is not origin. I read another post and the post had said that we can think about moving the point back to the origin, but I think the question may have been about 2D. (or referring to a situation where the point is (a,b,0) where a,b != 0) I'm not sure how the method will apply to 3D situation or a situation where the point is (a,b,c) where all of a,b,c are nonzero. I would really appreciate help!

1

There are 1 best solutions below

2
On

Suppose that $R$ is a $3 \times 3$ rotation matrix (corresponding to a rotation about the origin) and that we'd like to perform the same rotation, but centered at the point $v = (a,b,c) \in \Bbb R^3$. This transformation can be implemented by the formula $$ T(x) = R(x - v) + v = Rx + (v - Rv). $$ In other words, the transformation amounts to a the rotation $R$ about the origin followed by a translation by $v - Rv$. Thus, this transformation can be represented in homogeneous coordinates by the block matrix $$ M = \pmatrix{R & v-Rv\\ 0_{1 \times 3} & 1}. $$