tanszek:oktatas:muszaki_informatika:transzformacio
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tanszek:oktatas:muszaki_informatika:transzformacio [2024/03/16 20:56] – [Koordináták felcserélés] superuser | tanszek:oktatas:muszaki_informatika:transzformacio [2024/03/26 19:11] (current) – [A forgatási mátrixok] knehez | ||
---|---|---|---|
Line 29: | Line 29: | ||
$$ | $$ | ||
+ | ===== 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 ===== | ===== Síkban eltolás ===== | ||
- | Az eltolás, vagy transzláció, | + | Az eltolás, vagy transzláció, |
- | x és y tengelyek mentén, a következő transzformációs mátrixot használjuk: | + | $x$ és $y$ tengelyek mentén, a következő transzformációs mátrixot használjuk: |
- | {{: | + | $$ T = \left[ |
+ | \begin{array}{cc|c} | ||
+ | 1& | ||
+ | 0& | ||
+ | 0& | ||
+ | \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: | 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, | ===== Forgatás Mátrixszal, | ||
Line 50: | Line 92: | ||
Ezeket a lépéseket egyetlen 3x3-as transzformációs mátrixszal kombinálhatjuk, | Ezeket a lépéseket egyetlen 3x3-as transzformációs mátrixszal kombinálhatjuk, | ||
- | - **Előkészítés eltolással**: | + | * **Előkészítés eltolással**: |
- | - **90 fokos forgatás**: | + | \begin{array}{cc|c} |
- | | + | |
+ | 0& | ||
+ | | ||
+ | \end{array} | ||
+ | \right] $$ | ||
- | A teljes transzformációs mátrix, | + | * **90 fokos forgatás**: |
+ | \begin{array}{cc|c} | ||
+ | 0& | ||
+ | -1& | ||
+ | 0& | ||
+ | \end{array} | ||
+ | \right] $$ | ||
+ | |||
+ | |||
+ | * **Visszatolás**: $$ T_{visszatolás} = \left[ | ||
+ | \begin{array}{cc|c} | ||
+ | 1& | ||
+ | 0& | ||
+ | 0& | ||
+ | \end{array} | ||
+ | \right] $$ | ||
- | {{:tanszek: | + | |
+ | 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& | ||
+ | 0& | ||
+ | \end{array} | ||
+ | \right] | ||
+ | * \left[ | ||
+ | \begin{array}{cc|c} | ||
+ | 0& | ||
+ | | ||
+ | 0& | ||
+ | \end{array} | ||
+ | \right] | ||
+ | * | ||
+ | \left[ | ||
+ | \begin{array}{cc|c} | ||
+ | 1& | ||
+ | 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& | ||
+ | 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}$), | ||
+ | |||
+ | $$ | ||
+ | T_{forgatás} = \left[ \begin{array}{ccc} 0 & 1 & 0 \\ -1 & 0 & 0 \\ 0 & 0 & 1 \end{array} \right] | ||
+ | $$ | ||
+ | |||
+ | **Visszatolás** ($T_{visszatolás}$), | ||
+ | |||
+ | $$ | ||
+ | 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)$ pontra. A $P$ pontot kiterjesztjük egy homogén koordinátájú ponttá, így $P(2,3,1)$ lesz: | ||
+ | |||
+ | $$ | ||
+ | \left[ \begin{array}{ccc} 0 & 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.1710622596.txt.gz · Last modified: 2024/03/16 20:56 by superuser