Luento 2: Transformaatiot (2D)

Samankaltaiset tiedostot
Luento 3: Transformaatiot (2D)

Sisältö. Luento 1: Transformaatiot (2D) 1. Koordinaattimuunnokset. Muunnokset (jatkuu) 2. Perustransformaatiot. Perustransformaatiot (jatkuu)

Luento 4: 3D Transformaatiot

Luento 3: 3D katselu. Sisältö

Luento 7: 3D katselu. Sisältö

Avaruuden muunnokset Jukka Liukkonen 24. joulukuuta 2009

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

1. Matemaattiset perusteet

Osoita, että kaikki paraabelit ovat yhdenmuotoisia etsimällä skaalauskuvaus, joka vie paraabelin y = ax 2 paraabelille y = bx 2. VASTAUS: , b = 2 2

9.2 Lineaarikuvaus Olkoon A kuvaus (funktio) vektoriavaruudesta V vektoriavaruuteen U: jos nyt

3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. Olkoot A 2 := AA =

763306A JOHDATUS SUHTEELLISUUSTEORIAAN 2 Ratkaisut 1 Kevät y' P. α φ

3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset

Piste ja jana koordinaatistossa

2) Kaksi lentokonetta lähestyy toisiaan samalla korkeudella kuvan osoittamalla tavalla. Millä korkeudella ja kuinka kaukana toisistaan ne ovat?

z Im (z +1) 2 = 0. Mitkä muut kompleksitason pisteet toteuttavat tämän yhtälön? ( 1) 0 z ( 1) z ( 1) arg = arg(z 0) arg(z ( 1)), z ( 1) z ( 1)

Grafiikka 205. Tässä luvussa käsitellään geometriaa ja graafisia kohteita. Mukana on pääosin alkeisoperaatioita.

Suoran yhtälöt. Suoran ratkaistu ja yleinen muoto: Suoran yhtälö ratkaistussa, eli eksplisiittisessä muodossa, on

Matriisialgebra harjoitukset, syksy 2016

Suora 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste

Koordinaatistot 1/6 Sisältö ESITIEDOT: reaaliluvut

TRIGONOMETRISTEN FUNKTIOIDEN KUVAAJAT

4.1 Kaksi pistettä määrää suoran

Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

Jos γ on tylppä, niin. c 2 = h 2 + (b + s) 2 = a 2 s 2 + (b + s) 2 = a 2 + b 2 + 2bs

Toisen asteen käyrät 1/7 Sisältö ESITIEDOT: käyrä, kartio ja lieriö

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 4 / vko 47

Luento 4: Kiertomatriisi

Ellipsit, hyperbelit ja paraabelit vinossa

LAATTATEORIAA. Yleistä. Kuva 1.

102 Käyrä. Piste ( 3,0 ) on käyrällä, jos ja vain jos sen koordinaatit. Siis piste ( 1, 2) Siis piste ( 3,0 ) ei ole käyrällä.

T Vuorovaikutteinen tietokonegrafiikka Tentti

3.1 Lineaarikuvaukset. MS-A0007 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

Symmetrioiden tutkiminen GeoGebran avulla

3.4 Käänteiskuvauslause ja implisiittifunktiolause

Talousmatematiikan perusteet: Luento 9

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

dx = L2 (x + 1) 2 dx x ln x + 1 = L 2 1 L + 1 L ( = 1 ((L + 1)ln(L + 1) L) L k + 1 xk+1 = 1 k + 2 xk+2 = 1 10k+1 k + 2 = 7.

Muodonmuutostila hum

1 Matriisit ja lineaariset yhtälöryhmät

2.3 Voiman jakaminen komponentteihin

y z = (x, y) Kuva 1: Euklidinen taso R 2

Tekijä Pitkä matematiikka

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

1 Kompleksiluvut 1. y z = (x, y) Kuva 1: Euklidinen taso R 2

1 Ominaisarvot ja ominaisvektorit

Pyramidi 4 Analyyttinen geometria tehtävien ratkaisut sivu 352 Päivitetty Pyramidi 4 Luku Ensimmäinen julkaistu versio

Matriisilaskenta, LH4, 2004, ratkaisut 1. Hae seuraavien R 4 :n aliavaruuksien dimensiot, jotka sisältävät vain

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8

Ratkaisuehdotukset LH 3 / alkuvko 45

Lineaarialgebra MATH.1040 / trigonometriaa

Konformigeometriaa. 5. maaliskuuta 2006

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Mat. tukikurssi 27.3.

Teoreettisia perusteita II

6.1 Lineaarinen optimointi

Talousmatematiikan perusteet: Luento 8. Vektoreista ja matriiseista Vektorien peruslaskutoimitukset Lineaarinen riippumattomuus Vektorien sisätulo

a b c d

Tik Tietokoneanimaatio

Matematiikan pohjatietokurssi

BM20A0700, Matematiikka KoTiB2

Käyrien välinen dualiteetti (projektiivisessa) tasossa

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 9: Muuttujanvaihto taso- ja avaruusintegraaleissa

Luento 7: Fotogrammetrinen mittausprosessi

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Insinöörimatematiikka D, laskuharjoituksien esimerkkiratkaisut

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/81

Luento 2: 2D Katselu. Sisältö

Matemaattisen analyysin tukikurssi

Vektoriarvoiset funktiot Vektoriarvoisen funktion jatkuvuus ja derivoituvuus

Sini- ja kosinifunktio

Tietokonegrafiikka. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

6.6. Tasoitus ja terävöinti

a) on lokaali käänteisfunktio, b) ei ole. Piirrä näiden pisteiden ympäristöön asetetun neliöruudukon kuva. VASTAUS:

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä

5 Ominaisarvot ja ominaisvektorit

Ensimmäisen asteen polynomifunktio

Lineaarikuvauksen R n R m matriisi

Objektien deformaatiot

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Luento 4: kertaus edelliseltä luennolta

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Matriisit ja vektorit Matriisin käsite Matriisialgebra. Olkoon A = , B = Laske A + B, , 1 3 3

Preliminäärikoe Pitkä Matematiikka

Lineaarinen yhtälöryhmä

Lineaarialgebran laskumoniste Osa1 : vektorit

Usean muuttujan funktiot

y + z. z + xyz

Lineaarialgebra ja matriisilaskenta I

Luento 2: Tulostusprimitiivit

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

DI matematiikan opettajaksi: Täydennyskurssi, kevät 2010 Luentorunkoa ja harjoituksia viikolle 11: ti klo 13:00-15:30

Transkriptio:

ietokonegrafiikan perusteet -.43 3 op Luento 2: ransformaatiot (2D) Lauri Savioja /7 2D transformaatiot / Sisältö Perustransformaatiot ransformaatioiden hdistäminen Muunnosmatriisit Laskennallisia näkökohtia 2D transformaatiot / 2

. Koordinaattimuunnokset Geometriset objektit ietorakenteet koostuvat leensä pisteistä: tpe Point record, : real end; Line record p,p2 : Point end; Polgon record N : integer; corners : arra [..MA] of Point end; Usein olisi mukavaa, jos voitaisiin määritellä objektin pisteet omassa koordinaatistossaan (C), josta objekti sitten siirrettäisiin sopivan kokoisena sopivaan paikkaan ja asentoon kättökoordinaatistossa (C'). 2D transformaatiot / 3 Muunnokset (jatkuu) ämä voidaan toteuttaa suorittamalla kuvion pisteille transformaatioita eli koordinaattimuunnoksia. Kokonainen geometrinen objekti muunnetaan leensä muuntamalla jokainen piste erikseen. ärkeää on silloin pstä esittämään objektit ja muunnokset siten, että vain olennaisten määrittel- tai ohjauspisteiden käsittel riittää, ja muunnettu kuvio voidaan piirtää näiden avulla. Esim. muunnettu monikulmio voidaan piirtää muunnetujen nurkkapisteiden kautta. 2D transformaatiot / 4 2

2. Perustransformaatiot ) Siirto (translaatio) vektorin t verran: eli vektorimuodossa: Y Y' + t + t t p p + t + t alkuperäinen (C) siirrett (C') ' Huom. Kaikki pisteet siirtvät saman verran; Kuvion muoto, koko ja asento säilvät. 2D transformaatiot / 5 Perustransformaatiot (jatkuu) 2) Kierto (rotaatio) kulman verran vastapäivään origon mpäri: eli matriisimuodossa: Y cos sin sin + cos cos' p Rp sin ' Y' ( sin ' cos' alkuperäinen (C) kierrett (C') Huom. Origo ps paikallaan, kaikki muut pisteet siirtvät; Kuvion muoto ja koko säilvät. 2D transformaatiot / 6 +9 ' 3

Kierto (jatkuu) Esim. ' ( 9 : sin (, cos( : ' ( 8 : sin (, cos( ' : ' Y Y' alkuperäinen (C) kierrett (C') +9 ' 2D transformaatiot / 7 Perustransformaatiot (jatkuu) 3) Mittakaavan muutos (skaalaus) eri suuntiin: Esim. S S Y p Sp Y' S S S.5 alkuperäinen (C) skaalattu (C') S.75 ' 2D transformaatiot / 8 4

Erikoistapauksia: Skaalaus (jatkuu) S S mittasuhteet säilvät (uniform scale) S -, S vaakapeilaus -akselin suhteen S, S - pstpeilaus -akselin suhteen S -, S - kierto 8 (pistesmmetria origon suhteen) Huom. Origo ps aina paikallaan, leensä kaikki muut pisteet siirtvät, erikoistapauksia lukuun ottamatta asento säil, mutta kuvion muoto litist tai ven. 2D transformaatiot / 9 Perustransformaatiot (jatkuu) 4) viistoutus (shearing): koordinaattiakseleita kallistetaan + H + H Y Y' p Hp H H.5.5 Y'' H.5 H alkuperäinen (C) -viistottu (C') H Huom Samalla -arvolla olevat pisteet siirtvät vakiomatkan - suunnassa, vaikka mös muuttuisi. Jos H, niin -akselin pisteet psvät paikallaan (vastaavasti - akseli, jos H ). Origo ps paikallaan; kuvion muoto ja koko muuttuvat. ' 2D transformaatiot / -viistottu (C'') H.25 '' 5

Koordinaatiston kannan muuntuminen Kuvion muuntuminen voidaan mmärtää koordinaatiston kannan vaihtumisena: sovelletaan alkuperäisen kuvion -koordinaatteja vinokantaisessa koordinaatistossa. Lineaarimuunnoksille (edellä esitett) tämä toteutuu matriisikertolaskuna. Y alkuperäinen kanta Y'' muunnettu kanta e2 e M e2' e' '' 2D transformaatiot / 3. Muunnosten hdistel Perusmuunnokset ovat lineaarisia (ts. suorat viivat säilvät suorina), jolloin monikulmiosta riittää muuntaa vain nurkkapisteet. Sama ei päde kaikille esitstavoille (esim. mprälle keskipisteen ja säteen muunnos). Muunnoksia voidaan hdistellä tekemällä ne ksi kerrallaan peräkkäin, esim. skaalaus (S), kierto (R) ja siirto () kuten edellä. Huom Järjests vaikuttaa: SR ja SR antavat eri tuloksen. 2D transformaatiot / 2 6

Y SR SR Y' alkuperäinen (C) Y' S S.5 S.75 ' ' Y'' Y'' S.5 S.5.75 S.75 R +9 '' '' Y''' Y''' R +9 Entä RS? ''' ''' 2D transformaatiot / 3 Muunnosten hdistel (jatkuu) Ongelma: Usein halutaan tehdä hierarkkisia geometrisia malleja, joissa mallin osat muunnetaan omista koordinaatistoistaan laajemman kokonaisuuden koordinaatistoon. Osat voivat samoin muodostua pienemmistä osista jne. Kullakin tasolla voidaan joutua tekemään jopa 3 eri muunnosta (siirto, kierto, skaalaus). Onko N-tasoisen mallin kullekin osalle siis tehtävä 3 N muunnosta, jotta päästäisiin lopulliseen piirtokoordinaatistoon? Vastaus: Onneksi ei ransformaatiot voidaan hdistää (katenoida) hdeksi. 2D transformaatiot / 4 7

Muunnosten hdistel (jatkuu) Esim. skaalaus (2., 3.), kierto 9 ja siirto (+, +5): S: ' 2 ' 3 R: '' -' -3 '' ' 2 : ''' '' + -3 + ''' '' + 5 2 + 5 Mutta: On ikävää tehdä algebrallista käsittelä jokaiselle muunnokselle erikseen. 2D transformaatiot / 5 4. Muunnokset matriisien avulla Pitäisi lötää formalismi, joka sallisi kaikkien esitettjen transformaatioiden homogeenisen käsitteln. Lineaarialgebra tuntuisi tarjoavan oivan välineen kaikkien lineaaristen muunnosten hoitamiseen matriisikertolaskun avulla: m p Mp m 2 m m 2 22 Voidaanko tällä esittää kaikki em. muunnokset? 2D transformaatiot / 6 8

Muunnosmatriisit (jatkuu) Idea: Viistoutusmuunnos (shearing) toteutti saman -suuntaisen translaation kaikille samalla -arvolla oleville pisteille. Vakiosiirtmät molempiin suuntiin () saataisiin 3-ulotteisessa koordinaatistossa tasolla z-koordinaatin suhteen tehtävällä viistoutusmuunnoksella: Z Z' taso z.5 z Y z-akselin viistoutus (' +.5 z) saa tasolla (z) psville kuvioille aikaan vakiosiirtmän 2D transformaatiot / 7 Muunnosmatriisit (jatkuu) Homogeeniset koordinaatit Laajennetaan n-ulotteisen avaruuden piste n+-ulotteiseksi lisäämällä tekijä w, jolla n-ulotteiset koordinaatit kerrotaan: [ ] [ w w w] [ ], jos w Huom: Yhtä n-ulotteisen avaruuden pistettä esittää nt äärettömän monta n+-ulotteista pistettä eri w:n arvoilla. Ne sijaitsevat origon ja pisteen [ ] kautta kulkevalla suoralla. Huom2: Pisteet muunnetaan homogeenisista koordinaateista takaisin tavalliseen esitsmuotoon projisoimalla ne tasolle w, eli jakolaskulla: [ w w w] [ /w /w] [ ], jos w 2D transformaatiot / 8 9

2D transformaatiot / 9 Muunnosmatriisit (jatkuu) Huom3: ämä mahdollistaa mös äärettömän kaukana olevien pisteiden esittämisen äärellisten koordinaattiarvojen avulla: Äärettömdessä sijaitsevan pisteen suunta on kuitenkin hvin määritelt, sillä suuntakulman tangentti on laskettavissa. (ällä on kättöä eritisesti 3-ulotteisissa kuvissa.) Huom4: Homogeenisilla koordinaateilla esitetn pisteen voi mmärtää mös vektorina, jonka suunnan määräävät ja (vektorin ja koordinaattiakselien välisten kulmien kosinit) ja pituuden w(käänteisarvona): Näin esitett vektori ei muutu, jos kaikki komponentit kerrotaan samalla vakiolla. Sama vektori voidaan siis esittää lläolevassa muodossa kun 2 + 2, tai vektorisiirtmää vastaavana pisteenä kun w. [ ] [ ] [ ] / / [ ] [ ] d w / sin cos 2D transformaatiot / 2 Muunnosmatriisit (jatkuu) Kaikki perustransformaatiot voidaan nt ilmaista lineaarimuunnoksina homogeenisille koordinaateille: Huom Näissä muunnoksissa aina pätee, että w' w Siis jos w, niin voidaan kättää suoraan tavallisia koordinaatteja; muunnetun pisteen koordinaatit saadaan ilman jakolaskua. Esim. w w : ' w w cos sin sin cos : ( ( ( ( R w S S w S : w H H w H : + + w

5. Matriisien hdistäminen (katenointi) Matriisikertolasku on assosiatiivinen, ts. kertolaskulauseke voidaan laskea htä hvin vasemmalta oikealle tai päinvastoin: A(BC) (AB)C. Esim. Kuvion kiertäminen mielivaltaisen pisteen F [ F F ] mpäri koostuu kolmesta vaiheesta: : Siirretään piste F origoksi translaatiolla [ -F -F ]. R : Kierretään kuviota kulman verran origon mpäri. : Siirretään origo takaisin translaatiolla [ +F +F ]. Kokonaismuunnos saadaan matriisikertolaskuna: p Rp Mp, missä M R 2D transformaatiot / 2 Matriisihdists (jatkuu) Esim2. Kuvion suurentaminen kaksinkertaiseksi (viivasuhteen säilttäen) ja siirtäminen kmmenen ksikköä oikealle: 2 S 2 Jos suurennus tehdään ensin: p' (S)p Päinvastaisessa järjestksessä: p' (S)p 2D transformaatiot / 22

Matriisihdists (jatkuu) Huom. Pisteet voidaan esittää joko pst- tai vaakavektoreina. Matriisikertolaskun suunta on näissä erilainen, esim.: A C p ; p Mp ; M B D p [ ]; p p M ; M A C Yleisesti matriiseille pätee: (A B) B A B D 2D transformaatiot / 23 Matriisihdists (jatkuu) Erikoistapauksia: ranslaatiot summautuvat hteen (, ) ( 2, 2 ) ( + 2, + 2 ) Skaalaukset kertautuvat keskenään S (S, S ) S (S 2, S 2 ) S (S S 2, S S 2 ) Rotaatioiden kulmat summautuvat (mutta matriisit eivät) R (ϕ ) R (ϕ 2 ) R (ϕ + ϕ 2 ) Skaalaus- ja kiertomatriisit mielivaltaisen pisteen suhteen ovat muuten samoja kuin vastaavat origon suhteen, mutta matriisiin lisätään kaikista tekijöistä riippuva translaatio 2D transformaatiot / 24 2

6. Laskennallisia näkökohtia Käänteismuunnokset Käänteismuunnos palauttaa muunnetun kuvion alkuperäiseksi, ts. M M p p ; M M I ranslaation käänteiskuvaus saadaan vastaavilla negatiivisilla siirtmäarvoilla ( -, - ) Rotaation käänteismatriisi saadaan saman kulman negatiivisella arvolla. Koska cos(-ϕ) cos(ϕ) ja sin(- ϕ) -sin(ϕ), niin käänteismatriisi on alkuperäisen transpoosi: R (- ϕ) R (ϕ) Käänteinen skaalaus saadaan kättämällä skaalaustekijöiden käänteisarvoja (/S, /S ) 2D transformaatiot / 25 Laskennallisia... (jatkuu) Yleisen muunnosmatriisin käänteiskuvaus saadaan vain laskemalla käänteismatriisi numeerisesti. Perusmuunnoksista koostuva matriisi voidaan kuitenkin purkaa edellä esitettihin ksinkertaisiin tapauksiin, sillä leisesti pätee: (A B) B A Siis esim. (R S ) ( S R ) Huom käänteismatriisi on olemassa vain, jos determinantti M <>. ämä tarkoittaa, ettei missään vaiheessa ole skaalattu tekijällä, mikä kutistaisi 2-ulotteisen kuvion suoraksi tai pisteeksi. 2D transformaatiot / 26 3

7. Graafisten objektien muuntaminen Pisteiden avulla ilmaistut kuviot (Polmarker, Polline, Fill-area) muunnetaan kertomalla kunkin ohjauspisteen koordinaatit muunnosmatriisilla. ekstiprimitiivillä on vain ksi ohjauspiste (tekstin aloituskohta), joka voidaan käsitellä muunnosmatriisilla. Muut geometriset muunnokset on korvattava tekstiattribuuttien vastaavilla muutoksilla (skaalaus vaikuttaa kirjasinkokoon, kierto kirjainten pstvektoriin). Laiteohjaimen tasolla muunnosmahdollisuudet riippuvat tekstin toteutustavasta: laitetasolla toteutettu tekstin piirto on harvoin mahdollista muuten kuin vaakasuoraan ja ennalta määrättinä kokovaihtoehtoina. Rasterimaskeina esitettihin kirjaimiin pätee sama kuin rasteriobjekteihin leensäkin (ks. alla). vektoreina tai kärinä toteutetut kirjaimet voidaan käsitellä täsin samalla tavoin kuin viivapiirrokset (ts. jokainen ohjauspiste muunnetaan erikseen). 2D transformaatiot / 27 Objektien muunnokset (jatkuu) Rasteriobjektien kohdalla muunnosten toteutus voi olla vaikeaa ja epätarkkaa (esim. mielivaltainen kierto ja skaalaus). äsmällisesti onnistuvat vain translaatio ja skaalaus kokonaisluvuilla sekä kierto 9 kerrannaisilla. Muissa tapauksissa on approksimaationa sntvä rasteri antialiasoitava (suodatettava). 2D transformaatiot / 28 4

Rasterikuvioiden käsittelstä Rasterikuviot ovat leensä koordinaattiakselien suuntaisia suorakaiteen muoroisia alueita, jotka esitetään tietokoneessa htenäisinä muistialueina. Perusoperaationa on suorakulmaisen osa-alueen kopiointi muistialueesta toiseen eli Bit Block ransfer (bit-blt). ämä on niin tehokasta, että usein pritään muutkin operaatiot suorittamaan sen avulla pelkkinä siirtoina. Esim. : Mielivaltaisen muotoinen rasterikuvio esitetään mpäröivän suorakaiteen kokoisena rasterina sekä siihen liittvänä vastaavan kokoisena maskina, joka ilmaisee hdellä bitillä kuuluuko kukin pikselin kuvioon Kuviota siirrettäessä kopioidaan kohteena olevaan muistialueeseean (esim. nätön kuvapuskuri) vain ne pikselit, joiden kohdalla maskissa on kkönen 2D transformaatiot / 29 Rasteri... (jatkuu) Esim.2 : Rasterikuvion pörittäminen 9 kulman verran voidaan toteuttaa siten, että neliöalueen neljännesten paikkoja vaihdetaan kiertävässä järjestksessä. oistamalla tätä rekursiivisesti osaneliöiden sisällä saadaan lopulta koko kuvion pikselit oikeille paikoilleen. 2D transformaatiot / 3 5