User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:transzformacio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
tanszek:oktatas:muszaki_informatika:transzformacio [2024/02/20 19:57] – létrehozva kneheztanszek:oktatas:muszaki_informatika:transzformacio [2024/03/26 19:11] (current) – [A forgatási mátrixok] knehez
Line 1: Line 1:
 +===== Koordináták felcserélés =====
 +
 +A koordináták felcserélését közvetlenül elvégezhetjük a következő 2x2-es mátrix alkalmazásával:
 +
 +$$
 +M = \left[\begin{matrix}
 +0 & 1 \\
 +1 & 0 \\
 +\end{matrix}\right]
 +$$
 +
 +Ez a mátrix az alábbiak szerint működik:
 +
 +$$
 +\left[\begin{matrix}
 +0 & 1 \\
 +1 & 0 \\
 +\end{matrix}\right]
 +
 +\left[\begin{matrix}
 +x \\
 +y \\
 +\end{matrix}\right]
 +=
 +\left[\begin{matrix}
 +y \\
 +x \\
 +\end{matrix}\right]
 +$$
 +
 +===== Nagyítás és kicsinyítés =====
 +
 +A nagyítás és kicsinyítés mátrixa az alábbi. Ha $s_x<1$ akkor az $x$ tengely irányába kicsinyítés fog történni, ha $s_x>1$ akkor az $x$ tengely irányába nagyítás. Az $s_y$ esetén is ugyanez a helyzet.
 +
 +$$
 +M = \left[\begin{matrix}
 +s_x & 0 \\
 +0 & s_y \\
 +\end{matrix}\right]
 +$$
 +
 +**Példa**: nagyítsuk a síkban a pontokat a kétszeresére:
 +
 +$$
 +M = \left[\begin{matrix}
 +2 & 0 \\
 +0 & 2 \\
 +\end{matrix}\right]
 +$$
 +===== Síkban eltolás =====
 +
 +Az eltolás, vagy transzláció, egy geometriai objektum helyzetének megváltoztatása a síkon anélkül, hogy forgatnánk, méreteznénk, vagy torzítanánk azt. Egy pont, vagy egy objektum x,y koordinátáinak eltolásához $t_x$ és $t_y$ értékekkel:
 +$​x$ és $y$ tengelyek mentén, a következő transzformációs mátrixot használjuk:
 +
 +$$ T = \left[
 +\begin{array}{cc|c}
 +  1&0&t_x\\
 +  0&1&t_y\\
 +  0&0&1
 +\end{array}
 +\right] $$
 +
 +Ez a mátrix homogén koordinátákat használ, ami lehetővé teszi az eltolások, forgatások és más transzformációk kombinálását egyetlen műveletben. A transzformáció során egy pont P(x,y) homogén koordinátái P(x,y,1) lesznek, és az eltolás utáni koordináták a következőképpen számolhatók ki:
 +
 +$$
 +\left[\begin{matrix}
 +0 & 1 & t_x\\
 +1 & 0 & t_y\\
 +0 & 0 & 1
 +\end{matrix}\right]
 +
 +\left[\begin{matrix}
 +x \\
 +y \\
 +1
 +\end{matrix}\right]
 +=
 +\left[\begin{matrix}
 +x + t_x \\
 +y + t_y \\
 +1
 +\end{matrix}\right]
 +$$
 ===== Forgatás Mátrixszal, amikor a forgatási középpont nem az origóban van ===== ===== Forgatás Mátrixszal, amikor a forgatási középpont nem az origóban van =====
  
Line 9: Line 92:
 Ezeket a lépéseket egyetlen 3x3-as transzformációs mátrixszal kombinálhatjuk, amely így néz ki: Ezeket a lépéseket egyetlen 3x3-as transzformációs mátrixszal kombinálhatjuk, amely így néz ki:
  
-  - **Előkészítés eltolással**: {{:tanszek:oktatas:muszaki_informatika:pasted:20240220-193848.png?130x50}} +    * **Előkészítés eltolással**: $$ T_{eltolás} = \left[ 
-  - **90 fokos forgatás**: {{:tanszek:oktatas:muszaki_informatika:pasted:20240220-194040.png?130x50}} +\begin{array}{cc|c
-  - **Visszatolás**: {{:tanszek:oktatas:muszaki_informatika:pasted:20240220-194219.png?130x50}}+  1&0&-x_c\\ 
 +  0&1&-y_c\\ 
 +  0&0&
 +\end{array} 
 +\right] $$
  
-A teljes transzformációs mátrix, {{:tanszek:oktatas:muszaki_informatika:pasted:20240220-194437.png}}, a következőképpen számítható:+    * **90 fokos forgatás**: $$ T_{forgatás} = \left[ 
 +\begin{array}{cc|c} 
 +  0&1&0\\ 
 +  -1&0&0\\ 
 +  0&0&
 +\end{array} 
 +\right] $$ 
 +  
 +  
 +    * **Visszatolás**$$ T_{visszatolás} = \left[ 
 +\begin{array}{cc|c} 
 +  1&0&x_c\\ 
 +  0&1&y_c\\ 
 +  0&0&
 +\end{array} 
 +\right] $$
  
-{{:tanszek:oktatas:muszaki_informatika:pasted:20240220-194653.png}}+ 
 +A teljes transzformációs mátrix, $ T_{teljes} = T_{visszatolás} * T_{forgatás} * T_{eltolás} $, a következőképpen számítható(figyeljük meg hogy az egyes mátrixok fordított sorrendben vannak szorozva!) 
 + 
 +$$T_{teljes} = \left[ 
 +\begin{array}{cc|c} 
 +  1&0&x_c\\ 
 +  0&1&y_c\\ 
 +  0&0&
 +\end{array} 
 +\right]  
 +* \left[ 
 +\begin{array}{cc|c} 
 +  0&1&0\\ 
 +  -1&0&0\\ 
 +  0&0&
 +\end{array} 
 +\right] 
 +
 +\left[ 
 +\begin{array}{cc|c} 
 +  1&0&-x_c\\ 
 +  0&1&-y_c\\ 
 +  0&0&
 +\end{array} 
 +\right]$$
  
 Ami egyenlő: Ami egyenlő:
  
-{{:tanszek:oktatas:muszaki_informatika:pasted:20240220-194846.png}}+$$T_{teljes} = \left[ 
 +\begin{array}{cc|c} 
 +  0&1&x_c - y_c\\ 
 +  -1&0&y_c - x_c\\ 
 +  0&0&
 +\end{array} 
 +\right]$$ 
 + 
 +**Példa:** 
 + 
 +Tegyük fel, hogy szeretnénk 90 fokkal az óramutató járásával megegyezően elforgatni egy pontot (például $P(2,3)$) az $(1,1)$ pont körül. Ehhez az előbb leírt transzformációs mátrixokat fogjuk használni. Az egyszerűség kedvéért a példában szereplő értékeket közvetlenül beillesztjük a mátrixokba. 
 + 
 +**Előkészítés eltolással** hogy a forgatási középpont $(-1, -1)$ legyen, azaz eltoljuk a pontot úgy, hogy a forgatási középpont az origóba kerüljön: 
 + 
 +$$ 
 +T_{eltolás} = \left[ \begin{array}{ccc} 1 & 0 & -1 \\ 0 & 1 & -1 \\ 0 & 0 & 1 \end{array} \right] 
 +$$ 
 + 
 +**90 fokos forgatás** ($T_{forgatás}$), az origó körül: 
 + 
 +$$ 
 +T_{forgatás} = \left[ \begin{array}{ccc} 0 & 1 & 0 \\ -1 & 0 & 0 \\ 0 & 0 & 1 \end{array} \right] 
 +$$ 
 + 
 +**Visszatolás** ($T_{visszatolás}$), hogy a forgatási középpont visszakerüljön az eredeti $(1, 1)$ helyére: 
 + 
 +$$ 
 +T_{visszatolás} = \left[ \begin{array}{ccc} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1 \end{array} \right] 
 +$$ 
 + 
 +A teljes transzformációs mátrix ($T_{teljes}$) kiszámítása: 
 + 
 +$$ 
 +T_{teljes} = T_{visszatolás} * T_{forgatás} * T_{eltolás} 
 +$$ 
 + 
 +A számítás eredménye: 
 + 
 +$$ 
 +T_{teljes} = \left[ \begin{array}{ccc} 0 & 1 & 0 \\ -1 & 0 & 2 \\ 0 & 0 & 1 \end{array} \right] 
 +$$ 
 + 
 +Most alkalmazzuk ezt a mátrixot a $P(2,3)$ pontraA $P$ pontot kiterjesztjük egy homogén koordinátájú ponttá, így $P(2,3,1)$ lesz: 
 + 
 +$$ 
 +\left[ \begin{array}{ccc0 & 1 & 0 \\ -1 & 0 & 2 \\ 0 & 0 & 1 \end{array} \right] * \left[ \begin{array}{c} 2 \\ 3 \\ 1 \end{array} \right] = \left[ \begin{array}{c} 3 \\ -2 + 2 \\ 1 \end{array} \right] = \left[ \begin{array}{c} 3 \\ 0 \\ 1 \end{array} \right] 
 +$$ 
 + 
 +Tehát, az eredeti $P(2,3)$ pont 90 fokkal való elforgatása az $(1,1)$ pont körül az új $(3,0)$ pontba transzformálja azt. 
 + 
 +===== A forgatási mátrixok ===== 
 + 
 +A 3D-s forgatásokat forgatási mátrixokkal írhatjuk le. Ezek a mátrixok mutatják, hogyan változik egy pont koordinátája a forgatás során. 
 + 
 +==== X tengely körüli forgatás ==== 
 + 
 +A következő képlet az X tengely körüli forgatási mátrixot mutatja, ahol \( \theta \) a forgatás szöge: (a forgatás iránya az óramutató járásával ellentétes) 
 + 
 +$$ 
 +R_x(\theta) = \begin{pmatrix} 
 +1 & 0 & 0 \\ 
 +0 & \cos(\theta) & -\sin(\theta) \\ 
 +0 & \sin(\theta) & \cos(\theta) 
 +\end{pmatrix} 
 +$$ 
 + 
 +==== Y tengely körüli forgatás ==== 
 + 
 +A Y tengely körüli forgatás esetén a forgatási mátrix: 
 + 
 +$$ 
 +R_y(\theta) = \begin{pmatrix} 
 +\cos(\theta) & 0 & \sin(\theta) \\ 
 +0 & 1 & 0 \\ 
 +-\sin(\theta) & 0 & \cos(\theta) 
 +\end{pmatrix} 
 +$$ 
 + 
 +==== Z tengely körüli forgatás ==== 
 + 
 +Végül a Z tengely körüli forgatás mátrixa:
  
 +$$
 +R_z(\theta) = \begin{pmatrix}
 +\cos(\theta) & -\sin(\theta) & 0 \\
 +\sin(\theta) & \cos(\theta) & 0 \\
 +0 & 0 & 1
 +\end{pmatrix}
 +$$
  
tanszek/oktatas/muszaki_informatika/transzformacio.1708459078.txt.gz · Last modified: 2024/02/20 19:57 by knehez