Coordinate omogenee

Non possiamo con la rappresentazione matriciale presentata nell’articolo sulle Trasformazioni Nel Piano concatenare la rotazione e la scala con la traslazione. Questo perché in questo secondo caso abbiamo una somma matriciale e nei primi due abbiamo una moltiplicazione.
Possiamo però riscrivere le matrici nel cosiddetto “sistema di riferimento omogeneo”. Non starò qui a spiegare il concetto di sistema di riferimento omogeneo, dirò solo che un punto A la cui rappresentazione matriciale è \begin{bmatrix} x \\ y \end{bmatrix} nel sistema di riferimento omogeneo diventa \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}
Le rispettive matrici di trasformazione diventano:

Traslazione: T = \begin{bmatrix} 1 & 0 & \Delta x \\ 0 & 1 & \Delta y \\ 0 & 0 & 1 \end{bmatrix}

Rotazione: R = \begin{bmatrix} \cos\beta & -\sin\beta & 0 \\ \sin\beta & \cos\beta & 0 \\ 0 & 0 & 1 \end{bmatrix}

Scala: S = \begin{bmatrix} sx & 0 & 0 \\ 0 & sy & 0 \\ 0 & 0 & 1 \end{bmatrix}

Vediamo se i conti ci tornano 🙂
Questa volta possiamo utilizzare la moltiplicazione tra matrici anche per la Traslazione.

Traslazione

A^\prime = T \cdot A = \begin{bmatrix} 1 & 0 & \Delta x \\ 0 & 1 & \Delta y \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} x + \Delta x \\ y + \Delta y \\ 1 \end{bmatrix}

Che è esattamente il nostro punto traslato in coordinate omogenee.

Rotazione

A^\prime = T \cdot A = \begin{bmatrix} \cos\beta & -\sin\beta & 0 \\ \sin\beta & \cos\beta & 0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} x\cdot\cos\beta - y\cdot\sin\beta \\ x\cdot\sin\beta + y\cdot\cos\beta \\ 1 \end{bmatrix}

Che è esattamente il nostro punto ruotato in coordinate omogenee.

Scala

A^\prime = T \cdot A = \begin{bmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} x\cdot s_x \\ y\cdot s_y \\ 1 \end{bmatrix}

Che è esattamente il nostro punto scalato in coordinate omogenee.

Regola di composizione

Quando si compongono 2 o più trasformazioni la precedente è sempre a destra della successiva. Ovvero se abbiamo 3 trasformazioni \Theta_1, \Theta_2, \Theta_3 che vengono fatte in sequenza: Prima \Theta_1, poi \Theta_2 e per ultima \Theta_3 il punto A’ sarà dato da:

A^\prime = \Theta_3\cdot\Theta_2\cdot\Theta_1\cdot A

Coordinate omogenee