Top Banner
Geometrické Geometrické transformácie a transformácie a premietanie premietanie
27

Geometrické transformácie a premietanie

Jan 03, 2016

Download

Documents

zipporah-deleon

Geometrické transformácie a premietanie. 2D transformácie. 1. Posunutie. 2. Otočenie. 2D transformácie. 3. Škálovanie. 4. Osová súmernosť (preklopenie). 2D transformácie. 5. Skosenie Skosenie objektu si môžeme predstaviť tak, že jednu stranu objektu zafixujeme - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Geometrické transformácie a premietanie

Geometrické transformácie a Geometrické transformácie a premietaniepremietanie

Page 2: Geometrické transformácie a premietanie

2D transformácie2D transformácie 1. Posunutie

2. Otočenie

Page 3: Geometrické transformácie a premietanie

2D transformácie2D transformácie 3. Škálovanie

4. Osová súmernosť (preklopenie)

Page 4: Geometrické transformácie a premietanie

2D transformácie2D transformácie 5. SkosenieSkosenie objektu si môžeme predstaviť tak, že jednu stranu objektu zafixujemea objekt potom „ťaháme” v smere, ktorý je so zafixovanou stranou rovnobežný.

Page 5: Geometrické transformácie a premietanie

2D transformácie 2D transformácie

1. Posunutie

Teraz si ukážeme, ako matematicky zapíšeme transformáciu jednéhobodu. Celý objekt transformujeme tak, že rovnako transformujeme každý jeho bod

(x,y) p=(px,py)

(x’,y’)

Posunutie matematicky zapíšeme jednoducho pripočítaním súradníc vektoraposunutia p k pôvodným súradniciam bodu:

x’=x+px

y’=y+py

Page 6: Geometrické transformácie a premietanie

2D transformácie2D transformácie 2. Otočenie

(x,y)

(x’,y’)

S=(Sx,Sy)

Otočenie okolo bodu (0,0) o uhol v proti smeru hodinových ručičiek:x’=x.cos - y.siny’=x.sin + y.cosOtočenie okolo bodu (0,0) o uhol v smere hodinových ručičiek:x’=x.cos + y.siny’=-x.sin + y.cosOtočenie okolo ľubovoľného bodu S=(Sx,Sy) o uhol :x’=(x-Sx).cos ± (y-Sy).sin + Sx

y’= (x-Sx).sin + (y-Sy).cos + Sy

±

xx’

y’

y

rx=r.cosy=r.sinx’=r.cos(+) =r.cos.cos-r.sin.siny’=r.sin(+) =r.sin.cos+r.cos.sin

Page 7: Geometrické transformácie a premietanie

22D transformácieD transformácie 3. Škálovanie

(x,y)

(x’,y’)

(x’,y’)

(x,y)

Pri škálovaní jednoducho vynásobíme súradnice x a y príslušnými koeficientami:x’=dx.xy’=dy.yKoeficienty dx a dy môžu byť aj záporné, vtedy bude výsledok navyše otočený alebo preklopený:

(x,y)(x’,y’)

dx<0

Page 8: Geometrické transformácie a premietanie

2D transformácie2D transformácie 4. Osová súmernosť (preklopenie)

(x’,y’)=(x,y)-2d.n(ak (x,y) leží v polrovine aX+bY+c0)

P=(x,y)-d.n (priemet (x,y) na priamku)aPx+bPy+c=0Px=x-da, Py=y-dba(x-da)+b(y-db)+c=0

aX+bY+c=0(x,y)

(x’,y’)

n=(a,b)

d

P=(Px,Py)

22 ba

cbyaxd

Vzorec pre preklopenie dostaneme posunutím bodu o vhodnú dlžku (-2d)v smere normály na os:

222'

ba

cbyaxaxx

222'

ba

cbyaxbyy

Page 9: Geometrické transformácie a premietanie

2D transformácie2D transformácie 5. Skosenie

(x3,y3)

(x2,y2)

(x1,y1)=(x1’,y1’)

(x3’,y3

’)(x2’,y2

’) (x1,y1)=(x1’,y1’)(x2,y2)(x3,y3)

(x3’,y3

’) (x2’,y2

’)

Pri skosení sa bod posunie v smere súradnicovej osi. Dĺžka posunutia závisí odvzdialenosti bodu od tejto osi.Skosenie v smere osi x:x’=x+dyy’=ySkosenie v smere osi y:x’=xy’=y+dx

Page 10: Geometrické transformácie a premietanie

3D3D transformácie transformácie 1. PosunutiePosunutie v 3D je analogické posunutiu v 2D:x’=x+px

y’=y+py

z’=z+pz 2. ŠkálovanieTakisto škálovanie je jednoduchým rozšírením 2D škálovania:x’=dx.xy’=dy.yz’=dz.z 3. Súmernosť podľa roviny aX+bY+cZ+d=0

2222'

cba

dczbyaxaxx

2222'

cba

dczbyaxbyy

2222'

cba

dczbyaxczz

Page 11: Geometrické transformácie a premietanie

3D transformácie3D transformácie 4. OtočenieV 3D môžeme bod alebo objekt otáčať okolo troch súradnicových osí a to vždy v smere alebo proti smeru hodinových ručičiek. Celkové otočenie potomdostaneme zložením týchto jednoduchších otočení.

Otáčanieproti smeru hodinových ručičiek

v smere hodinových ručičiek

okolo osi x

x’=x

y’=y.cos - z.sinz’=y.sin + z.cos

x’=x

y’=y.cos + z.sinz’=-y.sin + z.cos

okolo osi y

x’=x.cos - z.sin y’=y

z’=x.sin + z.cos

x’=x.cos + z.sin y’=y

z’=-x.sin + z.cos

okolo osi z

x’=x.cos - y.siny’=x.sin + y.cosz’=z

x’=x.cos + y.siny’=-x.sin + y.cosz’=z

Page 12: Geometrické transformácie a premietanie

3D transformácie3D transformácie 5. Skosenie

Skosenie v smere xy:x’=x+dxzy’=y+dyzz’=z

Skosenie v smere xz:x’=x+dxyy’=yz’=z+dzy

Skosenie v smere yz:x’=xy’=y+dyxz’=z+dzx

Page 13: Geometrické transformácie a premietanie

PremietaniePremietanie Premietanie je transformácia z n-rozmerného priestoru do m-rozmerného,kde m<n. V počítačovej grafike sa väčšinou jedná o premietanie z 3D do 2D

Na premietanie potrebujeme premietaciu plochu (priemetňu) a premietací lúč. Priemetňa je plocha, na ktorej chceme objekt zobraziť. Aj keď to býva najčastejšie rovina, vo všeobecnosti to môže byť plocha ľubovoľného tvaru. Premietací lúč je priamka, ktorá prechádza cez premietaný bod. Priemetbodu vznikne tým, že sa premietací lúč pretne s priemetňou.

premietacielúče

priemetňapriemety

Page 14: Geometrické transformácie a premietanie

PremietaniePremietanie

Page 15: Geometrické transformácie a premietanie

Rovnobežné premietanieRovnobežné premietanie Rovnobežné premietanie sa vyznačuje tým, že všetky premietacie lúče sú rovnobežné. Podľa toho, aký uhol zvierajú premietacie lúče s priemetňou, rozlišujemepravouhlé a kosouhlé premietanie. V počítačovej grafike sa takmer vždypoužíva pravouhlé premietanie.

pravouhlé premietanie kosouhlé premietanie

Page 16: Geometrické transformácie a premietanie

Rovnobežné premietanieRovnobežné premietanie Rovnobežné premietanie zachováva rovnobežnosť Veľkosť priemetu nezávisí od vzdialenosti premietaného objektu od priemetne Rovnobežné premietanie sa používa najmä v technických aplikáciách, kde jezachovanie rovnobežnosti výhodou

Rovnobežné pravouhlé premietanie do roviny xy sa matematicky vyjadrí takto: x’=x

y’=y z’=0

Rovnobežné pravouhlé premietanie do ľubovoľnej roviny:

222'

cba

dczbyaxaxx

222'

cba

dczbyaxbyy

222'

cba

dczbyaxczz

Page 17: Geometrické transformácie a premietanie

Perspektívne premietaniePerspektívne premietanie Pri perspektívnom (stredovom) premietaní vychádzajú všetky premietacie lúče z jedného bodu. Tento bod sa nazýva stred premietania. Pri tomto premietaní sa vo všeobecnosti nezachováva rovnobežnosť, pôvodnerovnobežné úšečky sa môžu zbiehať. Objekty, ktoré sú od stredu vzdialenejšie, budú po premietnutí menšie. Táto projekcia sa používa najmä v architektúre a všade, kde je potrebnérealistické zobrazenie, pretože vytvára obrazy podobné tým, ktoré vidí ľudské oko.

Page 18: Geometrické transformácie a premietanie

Perspektívne premietaniePerspektívne premietanie Podľa polohy priemetne vzhľadom na súradnicové osi rozlišujeme tri typyperspektívneho premietania:

Jednobodová perspektíva vzniká, ak priemetňa pretína len jednu súradnicovú os Pri dvojbodovej perspektíve priemetňa pretína dve súradnicové osi Pri trojbodovej perspektíve pretína priemetňa všetky tri súradnicové osi

Ak si predstavíme kváder, ktorý má steny rovnobežné so súradnicovými osami,tak v prípade jednobodovej perspektívy sa všetky zbiehajúce sa rovnobežky v ňom budú zbiehať do jedného bodu – úbežníka. Pri dvojbodovej perspektíve máme dva úbežníky a pri trojbodovej tri.

Page 19: Geometrické transformácie a premietanie

PerspektPerspektíívne premietanievne premietanie Teraz si odvodíme vzorec pre perspektívne premietanie na všeobecnúrovinu aX+bY+cZ+d=0.

Nech stred premietania má súradnice (Sx,Sy,Sz) a premietaný bod je (x,y,z)

(Sx,Sy,Sz)

(x,y,z)(x’,y’,z’)

L

Premietací lúč L má parametrické vyjadrenie:L=( x+(x-Sx)t, y+(y-Sy)t, z+(z-Sz)t )

Priemet má ležať v danej rovine a zároveň na priamke L, dosadením parametrického vyjadrenia do rovnice roviny dostaneme t:

)()()( zScySbxSa

dczbyaxt

zyx

Page 20: Geometrické transformácie a premietanie

PerspektPerspektívne premietanieívne premietanie Dosadením vypočítaného parametra t do parametrického vyjadrenia Ldostaneme vzorec pre perspektívnu projekciu:

)()()()('

zScySbxSa

dczbyaxSxxx

zyxx

)()()()('

zScySbxSa

dczbyaxSyyy

zyxy

)()()()('

zScySbxSa

dczbyaxSzzz

zyxz

Špeciálny a v počítačovej grafike najčastejšie používaný prípad je projekcia do roviny xy (z=0), kde stred premietania má súradnice (0,0,Sz), resp. projekcia do roviny z=dz so stredom (0,0,0):

)/(' zSxSx zz

)/(' zSySy zz

0'z

zxdx z /'

zydy z /'

zdz '

Page 21: Geometrické transformácie a premietanie

Pohľadová transformáciaPohľadová transformácia Ak chceme zobraziť nejakú scénu, musíme mať daných niekoľko údajov:

Súradnice všetkých objektov v scéne Pozíciu pozorovateľa (v počítačovej grafike sa používa namiesto pozorovateľa pojem kamera). Priemetňu, teda rovinu, do ktorej premietame Orientáciu (natočenie) kamery

Pozíciu kamery zadáme jednoducho súradnicami bodu, kde sa kameranachádza. Priemetňu zadáme bodom, cez ktorý prechádza a ďalej máme dve možnosti:

Zadáme normálový vektor Zadáme dvojicu uhlov pre rotáciu zo základnej polohy (0,0,nz) - tzv. zenit a azimut

zenit určuje otočenie v rovine yz vzhľadom na os z a má rozsah 0-180° azimut určuje otočenie v rovine xy vzhľadom na os x a má rozsah 0-360° Nakoniec zadáme otočenie kamery v rovine

rovnobežnej s priemetňou

y

x

z

azimut

zenit

Page 22: Geometrické transformácie a premietanie

PohPohľľadovadová transformáciaá transformácia Takéto nastavenie pohľadu si môžeme predstaviť ako fotografovanie:

najprv sa s fotoaparátom postavíme na určité miesto môžeme sa poobzerať dookola a nájsť najlepší pohľad (azimut) vyberieme si, či sa na scénu budeme pozerať rovno (zenit=90°), zhora (zenit=0°) alebo zdola (zenit=180°) nakoniec môžeme s fotoaparátom ešte otáčať (na šírku, na výšku, šikmo)

Page 23: Geometrické transformácie a premietanie

Pohľadová transformáciaPohľadová transformácia Objekty v scéne, pozícia kamery a priemetne sú vyjadrené v súradniciach,ktoré nazývame svetové. Svetové súradnice sú teda klasický súradnicový systém, ktorý si zvolí užívateľ a v ktorom prebieha modelovanie scény. Na premietanie je však vhodnejší iný súradnicový systém. Premietacia transformácia je najjednoduchšia, ak je priemetňou rovina xy, resp. rovinas ňou rovnobežná a stred má tvar (0,0,Sz) resp. (0,0,0). Zaveďme teda nový súradnicový systém, kde stred premietania bude počiatkom súradnicovej sústavy a osi budú dané normálovým vektorom priemetne a vektorom orientácie kamery. Takýto systém nazývame pohľadové súradnice.

http://www.cs.nps.navy.mil/people/faculty/capps/iap/class2/viewing/viewing.html

Page 24: Geometrické transformácie a premietanie

Pohľadová transformáciaPohľadová transformácia Pohľadová transformácia je transformácia zo svetových do pohľadových súradníc. Pred premietnutím teda urobíme pohľadovú tranformáciu a až potom príde na rad samotné premietanie.

Postup pri pohľadovej transformácii je nasledujúci: Posunutie, ktoré presunie pozíciu kamery do počiatku súradnicovej sústavy. Rotácia, ktorá otočí súradnicový systém tak, aby normálový vektor priemetne mal súradnice (0,0,nz), resp.

Otočenie okolo osi z o azimut v zápornom smere Otočenie okolo osi x o zenit v zápornom smere

Otočenie okolo osi z (v zápornom smere) o uhol, ktorý zodpovedá orientácii kamery.

Pri rovnobežnom premietaní postupujeme rovnako, tiež máme danú pozíciu kamery, aj keď premietacie lúče nevychádzajú z nej.

Page 25: Geometrické transformácie a premietanie

Pohľadový objemPohľadový objem Pri zobrazovaní scény nezobrazujeme všetky objekty, ktoré sa v scéne nachádzajú, ale len tie objekty alebo časti objektov, ktoré sú viditeľné a prepozorovateľa zaujímavé. Celú scénu teda orežeme tzv. pohľadovým objemom Pri stredovom premietaní má pohľadový objem tvar zrezaného ihlana. Hranice ihlana tvorí:

1. Zorný uhol – obyčajne 40°-60°. Bude to uhol pri vrchole ihlana. 2. Rovina „far” – táto rovina odstraňuje objekty, ktoré sú od kamerypríliš vzdialené. 3. Rovina „near” – touto rovinou môžeme odstrániť objekty, ktoré súpríliš blízko a bránia vo výhľade.

far

nearstred

Page 26: Geometrické transformácie a premietanie

Pohľadový objemPohľadový objem Pri rovnobežnom premietaní má pohľadový objem tvar kvádra. Jeho hranice tvorí:

Zorné pole Rovina far Rovina near

near

farkamera

Page 27: Geometrické transformácie a premietanie

Premietnutie scényPremietnutie scény

Celý proces zobrazenia scény pozostáva teda z týchto častí:

Pohľadová transformácia (transformácia do premietacej polohy)

Orezanie pohľadovým objemom

Premietnutie na priemetňu

Uvedený postup , najmä čo sa týka definície azimutu a zenitu, sa môže v rôznej literatúre a v rôznych softvéroch líšiť. Princíp však zostáva zachovaný.