Adott (x0, y0) körüli, alpha szögű forgatás mátrixa hogy néz ki? A síkon természetesen.
Három mátrix szorzata lesz:
- Eltolod a pontot (-x0,-y0)-lal
- Elforgatod
- Visszatolod (x0,y0)-lal
Na most az eltolás nem oldható meg 2 dimenziós vektorokkal, úgynevezett homogén koordinátákat kell használni. Ugye tudod, mi az? Szóval minden pontod (vektorod) 3 dimenziós lesz, a mátrixok is 3x3-asok.
Ha nem ismerősek ezek a dolgok neked, akkor olvasgass mondjuk itt: (Nem állítom, hogy ezek a legjobb linkek, éppen csak ezeket találtam elsőre)
Homogén koordináták: [link]
Transzformációk: [link]
(Az utóbbi térben megy, 4x4-es mátrixokkal, síkban hasonlóak lesznek, csak 3x3-asok.)
Köszönöm a válaszod. Igazából 2 pontot kellene elforgatnom alfa szöggel egy harmadik körül. Igazából ez a 3 pont egy háromszög egy-egy pontja. S ezt a háromszöget szeretném ez egyik csúcsa mentén forgatni.
Ezért gondoltam, hogy egy egyszerű mátrixszorzás és kész is az egész, de akkor mégsem ilyen egyszerű :)
Ilyen feltételekkel van ötleted?
Az egész transzformáció nem adható meg egyetlen mátrixal, mivel az eltolás nem affin leképezés.
Én azt csinálnám, hogy áttérek egy lokális koordinátarendszerre, aminek az origója az a pont, ami körül forgatunk. A forgatás utáni pontokat, ami ugye a lok.koord.rendszerben már ismert, visszatranszformálnám eltolással az eredeti rendszerbe.
Ez az egész úgy fog kinézni, hogy a
forgatás utáni pontok vektora = 2x2 mátrix * egy vektor + eltolási vektor.
#3:
"Az egész transzformáció nem adható meg egyetlen mátrixal, mivel az eltolás nem affin leképezés."
Ez így nem igaz, csak így:
"Az egész transzformáció nem adható meg egyetlen 2x2-es mátrixal, mivel az eltolás nem affin leképezés."
Ahogy írtam, homogén koordinátákkal, vagyis még egy plusz dimenzió bevezetésével megadható.
De a kérdezőnek bizonyára nem fontos az, hogy egyetlen mátrix legyen, 3 lépésben is jó, ahogy mindketten írtuk.
Kedves bongolo, ezt a homogén koordinátás dolgot kifejtenéd egy picit bővebben?
Tehát ha jól értem, akkor legyen egy 2 dimenzióban végrehajtandó transzformációsorozat, amely összességében a 2 D-ben nem affin leképezés. Vagyis olyan másodfokú tenzor, amelyet 2x2-es mátrix reprezentál nem létezik.
Viszont azt állítod, létezik olyan másodfokú tenzor, amelyet 3x3-as mátrix reprezentál, és ez magába foglalja az eredeti, síkban végrehajtandó transzformációknak azokat a részeit is, amelyek nem affin leképezések.
Jól értem?
Ha igen, akkor hogyan lehet előállítani ezt a tenzort, amit 3x3-as mátrix reprezentál. Másodfokú lesz -e a tenzor?
Vajon ez a módszer kiterjeszthető -e n dimezis nem affin transzformációkra, ahol valamilyen m>n rendű mátrixal lehetne előállítani az eredeti leképezés esetét?
Mire "hat" ilyenkor a tenzor, mint a leképezés operátora?
Számítógépes grafikában szokásos módszer ez a homogén koordinátának nevezett dolog. Régen volt már, amikor tanultam, nem is emlékszem, milyen elméletet tanultunk hozzá. A lényeg, hogy plusz egy koordinátát adunk minden vektorhoz, ami egy nem 0 szám, és minden [x, y, a] vektor ugyanazt az [x/a, y/a] pontot jelenti (oszlopvektor persze mind, de itt nehéz olyat írni).
A [dx, dy] vektorral való eltolás mátrixa ez lesz:
[1 0 dx]
[0 1 dy]
[0 0 1]
Az első linken, amit pár napja küldtem, részletesen leírják.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!