Rotazione rispetto ad un punto generico Ω(x0,y0)

Adesso che nell’articolo sulle Coordinate Omogenee abbiamo imparato a comporre le trasformazioni nel piano possiamo facilmente ricavarci la formula di un punto ruotato rispetto ad un punto generico \Omega(x_0,y_0).

Per ottenerla basta applicare una operazione di traslazione T_1 nell’origine del punto A, una rotazione rispetto all’origine R di A e successivamente una nuova traslazione T_2 che riporti A al suo posto 🙂

Quindi: A^\prime = T_2\cdot R\cdot T_1\cdot A = \begin{bmatrix} 1 & 0 & x_0 \\ 0 & 1 & y_0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} \cos\beta & -\sin\beta & 0 \\ \sin\beta & \cos\beta & 0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0 & -x_0 \\ 0 & 1 & -y_0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}

Ovvero:

A^\prime = T_2\cdot R\cdot T_1\cdot A = \begin{bmatrix} \cos\beta & -\sin\beta & x_0 \\ \sin\beta & \cos\beta & y_0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0 & -x_0 \\ 0 & 1 & -y_0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}

Ovvero:

A^\prime = T_2\cdot R\cdot T_1\cdot A = \begin{bmatrix} \cos\beta & -\sin\beta & -x_0\cos\beta+y_0\sin\beta+x_0 \\ \sin\beta & \cos\beta & -x_0\sin\beta-y_0\cos\beta+y_0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}

Quindi la matrice di rotazione rispetto a \Omega(x_0,y_0) è

R = \begin{bmatrix} \cos\beta & -\sin\beta & -x_0\cos\beta+y_0\sin\beta+x_0 \\ \sin\beta & \cos\beta & -x_0\sin\beta-y_0\cos\beta+y_0 \\ 0 & 0 & 1 \end{bmatrix}

E il punto A^\prime è:

A^\prime = \begin{bmatrix} x\cdot\cos\beta-y\cdot\sin\beta-x_0\cos\beta+y_0\sin\beta+x_0 \\ x\cdot\sin\beta+y\cdot\cos\beta-x_0\sin\beta-y_0\cos\beta+y_0 \\ 1 \end{bmatrix} = \begin{bmatrix} (x-x_0)\cdot\cos\beta - (y-y_0)\cdot\sin\beta + x_0 \\ (x-x_0)\cdot\sin\beta+(y-y_0)\cdot\cos\beta+y_0 \\ 1 \end{bmatrix}

A^\prime = \begin{bmatrix} (x-x_0)\cdot\cos\beta - (y-y_0)\cdot\sin\beta + x_0 \\ (x-x_0)\cdot\sin\beta+(y-y_0)\cdot\cos\beta+y_0 \\ 1 \end{bmatrix}

Rotazione rispetto ad un punto generico Ω(x0,y0)