next up previous contents
Next: 1.4 Prodotto fra vettori Up: 1. Introduzione Previous: 1.2 Combinazione baricentrica   Indice

1.3 Trasformazioni affini

Nell'ambito della Computer Graphics, le trasformazioni più utilizzate per spostare un oggetto o modificarne in modo graduato le dimensioni, sono le trasformazioni affini.

Definizione 1.4   Sia $\Phi:\mathbb{R}^d\rightarrow\mathbb{R}^d$. $\Phi$ si dice una trasformazione affine se è lineare rispetto alla $\mathbf{x}$, cioè se è del tipo:

\begin{displaymath}
\Phi(\mathbf{x})=A\mathbf{x}+\mathbf{c}
\end{displaymath}

con $A\in\mathbb{R}^{d\times d}$ e $\mathbf{c}\in\mathbb{R}^d$.

È facile verificare che le trasformazione affini hanno la proprietà di non modificare le combinazioni baricentriche, infatti (dalla linearità di $\Phi$ e della sommatoria):

\begin{displaymath}
\Phi\left(\sum_{i=0}^{n}a_i \mathbf{b}_i\right) = \sum_{i=0}...
...f{b}_i+\mathbf{c}\right)=\sum_{i=0}^{n}a_i \Phi(\mathbf{b}_i)
\end{displaymath}

Le più comuni trasformazioni affini sono:
Traslazione
in cui $A=I$ e $\mathbf{c}$ è il vettore di traslazione vero e proprio.
Rotazione
in cui $\mathbf{c}=\mathbf{0}$ e, se ruotiamo intorno all'asse $z$,

\begin{displaymath}
\mathbf{A}=\left(\begin{array}{ccc}
\cos\theta & -\sin\theta...
...in\theta & \cos\theta & 0 \\
0 & 0 & 1 \\
\end{array}\right)
\end{displaymath}

In particolare, una rototraslazione è una rotazione con $\mathbf{c}\neq
\mathbf{0}$.
Figura 1.2: Rotazione
\includegraphics[width=0.3\textwidth]{img/rotazione}
Scaling
in cui $\mathbf{c}=\mathbf{0}$ e

\begin{displaymath}
\mathbf{A}=\left(\begin{array}{ccc}
d_1 & 0 & 0 \\
0 & d_2 & 0 \\
0 & 0 & d_3 \\
\end{array}\right)
\end{displaymath}

con $d_1,d_2,d_3 > 0 $
Un sottoclasse importante delle trasformazioni affini sono i movimenti rigidi o isometrie. Tale tipo di trasformazioni hanno la matrice $\mathbf{A}$ ortogonale, cioè $AA^T=A^T A=I$, e $\mathbf{c}=\mathbf{0}$. L'importanza di queste trasformazioni è che lasciano inalterate le distanze fra i punti e gli angoli, cioè non deformano la figura. Infatti, se consideriamo $\mathbf{x}_1,\mathbf{x}_2,\mathbf{x}_3\in\mathbb{E}^d $, e facciamo il prodotto scalare

\begin{displaymath}
(\mathbf{x}_2 -\mathbf{x}_1 )^T (\mathbf{x}_3 -\mathbf{x}_1)
\end{displaymath}

applicando il movimento rigido, tale quantità rimane invariata
$\displaystyle \left(\Phi(\mathbf{x}_2) -\Phi(\mathbf{x}_1)\right)^T \left(\Phi(\mathbf{x}_3)
-\Phi(\mathbf{x}_1)\right)$ $\textstyle =$ $\displaystyle \left(A(\mathbf{x}_2 -\mathbf{x}_1)\right)^T A
(\mathbf{x}_3 -\mathbf{x}_1) =$  
  $\textstyle =$ $\displaystyle (\mathbf{x}_2 -\mathbf{x}_1)^T \underbrace{A^T A}_{I} (\mathbf{x}_3 -\mathbf{x}_1) =$  
  $\textstyle =$ $\displaystyle (\mathbf{x}_2 -\mathbf{x}_1 )^T (\mathbf{x}_3 -\mathbf{x}_1)$  

Sono movimenti rigidi le rotazioni e le simmetrie rispetto a un asse.
next up previous contents
Next: 1.4 Prodotto fra vettori Up: 1. Introduzione Previous: 1.2 Combinazione baricentrica   Indice
2005-02-09