Nejčastěji používané transformace souřadnic v rovině.
Body seznamu souřadnic vstup.txt (pořadí souřadnic $x$, $y$) přetransformujte a uložte do výstupního textového souboru s přesností souřadnic na dvě desetinná místa. Matici transformace uložte do textového souboru s plnou přesností výpočtu. Postup výpočtu uložte do souboru a uchovejte pro další použití.
Použijte transformaci:Vypočtené souřadnice uložte do souboru vystup_sh.txt. Transformační matici uložte do souboru tr_sh.txt a postup výpočtu do souboru tr_sh.m.
Vypočtené souřadnice uložte do souboru vystup_po.txt. Transformační matici uložte do souboru tr_po.txt a postup výpočtu do souboru tr_po.m.
Vypočtené souřadnice uložte do souboru vystup_af.txt. Transformační matici uložte do souboru tr_af.txt a postup výpočtu do souboru tr_af.m.
Pozn.: Pro pohledovou kontrolu transformace si můžete zobrazit několik vstupních a transformovaných bodů graficky (funkce plot).
Nejčastěji používané transformace souřadnic v rovině (v homogenních souřadnicích).
Obecná transformace bodu $P[x,y,1]$ na bod $P'[X,Y,1]$:
$ \left( \begin{array}[c]{c} X \\ Y \\ 1 \end{array} \right) = \left( \begin{array}[c]{cccc} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ 0 & 0 & 1 \end{array} \right) \cdot \left( \begin{array}[c]{c} x \\ y \\ 1 \end{array} \right) $
$ \mathbf{P'} = \mathbf{A} \cdot \mathbf{P} $
Pozn.: Obecnou transformaci lze "složit" z elementárních transformací. Matice obecné transformace je součinem matic elementárních transformací. Matice inverzní transformace je inverzní maticí.
Posunutí souřadnicového systému o vektor $[t_x,t_y]$.
Matice posunutí $\mathbf{T}$ (translation):
$\mathbf{T}(t_x,t_y) = \left( \begin{array}[c]{ccc} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{array} \right) $
Pootočení souřadnicového systému kolem počátku o úhel $\alpha$.
Matice rotace $\mathbf{R}$ (rotation):
$ \mathbf{R}(\alpha) = \left( \begin{array}[c]{ccc} \cos\alpha & -\sin\alpha & 0 \\ \sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 1 \end{array} \right) $
Změna měřítka pro osu $x$ (koeficient $s_x$) a pro osu $y$ (koeficient $s_y$).
Matice změny měřítka $\mathbf{S}$ (scale):
$ \mathbf{S}(s_x,s_y) = \left( \begin{array}[c]{ccc} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{array} \right) $
Matice kombinace transformací je součinem matic elementárních transformací (na pořadí násobení matic záleží!).
Pootočení a posun (zachovává měřítko i úhly; min. 2 identické body).
$\mathbf{A} = \mathbf{T}\cdot\mathbf{R}$
Pootočení, posun a změna měřítka stejná pro obě osy ($s_x = s_y$) (zachovává úhly; min. 2 identické body).
$\mathbf{A} = \mathbf{T}\cdot\mathbf{R}\cdot\mathbf{S}$
Pootočení, posun a změna měřítka ($s_x \neq s_y$) (min. 3 identické body)
$\mathbf{A} = \mathbf{T}\cdot\mathbf{R}\cdot\mathbf{S}$