VYBRANÉ STATĚ Z POČÍTAČOVÉ GRAFIKY

Podobné dokumenty
8a.Objektové metody viditelnosti. Robertsův algoritmus

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA

Matematika I A ukázkový test 1 pro 2018/2019

Geometrické transformace pomocí matic

Příprava ke státním maturitám 2011, vyšší úroveň obtížnosti materiál stažen z

Cyklografie. Cyklický průmět bodu

KOMPLEXNÍ ČÍSLA. Algebraický tvar komplexního čísla

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

11 Zobrazování objektů 3D grafiky

P R O M Í T Á N Í. rovina π - průmětna vektor s r - směr promítání. a // s r, b// s r,

Rozvinutelné plochy. tvoří jednoparametrickou soustavu rovin a tedy obaluje rozvinutelnou plochu Φ. Necht jsou

2. Vyplňování. Transformace.

MODELOVÁNÍ A SIMULACE

2.5. MATICOVÉ ŘEŠENÍ SOUSTAV LINEÁRNÍCH ROVNIC

Určení tlouštky folie metodou konvergentního elektronového svazku (TEM)-studijní text.

7 Úvod do kinematické geometrie v rovině

KRUHOVÁ ŠROUBOVICE A JEJÍ VLASTNOSTI

Staré mapy TEMAP - elearning

ANALÝZA VZTAHU DVOU SPOJITÝCH VELIČIN

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky LOGICKÉ OBVODY pro kombinované a distanční studium

u (x i ) U i 1 2U i +U i+1 h 2. Na hranicích oblasti jsou uzlové hodnoty dány okrajovými podmínkami bud přímo

Ivana Linkeová SPECIÁLNÍ PŘÍPADY NURBS REPREZENTACE. 2 NURBS reprezentace křivek

Maticová exponenciála a jiné maticové funkce

Energie elektrického pole

FAKULTA STAVEBNÍ VUT V BRNĚ PŘIJÍMACÍ ŘÍZENÍ PRO AKADEMICKÝ ROK

AXONOMETRIE. Rozměry ve směru os (souřadnice bodů) jsou násobkem příslušné jednotky.

X = A + tu. Obr x = a 1 + tu 1 y = a 2 + tu 2, t R, y = kx + q, k, q R (6.1)

KOMPLEXNÍ ČÍSLA. Algebraický tvar komplexního čísla

Lokace odbavovacího centra nákladní pokladny pro víkendový provoz

4. Statika základní pojmy a základy rovnováhy sil

5 Pappova věta a její důsledky

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Korelační energie. Celkovou elektronovou energii molekuly lze experimentálně určit ze vztahu. E vib. = E at. = 39,856, E d

Předmět poskytuje základní vědomosti o normalizaci pro zobrazování, kótování, kreslení řezů a detailů, značení materiálů výrobků na výkresech.

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

REKONSTRUKCE ASTROLÁBU POMOCÍ STEREOGRAFICKÉ PROJEKCE

3. ÚVOD DO ANALYTICKÉ GEOMETRIE 3.1. ANALYTICKÁ GEOMETRIE PŘÍMKY

FERGUSONOVA KUBIKA. ( u) ( ) ( ) X s X s. Kubický spline C 2 má dva stupně volnosti Q 1 Q 2

Numerická matematika 1. t = D u. x 2 (1) tato rovnice určuje chování funkce u(t, x), která závisí na dvou proměnných. První

ZÁKLADNÍ ZOBRAZOVACÍ METODY

Tvorba technická dokumentace

Další plochy technické praxe

ALGORITMUS SILOVÉ METODY

Iterační výpočty. Dokumentace k projektu pro předměty IZP a IUS. 22. listopadu projekt č. 2

Q N v místě r. Zobecnění Coulombova zákona Q 3 Q 4 Q 1 Q 2

CVIČNÝ TEST 40. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Analytická geometrie lineárních útvarů

(4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74,

Příklady k analytické geometrii kružnice a vzájemná poloha kružnice a přímky

Souřadnicové prostory

Vlastní čísla a vlastní vektory

Kinematika rektifikace oblouku (Sobotkova a Kochaňského), prostá cykloida, prostá epicykloida, úpatnice paraboly.

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

3.2. ANALYTICKÁ GEOMETRIE ROVINY

Algoritmy pro ořezávání 2D polygonů

MANUÁL K ŘEŠENÍ TESTOVÝCH ÚLOH

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

0.1 Úvod do lineární algebry

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Odvození středové rovnice kružnice se středem S [m; n] a o poloměru r. Bod X ležící na kružnici má souřadnice [x; y].

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

1 Projekce a projektory

Statistická šetření a zpracování dat.

h n i s k o v v z d á l e n o s t s p o j n ý c h č o č e k

SHODNÁ ZOBRAZENÍ V ROVINĚ GEOMETRICKÁ ZOBRAZENÍ V ROVINĚ SHODNÁ ZOBRAZENÍ

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

Perspektiva. Doplňkový text k úvodnímu cvičení z perspektivy. Obsahuje: zobrazení kružnice v základní rovině metodou osmi tečen

Zářezová metoda Kosoúhlé promítání

Stanislav Olivík POROVNÁNÍ DVOU METOD HLEDÁNÍ ODRAZNÉHO BODU NA POVRCHU ELIPSOIDU

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Počítačová geometrie. + algoritmy DG

0.1 Úvod do lineární algebry

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

Výslednice, rovnováha silové soustavy.

TECHNICKÁ DOKUMENTACE

Základní úlohy v Mongeově promítání. n 2 A 1 A 1 A 1. p 1 N 2 A 2. x 1,2 N 1 x 1,2. x 1,2 N 1

7. Funkce jedné reálné proměnné, základní pojmy

Deskriptivní geometrie pro střední školy

pomocný bod H perspektivního obrázku zvolte 10 cm zdola a 7 cm zleva.)

POTENCIÁL ELEKTRICKÉHO POLE ELEKTRICKÉ NAPĚTÍ

Značení krystalografických rovin a směrů

1. MONGEOVO PROMÍTÁNÍ

Pracovní list č. 6: Stabilita svahu. Stabilita svahu. Návrh či posouzení svahu zemního tělesa. FS s

b) Po etní ešení Všechny síly soustavy tedy p eložíme do po átku a p ipojíme p íslušné dvojice sil Všechny síly soustavy nahradíme složkami ve sm

Momenty setrvačnosti a deviační momenty

Kótované promítání. Úvod. Zobrazení bodu

Mechanické vlastnosti materiálů.

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

Přednáška č. 2 Morfologická krystalografie. Krystalové osy a osní kříže, Millerovy symboly, stereografická projekce, Hermann-Mauguinovy symboly

8.1. Separovatelné rovnice

Mongeova projekce - úlohy polohy

1. Spektrální rozklad samoadjungovaných operátorů 1.1. Motivace Vlastní čísla a vlastní vektory symetrické matice 1 1 A = 1 2.

Mgr. Markéta Trnečková, Ph.D. Palacký University, Olomouc

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

prostorová definice (viz obrázek vlevo nahoře): elipsa je průsečnou křivkou rovinného

Téma: Vektorová grafika. Určete pravdivost následujícího tvrzení: "Grafická data jsou u 2D vektorové grafiky uložena ve voxelech."

R β α. Obrázek 1: Zadání - profil složený ze třech elementárních obrazců: 1 - rovnoramenný pravoúhlý trojúhelník, 2 - čtverec, 3 - kruhová díra

Watkinsův algoritmus řádkového rozkladu

Transkript:

TECNNICKÁ UNIVERZITA V LIBERCI Fakulta strojní Katedra aplkované kybernetky prof. Ing. Vladmír Věchet CSc. VYBRANÉ STATĚ Z POČÍTAČOVÉ GRAFIKY Lberec 007

prof. Ing. Vladmír Věchet CSc. Recenzoval : prof. RNDr. Ing. Mloslav Košek CSc. ISBN 978 80 737 78-7

OBSAH. ÚVOD 5. ZÁKLADNÍ ALGORITMY RASTROVÉ GRAFIKY. 6. Rasterzace úsečky.. 6. Rasterzace kružnce 0.3 Rasterzace znaků 4.4 Vyplňování oblastí. 5.5 Ořezávání a vyplňování polygon 6.6 Cvčení 5 3. GEOMETRICKÉ TRANSFORMACE.. 6 3. D transformace. 6 3. 3D transformace. 33 3.3 Transformace jako změna souřadného systému. 37 3.4 Cvčení 39 4. PROJEKCE 40 4. Středové a rovnoběžné promítání 40 4. Matematcký konspekt planární geometrcké projekce.. 44 4.3 Specfkace lbovolného 3D pohledu 47 4.4 Cvčení. 5 5. OŘEZÁVÁNÍ OBRAZU. 5 5. Cohen-Sutherlandův algortmus pro D.. 5 5. Cohen-Sutherlandův algortmus pro 3D. 56 5.3 Jné metody ořezávání. 58 5.4 Cvčení. 59 6. PARAMETRICKÉ KŘIVKY A PLOCHY. 60 6. Matematcký konspekt. 60 6. Parametrcké křvky. 63 6.3 Parametrcké plochy. 78 6.4 Transformace křvek a ploch 85 6.5 Cvčení. 86

7. MODELOVÁNÍ TĚLES. 88 7. Hranční reprezentace.. 88 7. Konstruktvní geometre těles.. 9 7.3 Šablonování.. 94 7.4 Oktantové stromy. 95 7.5 Cvčení. 96 8. INTENZITY A BARVY. 97 8. Achromatcké světlo. 97 8. Chromatcké světlo 0 8.3 Cvčení 3 9. ZTVÁRŇOVÁNÍ PROSTOROVÉ SCÉNY. 5 9. Určování nevdtelnost. 8 9. Stínování 3 9.3 Jné metody ztvárňování 30 9.4 Cvčení.. 3 Lteratura k dalšímu studu 3

Kap. : Úvod. ÚVOD Učební tet je určen studentům IV. ročníku strojní fakulty oboru automatzované systémy řízení ve strojírenství. Učebnce nebo obecněj knhy zabývající se problematkou počítačové grafky mívají řádově stovky někdy více než tsíc stránek. A to ještě se často v jejch názvech objevuje termín základy Tento učební tet s vůbec neklade za cíl podat průřezovou nformac o problematce počítačové grafky ale jž samotný název napovídá že byly vybrány pouze ty parte z velm obsáhlé problematky o kterých se autor domnívá že budou studentům užtečné př jejch dalším studu oboru především pak navazujících předmětů. Je velm obtížné přesně vymezt co do počítačové grafky patří a co nkolv. To ovšem v této chvíl není náš problém. Navazuje se zde nato co student znají jž ze základů počítačové grafky vyučované v I. ročníku až k technckým prostředkům počítačové grafky se kterým byl student oboru seznámen v jných předmětech. A zde je cílem doplnt jž získané vědomost o další poznatky spoluvytvářející profl absolventa oboru automatzované systémy řízení ve strojírenství. Nc co je v tetu uvedeno není orgnální. Naopak zájemce o hlubší poznání této problematky je třeba odkázat na uvedenou lteraturu. Student může gnorovat cvčení uvedená u každé kaptoly bude ale nucen řešt analogcké příklady u zkoušky. Tet je rozdělen na kaptoly kaptoly na články. Matematcké vztahy obrázky atd. jsou číslovány pořadovým číslem v každém článku. Je-l pak např. v článku 5. uvedena odvolávka na vztah () jedná se o vztah s pořadovým číslem () v tomto článku. Ovšem odvolávka na vztah (3.) znamená vztah s pořadovým číslem () v článku 5.3. Pak ovšem odvolávka na vztah (4..) znamená vztah s pořadovým číslem () v článku 4. (tedy v jné kaptole). Většnou se však vyskytují odvolávky na objekty ve stejném článku výjmečně ve článcích jných. Věchet V. : Vybrané statě z počítačové grafky 5

Článek. Kap. : Základní algortmy rastrové grafky. ZÁKLADNÍ ALGORITMY RASTROVÉ GRAFIKY V klascké vektorové grafce se grafcké elementy zobrazují na výstupním zařízení jako posloupnost úseček. Typckým představtelem vektorového výstupního zařízení je souřadncový zapsovač. Naprot tomu u rastrových výstupních zařízení jako je obrazovkový dsplej se grafcké elementy zobrazují jako posloupnost bodů (pelů). Tedy pod pojmem rasterzace budeme dále rozumět převod grafckého elementu na posloupnost pelů.. Rasterzace úsečky Tato úloha zní následovně. Je třeba znázornt úsečku jako posloupnost pelů začínající ve startovacím pelu ( p y p ) a končící v koncovém pelu ( k y k ). Přírůstkový algortmus (DDA) Nejjednodušší algortmus pro generování úsečky je označován jako DDA (Dgtal Dfferental Algorthm). Vyjdeme-l z rovnce přímky y = m + b () tak nkrementujeme a počítáme v režmu pohyblvé řádové čárky y s následným zaokrouhlením y na celý počet pelů. Můžeme elmnovat násobení neboť pro každý bod s + = + bude y + = m + + b = m + b + m = y + m () obr. Volba řídící osy tedy jakákol nová hodnota ( + y + ) je generována v ( y ). Jedna z vad algortmu však spočívá v tom že pokud směrnce m > tak krok v ose zapříční krok y > (vz černé 6 Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek. body na obr. ). Tudíž pro m > zaměníme úlohy os a y (řekneme že tzv. řídící osou jž nebude ale osa y) tzn. že budeme nkrementovat o y a odpovídající počítat z rekurentního vztahu + = +. (3) m Ovšem zásadní vadou uvedeného algortmu jsou operace s operandy zobrazeným v pohyblvé řádové čárce (k tomu pak následný převod výsledku do režmu pevné řádové čárky). Vzhledem k jejch časové náročnost jsou operace v režmu pohyblvé řádové čárky zásadně nežádoucí a uvedený algortmus není praktcky použtelný. Je vdět že jednoduchost algortmu není totéž jako jeho efektvnost. Bresenhamův algortmus Uvažujme nejprve případ kdy směrnce m < 0 > a rovnc přímky ve tvaru y y = + b (4) kde = y = y y. (5) k p k p obr. Rasterzace úsečky Na -tém kroku vysvítíme pel P a podle relace s a t volíme buď S nebo T (vz obr. ). Následující vztahy jsou zcela evdentní : P pokud s < t tedy s t < 0 (6) S P pokud s t tedy s t 0 (7) T t = s s t = s (8) Věchet V. : Vybrané statě z počítačové grafky 7

Článek. Kap. : Základní algortmy rastrové grafky y s = ( + ) + b y (9) y s t = ( + ) + b y. (0) Protože > 0 tak místo s t použjeme rozhodovací proměnnou d danou vztahem d ( s t) = y ( + ) + b y. = () Dosadíme-l ve vztahu () za hodnotu + dostaneme predkc ve tvaru : ( + ) + b y. d + = y () Tudíž ( ) ( y y ) = d + y ( y y ). d + (3) = d + y Predkce d + tedy budeme určovat následovně : P S y = y d = d + (4) + y ( y ). T y = y + d+ = d + P (5) Zbývá nyní určt pouze počáteční hodnotu rozhodovací proměnné : d y = ( s ) = = y. (6) V Bresenhamově algortmu pro m < 0 > tedy začínáme s rozhodovací proměnnou d = d = y (7) a dále tedy predkce budou : d d + + = d = d + ( y ) + y d 0 d < 0. V tomto algortmu se vyskytuje pouze sčítání v režmu pevné řádové čárky a násobení v tomtéž režmu (shft left) tedy celý postup je mnohem rychlejší než u předešlého algortmu. Nutná rozšíření uvedeného algortmu jsou :. pro m > je třeba zaměnt rol os a y řídící osou bude y tzn. y + y =. pro m < 0 hodnotu jedné ze souřadnc nezvyšujeme o nýbrž snžujeme o. Doplnění těchto rozšíření je ponecháno na čtenář. Celý problém lze převést na rekurentní výpočet adres pelů v obrazové pamět. V uvedeném případě pro m < 0 > vysvětlujeme vždy pel (+ y ) nebo ( + y + ). Adresa pelu ( y) v obrazové pamět bude ( y) base + y ( ma + ) adr = + (9) (8) 8 Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek. pokud adresujeme pely se souřadncem od (0 0) do ( ma y ma ). Když určíme startovací adresu (odpovídající startovacímu bodu úsečky) tak každou následující adresu (pro další pel) budeme určovat rekurentně ze vztahů : nebo ( + y) = adr( y) + adr (0) ( + y + ) = adr( y) + ma +. adr () obr. 3 Prncp vyhlazovací metody pro úsečku Uvedené algortmy generují schodovtý vzhled úseček který je tím více patrný čím menší je rozklad zobrazovací jednotky. Tento jev bývá označován jako alasng. Pro odstranění tohoto jevu se používá vyhlazovacích metod označovaných jako antalasng. U těchto metod se v prncpu vychází z toho že pel není matematcký bod ale jde o malé plošky pokrývající stínítko obrazovky. V určté abstrakc s představme čtvercové pely a vykreslíme pak úsečku tloušťky pel ( vz obr. 3 ). Př vysvícení pelu bude relatvní hodnota jasu úměrná velkost abstraktního pelu překrytého naší pelovou úsečkou. Tak např. podle obr. 3 pokud pel (a b) vysvítíme s relatvním jasem ~85% tak pel (a+ b+) se ~55% (a b+ ) se ~7% atd. To koresponduje s představou že pel který je vzdálenější od teoretcké úsečky má tomu odpovídající menší jas. obr. 4 Jas různě skloněných úseček VěchetV. : Vybrané statě z počítačové grafky 9

Článek.-. Kap. : Základní algortmy rastrové grafky Další problém spočívá v tom že stejným počtem pelů jsou zobrazeny různě dlouhé úsečky. Optcky je pak delší úsečka méně jasná. Na obr. 4 je délka dagonální úsečky délka vodorovné úsečky ovšem obě jsou zobrazeny stejným počtem pelů. Úpravu provedeme tak že nejvyšší jas by měly mít úsečky se sklonem π/4 nejnžší vodorovné a svslé úsečky.. Rasterzace kružnce Způsob rasterzace kružnce př generování čtvrtkruhu založený na využtí vztahu y = R < 0 R > () je z časových důvodů nepřjatelný. Rovněž tak parametrcké vyjádření kružnce není pro daný účel použtelně (výpočet trgonometrckých funkcí). Dále bude uveden algortmu odvozený na základě Bresenhamovy metodologe nazývaný jako Mchenerův algortmus. Z důvodů symetre stačí generovat pouze osmnu kružnce a ostatních 7 bodů doplnt na základě symetre. Podle obr. se spokojíme s generováním bodů na oblouku z bodu A do bodu B a ostatní body doplníme na základě symetre. obr. Využtí symetre př generování kružnce Budeme postupovat tak že v každém kroku vybereme bod P ( y ) který je nejblíže zadané kružnc tedy kde hodnota P ) = y () D( R je nejblíže 0 tedy mnmalzujeme D( P ). Tedy můžeme psát (vz obr. ) : 0 Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek. ( ) ( + ) + y D S (3) = R ( ) ( + ) + ( y ). D T (4) = R Pokud pak D( ) D( T ) proměnné d * S < tak volíme S jnak volíme T. To odpovídá použtí rozhodovací ( S ) D( T ) = D (5) obr. Generování kružnce resp. porovnáváním hodnoty této rozhodovací proměnné k 0. Pokud však skutečný průběh kružnce je podle C na obr. tak D( ) 0 D( ) < 0 podle rozhodovací proměnné d ( S ) + D( T ). S T a pak stejně se můžeme rozhodovat > = D (6) V případě A a B je D( ) 0 D( ) < 0 S T (volíme vždy S ) a pak d < 0. V případě podle D a E jsou obě dference kladné a pak je d > 0 stejně tak jako. Jako rozhodovací proměnnou můžeme tedy volt d podle vztahu (6) a dosazením ze vztahů (3) a (4) do (6) dostaneme : d ( + ) + y + ( y ). = R (7) Pokud v rovnc (7) položíme - = 0 a y - = R dostaneme počáteční hodnotu d = 3. (8) R Predkc budeme počítat opět alternatvně :. Pokud byla provedena volba S tak y - = y a pak * d ( + ) ( + ) = ( + ) ( ) d d = + (9) + tedy Věchet V. : Vybrané statě z počítačové grafky

. 6 4 + + = + d d (0). Byla provedena volba T tak y = y - a pak ( ) ( ) ( ) ( ) ( ) R y y R y y d d + + + + + = + () tedy ( ). 0 4 + + = + y d d () Pro generování kružnce (popř. oblouku) tedy použjeme vztahy (0) a () přčemž počáteční hodnotu rozhodovací proměnné volíme podle vztahu (8). obr. 3 Jný způsob určení predkce Jný způsob určení predkce je založen na následujícím postupu (vz obr. 3). Pro porovnávání použjeme střed úsečky s koncovým body S a T rozhodovací proměnná pak bude ( ). R y d + + = (3) Pro d < 0 pak volíme S jnak T. Predkce bude ( ). R y d + + = + (4) Pak ovšem pro volbu S bude y = y - a tedy ( ) ( ). R y R y d d + + + + = + (5) Tím dostáváme první alternatvní vztah pro generování kružnce ve tvaru. 3 + + = + d d (6) Článek. Kap. : Základní algortmy rastrové grafky Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek. Pro volbu T bude y = y - a tedy 3 d + d = ( + ) + y R ( + ) y + R. (7) Takže druhý alternatvní vztah pro generování kružnce bude mít tvar d d + y 5. (8) + = + Počáteční hodnotu d určíme dosazením - = 0 y - = R do vztahu (3) tedy d = R +. (9) 4 Abychom se vyhnul operacím v pohyblvé řádové čárce vyloučíme hodnotu 0.5 ze vztahu (9) a budeme volt počáteční hodnotu d =. (0) R To je možné neboť o stejnou hodnotu jsou posunuta všechna d. obr. 4 Generování elpsy Stejný postup můžeme aplkovat na elpsu. Vyjdeme z rovnce b + a y a b = 0. () * Budeme generovat čtvrtnu elpsu přčemž pro < 0 > bude řídící osou osa v ntervalu ( * 0> bude řídící osou osa y (vz obr. 4). Takže např. pro jako řídící osu bude d b () ( + ) + a y a b. = Celý další postup je ponechán na čtenář. VěchetV. : Vybrané statě z počítačové grafky 3

Článek.3 Kap. : Základní algortmy rastrové grafky.3 Rasterzace znaků Záznam tvaru znaku (font) může estovat ve dvou podobách. V prvním případě je tvar znaku zakódován obecně pomocí křvek a pak často mluvíme o tzv. vektorovém písmu. Takové písmo je nezávslé na rozlšení tj. nepotřebujeme další soubor písma když se velkost znaků změní neboť křvky podléhají geometrckým transformacím. Ncméně př výstupu na rastrovém zařízení musí být vektorové písmo rasterzováno resp. křvky popsující vektorové písmo jsou rasterzovány. obr. Příklad vzorů velkých písmen Rastrový (btmapový) font je zakódován ve mřížce (btové matc). Vzor každého znaku je uložen v pamět a odtud se př požadavku na zobrazení znaku kopíruje do obrazové pamět. Pro velká písmena číslce a nterpunkční znaménka je třeba matc rozměru alespoň 57. Taková mřížka obsahuje 35 bodů a každý takový znak tedy může být reprezentován posloupností 35 btů (vz příklady na obr. ). Pro defnc velkých malých písmen je nutná matce alespoň 59 (pro vyšší kvaltu znaků je třeba použít rozměrnější matce). obr. Příklad vzorů malých písmen 4 Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek.3-.4 Generátory vytvářejí znak tak že ne všechny znaky zabírají v horzontální směru stejný počet rastrových jednotek (porovnejte např. šířku znaků h a na obr. ) a podle toho se též proporconálně mění rozteč znaků. U jných znaků je jejch část umístěna pod základní čarou (vz např. g na obr. ). Takové znaky zobrazí generátor s posuvem jejch defnční matce směrem dolů (spodní dotah písmen). Zatím jsme předpokládal že všechny pely reprezentující znak jsou vysvíceny se stejnou ntenztou. Pokud ve stejném smyslu jako dříve budeme zde uvažovat antalasng tak míst btové matce budeme uvažovat matc ntenzt příslušejících jednotlvým pelům..4 Vyplňování oblastí Oblastí budeme dále rozumět skupnu přlehlých pelů. Podle způsobu zadání oblast budeme rozlšovat oblast zadané vntřkem oblast a oblast zadané hrancí oblast. Podle počtu spojení budeme rozlšovat dva typy oblastí oblast se 4-m a oblast s 8-m spojením. Příklady jsou uvedeny na obr.. obr. Příklady oblastí V případě a na obr. je oblast zadána vntřkem oblast (oblast tvoří černě vykreslené pely). Počet spojení je 4 neboť z lbovolného pelu oblast můžeme přejít do jného pelu oblast jedním ze 4 možných pohybů :. V případě b na obr. je oblast zadána hrancí oblast (hranc oblast tvoří opět černě vykreslené pely). I zde je počet spojení 4. Ovšem u oblast zadané hranící podle případu c na obr. je počet spojení 8 (v tomto případě je třeba uvažovat ještě 4 další dagonální pohyby). Poznamenejme že dutny uvntř oblast jsou přípustné (např. v případě a podle obr. ). Věchet V. : Vybrané statě z počítačové grafky 5

Článek.4-.5 Kap. : Základní algortmy rastrové grafky Základní jednoduchou strateg pro vyplňování oblast budeme demonstrovat na příkladě oblast zadané hrancí a se 4-m spojením: vycházíme z toho že je dán nějaký startovací bod ( y ) ležící uvntř oblast (např. operátor načrtne hrance a zadá bod uvntř oblast) pely na hranc oblast mají nějakou hodnotu hodnota_hrance zatímco pely uvntř oblast mají hodnotu původní_hodnota rozdílnou od nová_hodnota. Algortmus vyplňování bývá označován jako semínkový algortmus (seed algorthm) volený počáteční bod je jako zaseté seménko. Pro náš případ oblast zadané hrancí a se 4- m spojením lze snadno celý algortmus zapsat rekursvně : begn { ( y) (semínko) hodnota_hrance nová_hodnota } f READ_PIXEL (y) <> hodnota_hrance and READ_PIXEL(y) <> nová_hodnota then begn WRITE_PIXEL(ynová_hodnota) ; Opakuj algortmus s (y-)hodnota_hrancenová_hodnota ; Opakuj algortmus s (y+)hodnota_hrancenová_hodnota ; Opakuj algortmus s (-y)hodnota_hrancenová_hodnota ; Opakuj algortmus s (+y)hodnota_hrancenová_hodnota ; end end { algortmu } ; Rozšíření algortmu na oblast s 8-m spojením je ponecháno na čtenář. Oblast také byly defnovány hodnotam pelů v obrazové pamět. Jný problém je když je oblast defnována vrcholy polygonu uloženým v aplkačních datech. O tom pojednává následující odstavec..5 Ořezávání a vyplňování polygonů Nejprve je třeba polygon oříznout a teprve pak po transformac do souřadnc zařízení (pely pro rastrovou grafku) se polygon vyplní. Proto se nejprve zmíníme stručně o metodách ořezávání polygonů. Dva příklady ořezávání polygonů jsou uvedeny na obr.. Vyplněn je ořezávaný polygon ořezávající polygon je znázorněn jako pravoúhelník. Z obr. b je patrné že ořezávaný polygon se může př ořezávání rozpadnout do více nesouvslých oblastí. Naznačíme relatvně jednoduchou strateg která spočívá v kombnac jednoduchých dentckých problémů (v lteratuře bývá tento postup označován jako Sutherland- 6 Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek.5 Hodgmanův algortmus). Postupně ořezáváme ořezávaný polygon podle jednotlvých hran ořezávajícího polygonu jak je naznačeno na obr.. obr. Příklady ořezávání polygonů obr. Postupné ořezávání polygonu Věchet V. : Vybrané statě z počítačové grafky 7

Článek.5 Kap. : Základní algortmy rastrové grafky Algortmus funguje obecněj pro ořezávání polygonu (konveního konkávního) podle jakéhokolv konveního ořezávajícího polygonu. Ve 3D pak ořezáváme podle konveního polygonu defnovaného rovnam. Algortmus akceptuje posloupnost vrcholů polygonu v v v n. Hrany polygonu vycházejí z vrcholu v do v + a z v n do v. Algortmus provádí ořezávání na každé hraně a na výstupu formuje novou posloupnost vrcholů defnujících oříznutý polygon. obr. 3 Možné případy ořezávání V každém kroku se vyšetřuje vztah mez dvěma po sobě jdoucím vrcholy ořezávaného polygonu a ořezávající oblastí. Přtom se formuje nová posloupnost vrcholů defnujících oříznutý polygon přčemž do této nové posloupnost se zapsují dva jeden případně žádný vrchol. To vyplývá z analýzy 4 možných případů podle obr. 3. Uvažujme podle obr. 3 hranu polygonu z vrcholu s do vrcholu p. V případě že tato hrana celá leží uvntř ořezávající oblast tak do výstupního seznamu vrcholů je přpojen vrchol p (vz případ a na obr. 3). V případě b podle obr. 3 se do výstupního seznamu zapíše průsečík s hranou ořezávající oblast neboť startovací bod byl výstupem jž v případě a podle obr. 3. V případě c podle obr. 3 se do výstupního seznamu nepřpojuje žádný vrchol neboť celá hrana leží vně ořezávající oblast. Konečně v případě d podle obr. 3 se do výstupního seznamu zapsuje průsečík a vrchol p. 8 Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek.5 obr. 4 Příklad ořezávání polygonu obr. 5 Určení polohy vrcholu Tak např. v příkladě podle obr. 4 budeme postupně vyšetřovat hrany 3 3 4.. 6 což postupně formuje posloupnost nových vrcholů 3 34.. 3456. Př praktckém provedení ořezávání je třeba na každém kroku rozhodnout zda daný Věchet V. : Vybrané statě z počítačové grafky 9

Článek.5 Kap. : Základní algortmy rastrové grafky vrchol leží vně nebo uvntř ořezávající oblast. Pokud uvažujeme vektor ve směru hrany ořezávajícího polygonu (vz obr.5) z bodu P do bodu P tak test lze provést podle výsledku vektorového součnu tohoto vektoru s vektorem z bodu P do testovaného bodu (vektorový součn má buď postvní nebo negatvní z). obr. 6 Vytvoření tzv. etra hran Aplkace tohoto algortmu však v případech kdy se ořezávaný polygon rozpadá do více nesouvslých oblastí vede k nekorektním výsledkům. Čtenář se může sám přesvědčt o tom že v případě podle obr. 6a bude v nové posloupnost vrcholů hrana z bodu A do bodu B (tzv. etra hrana). V případě podle obr. 6b budou takové hrany dokonce dvě. V takovém případě by musely být aplkovány další přídavné kroky za účelem odstranění takových hran případně použít jný obecnější algortmus uvedený dále. Algortmus označovaný jako Weler-Athertonův algortmus lze užít pro ořezávání nějakého konkávního polygonu podle jného ořezávajícího konkávního polygonu (oba polygony mohou mít dokonce vntřní prázdné oblast). Jeho prncp je následující (vz obr. 7). Ořezávaným polygonem procházíme z lbovolného startovacího bodu ve směru CLW až 0 Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek.5 narazíme na průsečík s ořezávajícím polygonem. Algortmus pak pokračuje podél hrany ořezávaného polygonu pokud hrana neopouští ořezávající polygon jnak pokračuje vpravo po hraně ořezávajícího polygonu. Takový průsečík se vždy zaznamená aby se taková cesta neopakovala. obr. 7 Prncp Weler-Athertonova algortmu Nyní můžeme přstoupt k vyplnění polygonu. Př vyplňování oblast (vz dříve) byla defnována množna pelů v obrazové pamět zatímco zde je oblast defnována vrcholy polygonu a vůbec se neuvažuje o nějakých ncalzačních hodnotách.. Dále popsaný algortmus pro vyplňování polygonů bývá označován jako metoda řádkového rozkladu (scan-lne algorthm). Neúplný algortmus můžeme formulovat do následujících kroků :. najd průsečíky rozkladového řádku se všem hranam polygonu. setřď vzestupně všechny průsečíky podle souřadnce 3. vyplň všechny pely mez dvojcem průsečíků. VěchetV. : Vybrané statě z počítačové grafky

Článek.5 Kap. : Základní algortmy rastrové grafky Tak např. podle obr. 8 kde byl označen rozkladový řádek y = 8 jsou setříděné průsečíky ( 4 9 3). V tom případě vyplníme pely až 4 (tj. 3 4) a pely 9 až 3 (tj. 90 a 3). Takový neúplný algortmus má však vady. Uvažujme např. rozkladový řádek y = 3 (prochází vrcholem). Průsečíky jsou 0 (je jch lchý počet). Pak by měly být vyplněn pel ( až ) a pak 0 až někam do konce bufferu. Nelze však vzít pouze jeden průsečík = rozkladového řádku neboť to by zase nefungovalo u rozkladových řádků 7 9. obr. 8 Prncp metody řádkového rozkladu Řešení je následující :. průsečíky vezmeme pouze ve vrcholech které představují lokální mnma nebo lokální mama (např. v našem příkladě vrcholy (7) kde jde o lokální mnmum nebo (9) kde je lokální mamum ) přčemž o lokálním mnmu nebo lokálním mamu rozhodneme na základě porovnání předchozí a následující souřadnce vrcholu. ve vrcholech kde na sebe hrany monotónně navazují (v našem příkladě např. vrchol (3)) vezmeme pouze jeden průsečík zkrátíme tedy jednu z hran (vz obr. 9). Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek.5 Je třeba s uvědomt že pro konkrétní rozkladový řádek se zpravdla sleduje málo hran. Většna těchto hran pokud je protíná rozkladový řádek tak má průsečík s rozkladovým řádkem + přčemž + lze počítat z : + = + m je směrnce hrany y =. () m obr. 9 Zkracování hran obr. 0 Tabulka hran (se zkráceným hranam h a h 5 ) Pro urychlení výpočtu proto spravujeme tzv. seznam aktvních hran ( SAH ) přčemž př pohybu rozkladového řádku budeme počítat podle vztahu (). Jakákolv nová hrana Věchet V. : Vybrané statě z počítačové grafky 3

Článek.5 Kap. : Základní algortmy rastrové grafky protínající nový rozkladový řádek je do SAH přdána a hrany neprotínající nový rozkladový řádek jsou ze SAH odstraněny. Aby tyto operace byly efektvní vytvoříme s nejprve tabulku hran ( TH ) obsahující všechny hrany setříděné podle jejch menší souřadnce y a vzestupně podle souřadnce spodního koncového bodu hrany. Záznam obsahuje y ma mn a /m. Pro náš příklad bude TH vypadat podle schématu na obr. 0 (pozor hrany h a h 5 byly zkráceny o jednotku mn je souřadnce spodního vrcholu hrany). Pro dva rozkladové řádky jsou SAH schématcky znázorněny na obr.. obr. Seznamy aktvních hran Algortmus pak lze formulovat následovně :. vezm y jako nejmenší hodnotu y které odpovídá neprázdný ukazatel v pol ukazatelů TH (v našem příkladě y = ). ncalzuj SAH (tj. vytvoř prázdný seznam) 3. opakuj až do stavu kdy TH SAH jsou prázdné : přesuň nformac z TH pro dané y do SAH setřď podle vyplň pely na rozkladovém řádku y užtím dvojce souřadnc ze SAH vymaž ze SAH vstupy kde y = y ma pro každý prvek zbývající ve SAH zaměň hodnotou + /m. To umístí následující průsečík s novým rozkladovým řádkem do SAH protože předchozí krok může vést k tomu že SAH nebude setříděn znovu setřď SAH y zvětš o ( y = y + ) tj. vyber nový rozkladový řádek). 4 Věchet V. : Vybrané statě z počítačové grafky

Kap. : Základní algortmy rastrové grafky Článek.5-.6 Modfkace algortmu v případě že se v polygonu vyskytují vodorovné hrany je ponechána na cvčení..6 Cvčení. Napšte svoj funkc v jazyku C pro generování úsečky Bresenhamovým algortmem. Nezapomeňte na správný výběr řídící osy.. Napšte svoj funkc v jazyku C pro generování kruhového oblouku podle obr. Mchenerovým algortmem. obr. Generování kruhového oblouku 3. Napšte svoje vzorce pro výpočet predkce (rozhodovací proměnné) pro generování elpsy. 4. Rozšřte uvedený algortmus pro vyplňování oblast pro případ oblast s 8-m spojením. 5. Modfkujte uvedený algortmus vyplňování polygonu metodou řádkového rozkladu pro případy kdy se v polygonu vyskytují vodorovné hrany. Věchet V. : Vybrané statě z počítačové grafky 5

Článek 3. Kap.3 : Geometrcké transformace 3. GEOMETRICKÉ TRANSFORMACE 3. D transformace Výsledkem geometrcké transformace (transformace souřadnc) je změna polohy orentace a velkost objektu (základní geometrcké transformace). Př translac je bod P =[ y ] posunut o D jednotek rovnoběžně s osou a o Dy jednotek rovnoběžně s osou y do nové polohy P = [ y ] takže platí : ' = + D y' = y + Dy. () Pokud s zavedeme vektor translace T = [ D Dy ] zapíšeme vztah () v matcovém tvaru následovně : [ ' y' ] [ y ] + [ D Dy ] = () tedy P = P + T. (3) obr. Tansformace translací Schematcky je vše znázorněno na obr.. Translac jakéhokolv objektu lze provést aplkací uvedených vztahů na každý bod objektu. Bodů však může být nekonečně mnoho. Takže např. translac úsečky provedeme translací koncových bodů úsečky a spojením posunutých bodů (to ostatně platí pro rotac změnu měřítka). Př rotac kolem počátku o úhel α počítáme kladné úhly ve směru CCLW (vz obr. ). Transformované souřadnce určíme ze vztahu ( α + β ) = cosα ysnα ' = r cos (4) 6 Věchet V. : Vybrané statě z počítačové grafky

Kap.3 : Geometrcké transformace Článek 3. obr. Transformace rotací ( α + β ) = snα y cosα y ' = r sn + (5) takže v matcovém tvaru bude cosα snα sn cos (6) α α [ ' y' ] = [ y ] P' = P R. (7) obr. 3 Transformace změnou měřítka Změnu měřítka stejně jako rotac vztahujeme k počátku souřadnc (vz příklad na obr. 3). Můžeme pak psát : ' = S (8) y ' = y S y. (9) V matcovém tvaru pak tyto zápsy budou vypadat následovně : S 0 0 (0) S y [ ' y' ] = [ y ] Věchet V. : Vybrané statě z počítačové grafky 7

Článek 3. Kap. 3 : Geometrcké transformace P' = PS. () Pro S = S y mluvíme o tzv. homogenním (unform) měřítkování. Z porovnání vztahů (3) (7) a () je patrné že translace je vyjádřena rozdílně od rotace změny měřítka. Cílem je vyjádřt všechny transformace jednotně (ve tvaru součnu matc) aby pak mohly být tyto transformace snadno kombnovány. Proto přejdeme k tzv. homogenním souřadncím kde všechny transformace budou vyjádřeny ve tvaru součnu matc. Homogenní souřadnce bodu P = [ y ] budou P = [ W Wy W ] pro jakékolv W 0. To znamená že každému bodu P = [ y ] odpovídá nekonečně moc bodů v homogenních souřadncích. Známe-l homogenní souřadnce bodu P = [ X Y W ] tak orgnální souřadnce téhož bodu budou P = [ X/W Y/W ]. Dále budeme uvažovat (nkolv však na úkor obecnost) W =. Smysl zavedení homogenních souřadnc vyplývá jž ze zápsu translace v homogenních souřadncích : tedy 0 0 () D Dy [ ' y'] = [ y] 0 0 ( D Dy). P' = P T (3) Označení matc P P T je ponecháno stejné byť tyto matce ve vztahu (3) a (3) nejsou totožné. Jejch rozměr hodnoty prvků jsou určeny tím zda počítáme v homogenních souřadncích č nkolv. Ovšem grafcké systémy nterně př výpočtech používají homogenní souřadnce neboť transformace jsou pak vyjádřeny v jednotném tvaru (ve tvaru součnu matc) a výpočty pak mohou probíhat mnohem efektvněj. Analogcky zapíšeme v homogenních souřadncích matce rotace R a matce změny měřítka S ve tvaru : cosα snα 0 R ( α ) = sn cos 0 α α (4) 0 0 S 0 0 ( S S ) 0 S 0. S y = y (5) 0 0 8 Věchet V. : Vybrané statě z počítačové grafky

Kap.3 : Geometrcké transformace Článek 3. Skládání D transformací Uvažujme např. že na bod P budeme nejprve aplkovat translac T a na výsledek translac T. Pak ovšem P' = P T (6) P' ' = P' T = P T T = P (7) T kde T je matce složené translace. Vynásobením matc T a T (nebo jž z prostého náhledu že jde o součet dvou vektorů) dostaneme matc složené translace 0 0 T = 0 0. (8) D + D Dy + Dy Obecně je mnohem efektvnější aplkovat složenou transformac na bod než na tento bod aplkovat posloupnost transformací. Složená transformace je popsána matcí složené transformace která je součnem matc popsujících elementární transformace v posloupnost transformací. obr. 4 Příklad složené transformace Věchet V. : Vybrané statě z počítačové grafky 9

Článek 3. Kap.3 : Geometrcké transformace Příklad Uvažujme rotac nějakého objektu kolem bodu P = [ y ] o úhel α (vz obr. 4). Takovou transformac popíšeme jako posloupnost transformací a sce translac tak aby bod P byl totožný s počátkem rotac o úhel α a translac zpět do bodu P (vz obr. 4). Posloupnost těchto transformací vyjádříme pomocí matce složené transformace 0 0 cosα snα 0 0 0 C = T( y ) R ( α ) T( y ) = 0 0 sn cos 0 0 0 α α. (9) y 0 0 0 y 0 Příklad Na objekt podle obr. 5 je třeba aplkovat změnu měřítka rotac a polohování do bodu P s bodem P jako středem pro změnu měřítka a rotac. Tomu odpovídá matce složené transformace ( y ) S( S S ) R( α ) T( ). C = T (0) y y obr. 5 Jný příklad složené transformace Konec příkladů Předpokládejme že M a M reprezentují nějaké základní transformace (translac rotac nebo změnu měřítka). Víme že obecně M M M M. Rovnost platí pouze pro komutatvní matce. Z toho ovšem plyne že obecně záleží na tom v jakém pořadí jsou transformace aplkovány! V následující tabulce jsou uvedeny případy kdy M a M komutatvní jsou : M M. translace translace. rotace rotace 3. změna měřítka změna měřítka 4. změna měřítka pro S = S y rotace 30 Věchet V. : Vybrané statě z počítačové grafky

Kap. 3 : Geometrcké transformace Článek 3. Pořadí rotace a změny měřítka lze zaměnt pouze v případě kdy se jedná o homogenní měřítkování. Ale např. translace s následující rotací produkuje obecně jný výsledek než rotace za kterou následuje translace. Skládání transformací produkuje většnou matc složené transformace ve tvaru r r 0 C = r r 0 () t t y kde horní matce () specfkuje složené rotace a změny měřítka zatímco t a t y udávají složenou translac. Pevný formát 3. sloupce matce C však zjednodušuje operace na = r + r y + t () ' y = r + r y + t (3) ' y tedy 4 sčítání a 4 násobení. Matce (33) jsou užtečné pro skládání D transformací ovšem výsledná matce je aplkována s ohledem na její specfckou strukturu. Nebo např. př dynamcké rotac objektu je třeba provádět velm rychle transformace o relatvně velm malý úhel. Pro urychlení výpočtu pro malá α bychom mohl použít zjednodušených vztahů ' ysnα (4) y ' snα + y. (5) Takové zjednodušení př nkrementální rotac však přnáší problém kumulace chyb. Jejch odstranění je popsáno ve specalzované lteratuře. Poznámky. V uvedených souvslostech se často používá pojmu afnní transformace což je taková transformace která transformuje bod P = [ y] na bod P = [ y ] podle rovnc ' = a y' = a + b y + c + b y + c a = a b b 0 Afnní transformací přejde kuželosečka v kuželosečku (např. elpsa v elpsu). Pokud tedy determnant 0 tak k dané transformac estuje nversní transformace. Kdyby tento determnant byl nulový tak body rovny by se transformovaly na body přímky (tzn. z dmense D do D).. Často se k základním transformacím počítají souměrnost (zrcadlení) a zkosení. Př souměrnost podle osy y (vz obr. 6a) bude. (6) Věchet V. : Vybrané statě z počítačové grafky 3

Článek 3. Kap.3 : Geometrcké transformace obr. 6 Příklady souměrnost 0 0 P ' = P Z 0 0 y Z y = (7) 0 0 tedy analogcky změně měřítka s S = - a S y =. Př souměrnost podle osy o (vz obr. 6b) bude P' 0 0 α (8) 0 0 ( ) Z R( α ) Z = 0 0. = P R obr. 7 Příklady zkosení Zkosení (angl shear) ve směru osy (vz obr. 7a) popíšeme vztahy 0 0 P ' = P SH 0 SH = sh sh = cotg α. (9) 0 0 Obecně zkosení ve směru a y (vz obr. 7b) bude popsáno matcí 3 Věchet V. : Vybrané statě z počítačové grafky

Kap.3 : Geometrcké transformace Článek 3.-3. shy 0 SH y = sh 0 0 0. (30) Konec poznámek 3. 3D transformace Zatím budeme uvažovat pravotočvý souřadncový systém (vz obr. ). Bod P = [ y z] bude reprezentován v homogenních souřadncích body P = [ W Wy Wz W ]. Matce transformací budou mít nyní rozměr (44). Takže translace bude ve 3D popsána matcí 0 0 0 0 0 0 T = T( D Dy Dz) = 0 0 0 D Dy Dz () změna měřítka matcí S 0 0 0 0 0 0 ( ) S y S = S S S y Sz = 0 0 S 0 z 0 0 0. () obr. Pravotočvý souřadncový systém Rotace kolem souřadncových os y a z jsou defnovány podle obr.. Nechť s čtenář sám provede verfkac těchto matc rotací kolem souřadncových os : Věchet V. : Vybrané statě z počítačové grafky 33

Článek 3. Kap. 3 : Geometrcké transformace 0 0 0 0 cos sn 0 ( ) α α R = R α = (3) 0 snα cos 0 α 0 0 0 obr. Rotace kolem souřadncových os cosα y 0 snα y 0 0 0 0 R ( ) y = R y α y = (4) snα 0 cos 0 y α y 0 0 0 cosα z snα z 0 0 sn cos 0 0 ( ) α z α z R z = R z α z =. (5) 0 0 0 0 0 0 To je logcké neboť např. D rotace je jako 3D rotace kolem osy z zatímco např. př rotac kolem osy se nemění souřadnce. Pozor však na znaménka u R y (to vyplývá z obr.). Čtenář nechť se sám přesvědčí že Ke každé této transformační matc estuje nverzní matce přčemž o T - dostaneme z T změnou znaménka u D Dy a Dz o R - dostaneme z R změnou znaménka úhlu pootočení o S - dostaneme z S položením /S /S y a /S z místo S S y a S z R - = R T kde R T je transponovaná matce rotace. Obecně pokud r r y r z 0 = r r y r z 0 R 0 (6) r3 r3 y r3 z 0 0 0 reprezentuje lbovolnou sekvenc rotací kolem os y a z tak submatce (33) je ortogonální matcí neboť její sloupce jsou jednotkové ortogonální vektory. Pro takové matce R - = R T. 34 VěchetV. : Vybrané statě z počítačové grafky

Kap.3 : Geometrcké transformace Článek 3. Tudíž pro rotace jsou [ r. r.y r.z ] jednotkové vektory které jsou transformační matcí transformovány do kladného směru os y a z! Této skutečnost lze s výhodou využít př skládání transformací. Ncméně však matce rotací R R y a R z nejsou komutatvní matce takže záleží na pořadí rotací kolem souřadncových os. Pokud pak u nějakých grafckých systémů jsou na vstupu zadány úhly rotace kolem jednotlvých souřadncových os (nkolv jejch pořadí) pak se obvykle uplatňuje konvence pro pořadí rotací a to nejprve kolem osy pak y a nakonec kolem osy z. Skládání 3D transformací Skládáním 3D transformací lze získat nejrůznější výsledky. Je též důležté dospět k výsledku pokud možno co nejefektvnější cestou. To lze ozřejmt na následujícím příkladě. Příklad obr. 3 Příklad skládání 3D transformací Objekt P P P 3 (vz obr.3) je třeba transformovat tak aby bod P byl v počátku úsečka P P ležela na ose z v záporném směru této osy bod P 3 ležel v rovně yz kde y > 0. Na každý bod daného objektu pak budeme aplkovat následující sekvenc transformací (taková sekvence samozřejmě není ekluzvní ke stejnému výsledku lze dospět volbou jné sekvence) :. translace bodu P do počátku čemuž odpovídá matce translace ( y z ) T. rotace kolem y o úhel β podle obr. 4a s transformační matcí R y (β) přčemž Věchet V. : Vybrané statě z počítačové grafky 35

Článek 3. Kap.3 : Geometrcké transformace z' ' ' ' cos β = sn β = d = + z. (7) d d 3. rotace kolem osy o záporný úhel α (vz obr. 4b) přčemž cos '' '' z y α (8) P P P P ( ) = cosα = sn( α ) = snα = kde P P znamená délku úsečky P P. obr. 4 Postupné rotace objektu 4. rotace kolem osy z o úhel γ (vz obr. 4c) přčemž ''' ''' y 3 ''' ''' cosγ = 3 snγ = d y 3 = 3 + 3. (9) d d 3 3 Souhrnně může pro nějaký bod P daného objektu zapsat požadovanou transformac ve tvaru P '''' ( y z ) R ( ) R ( α ) R ( ) = P T R. = P T β γ (0) y z Pokud však uvážíme že R je ortogonální matcí tak lze tuto matc určt výpočtově daleko jednodušší cestou. Vektor r z [ r r ] P P = r z z 3z = () P P bude jednotkový vektor ve směru P P který bude transformován do kladného směru osy z. Potom r [ r r ] P P P P 3 = r 3 = () P P P P 3 36 Věchet V. : Vybrané statě z počítačové grafky

Kap. 3 : Geometrcké transformace Článek 3. - 3.3 je jednotkový vektor kolmý na rovnu danou body P P a P 3 který bude transformován do kladného směru osy. Jednotkový vektor který bude transformován do kladného směru osy y získáme jako vektorový součn r z a r : r = r r. (3) y z Tím jsou dány prvky matce R dle vztahu (6) kterou použjeme ve vztahu (0). Konec příkladu 3.3 Transformace jako změna souřadncového systému Až dosud jsme se zabýval transformacem množny bodů na jnou množnu bodů v jednom a tom samém souřadncovém systému. Tudíž souřadncový systém zůstává nezměněn a objekt je transformován vzhledem k počátku souřadncového systému. Ekvvalentní cestou je uvažovat transformac jako změnu souřadncového systému. To je užtečné např. v případě kdy různé část objektu jsou defnovány každý ve svém souřadncovém systému a následně spojeny a chceme jejch souřadnce vyjádřt v jednotném globálním souřadncovém systému. Nejlépe je vysvětlt celý problém na příkladech. Přtom použjeme základní vztahy z matcového počtu : A E = E A A A = A ( A B) = B A kde E je jednotková matce. A = E () obr. Příklad transformace jako změny souřadncového systému VěchetV. : Vybrané statě z počítačové grafky 37

Článek 3.3 Kap.3 : Geometrcké transformace Příklad Nechť Oy je orgnální souřadncový systém. Pak nějaký bod P má v referenčním souřadném systému O y stejné souřadnce jako bod P v orgnálním souřadncovém systému Oy (vz obr.). Tudíž takovou transformac jako změnu souřadncového systému budeme řešt jako transformac bodu P na P v jednom a tom samém orgnálním souřadncovém systému. Tedy nejprve provedeme translac tak aby O byl totožný s O a poté rotac o úhel α tzn. : P' = P T( D Dy) R( α ). () Protože [ R( α ) T( D Dy) ] = T( D Dy) R( α ) = T ( D Dy) R ( α ) = T( D Dy) R( α ) můžeme ke vztahu () zapsat ekvvalentní vztahy : ( α ) T( D Dy) P = P' R (4) [ R( ) T( D ). P' = P α Dy ] (5) = (3) Příklad obr. Změna měřítka Stejně budeme řešt případy se změnou měřítka (vz obr.). Provedeme translac kde vektor translace bude [ - -3 ] a poté změnu měřítka s S = S y =. Takže výsledný záps takové transformace bude mít tvar : 38 Věchet V. : Vybrané statě z počítačové grafky

Kap.3 : Geometrcké transformace Článek 3.3-3.4 ( 3) S( ). P' = P T (6) Konec příkladů Analogcky budeme řešt komplenější případy případně ve 3D. To je ponecháno na čtenář. 3.4 Cvčení. Ukažte že po sobě jdoucí D rotace jsou adtvní tzn. že R(α ) R(α ) = R(α + α ).. Ukažte že D rotace a změna měřítka jsou komutatvní pokud S = S y. 3. Jný důvod proč jsou homogenní souřadnce užtečné je že 3D body v nekonečnu lze eplctně defnovat v homogenních souřadncích. Určete jakým způsobem. 4. Jednotková krychle s dagonálním rohy v bodech [ 0 0 0] a [ ] rotuje o úhel α kolem této hlavní dagonály (kladné úhly počítáme ve směru CCLW př pohledu z bodu [ ] do bodu [ 0 0 0 ] ). Odvoďte transformační vztahy. Věchet V. : Vybrané statě z počítačové grafky 39

Článek 4. Kap. 4 : Promítání 4. PROMÍTÁNÍ 4. Středové a rovnoběžné promítání Pod pojmem promítání (projekce) se všeobecně rozumí transformace bodů v souřadném systému dmenze n do souřadného systému dmenze menší než n v našem případě ze 3D do D neboť zobrazení na rozhraní k užvatel je D. Středová projekce je defnována promítacím paprsky vycházejícím ze středu promítání procházejícím každým bodem objektu a protínajícím projekční rovnu (průmětnu) kde vytvářejí projekc (vz obr. ). Pokud střed promítání je v nekonečnu budou promítací paprsky rovnoběžné a pak mluvíme o rovnoběžném promítání. Tato třída projekce kdy průmětnou je rovna se nazývá planární geometrcká projekce. Neplanární projekce kdy průmětnou je nějaká zakřvená plocha má význam např. v kartograf a nebudeme se jí zabývat. obr. Středové a rovnoběžné promítání Poznamenejme hned že projekce úsečky je také úsečka. U středového promítání zadáváme střed promítání u rovnoběžného promítání směr promítání (směr promítacích paprsků). Středové promítání (perspektvní projekce) Středové promítání je blžší ldskému vzuálnímu systému. Jeho efekt je podobný fotografckému efektu neboť velkost průmětu se mění nepřímo úměrně se vzdáleností od středu projekce. 40 Věchet V. : Vybrané statě z počítačové grafky

Kap. 4 : Promítání Článek 4. obr. Příklad jednobodového středového promítání Uvažujme nyní množnu rovnoběžných přímek které však nejsou rovnoběžné s průmětnou. Pak středové projekce těchto rovnoběžných přímek konverguje (přímky se protínají) k tzv. úběžnému bodu (vanshng pont). Hlavní úběžný bod (prncpal vanshng pont) vytvářejí projekce rovnoběžek s osou nebo y nebo z. Takové body jsou tedy mamálně 3. Kategorzace středového promítání se pak provádí podle počtu hlavních úběžných bodů tudíž podle počtu os které průmětna protíná. V příkladě podle obr. se jedná o tzv. jednobodové promítání. Hlavní úběžný bod má pouze osa z průmětna je na tuto rovnu kolmá. Na obr. je příklad dvoubodového promítání kdy průmětna protíná osy z a. obr. 3 Příklad dvoubodového středového promítání Věchet V. : Vybrané statě z počítačové grafky 4

Článek 4. Kap. 4 : Promítání Rovnoběžné promítání (paralelní projekce) Pokud promítací paprsky jsou kolmé na průmětnu (tedy normálový vektor průmětny a vektor ve směru promítacích paprsků jsou rovnoběžné) tak mluvíme o tzv. ortografckém rovnoběžném promítání. V tom případě se nejčastěj používá průměten kolmých na jednu ze základní os y nebo z. Mluvíme pak o tzv. Mongeově promítání (vz obr.3). Takových pohledů je celkem 6 vždy dva pohledy používají stejnou průmětnu a lší se jen směrem promítacích paprsků. obr. 4 Mongeovo promítání Obecně aonometrí budeme nazývat ortografcké rovnoběžné promítání užívající průmětnu která není kolmá na některou ze základních os. Nejpoužívanější aonometrckou projekcí je sometrcká projekce tj. taková projekce kdy normálový vektor průmětny svírá se 4 Věchet V. : Vybrané statě z počítačové grafky

Kap. 4 : Promítání Článek 4. všem osam ( y z) stejný úhel. Je-l normálový vektor průmětny n = [ a b c ] tak pro sometrckou projekc musí platt : a = b = c. () Estuje tedy 8 směrů ( v každém oktantu) ovšem např. [a a ] a [ -a -a -a ] jsou vektory ke stejné průmětně tudíž pouze [ a a a ] [ -a a a] [ a -a a ] a [ a a -a ] jsou normálové vektory k různým průmětnám. Název sometrcké projekce je odvozen od toho že měření podél jednotlvých os je ve stejném měřítku (vz příklad na obr. 5). obr. 5 Jedna možná sometrcká projekce obr. 6 Kavalírní projekce Na rozdíl od ortografckého promítání u škmého rovnoběžného promítání nejsou promítací paprsky kolmé na průmětnu. Používá se přtom průmětny kolmé na jednu z hlavních os. Podle úhlu který svírají promítací paprsky s průmětnou se rozlšují dva hlavní případy škmé rovnonoběžné projekce. U tzv. kavalírního promítání (cavaler projecton) Věchet V. : Vybrané statě z počítačové grafky 43

Článek 4.-4. Kap. 4 : Promítání svírají promítací paprsky s průmětnou úhel π/4 (vz obr. 6). Je pak zcela zřejmé že u této škmé projekce jsou úsečky kolmé na průmětnu v projekc stejně dlouhé jako v orgnále (vz případy a a b na obr. 7). U kabnetního promítání (cabnet projecton) úsečky kolmé na průmětnu budou mít v průmětu polovční délku než v orgnále (promítací paprsky tedy svírají s průmětnou úhel arccotg 0.5 ) vz případ c na obr. 7. obr. 7 Jednotková krychle v kavalírní a kabnetní projekc Poznámka Pozornější čtenář jž jstě zaregstroval v této kaptole použtí levotočvého souřadného systému. Levotočvý souřadný systém je přrozenější pro zobrazení objektu na stínítku obrazovky osa je horzontální zleva doprava osa y vertkální zdola nahoru a osa z orentovaná do stínítka obrazovky. Objekt který je vzdálenější od pozorovatele má pak větší souřadnc z. Objekt defnovaný v pravotočvém souřadném systému je pak transformován do levotočvého souřadného systému pohledu. Tak to bude dále uvažováno. Ncméně převážná většna grafckých systémů uvažuje pravotočvý souřadncový systém pohledu. O to je pak stuace jednodušší uvedená transformace (která je velm trvální) pak odpadá. Konec poznámky 4. Matematcký konspekt planární geometrcké projekce Budeme tedy uvažovat levotočvý souřadncový systém a dále pak provedeme následující zjednodušení budeme uvažovat průmětnu kolmou na osu z pro středovou projekc uvažujme průmětnu z = d a střed projekce v počátku pro rovnoběžnou projekc z = 0. Na tyto případy se pak př výpočtech konkrétní úlohy transformují. 44 VěchetV.:Vybrané statě z počítačové grafky

Kap. 4 : Promítání Článek 4. Každou projekc vyjádříme pomocí matce (44). To je výhodné neboť pak lze projekc skládat s ostatním transformacem. obr. Středová projekce Pro středovou projekc pak snadno odvodíme vztahy () () a (3) vyplývající ze schématu na obr. : ' = z / d () y y ' = z / d () z ' = d. (3) Tato transformace může být vyjádřena matcí 0 0 0 0 0 0 M = p 0 0 / d 0 0 0 0 (4) a tudíž [ X ' Y ' Z' W '] [ y z ] p = [ y z z / d] = M (5) jsou homogenní souřadnce projekce bodu P a tedy platí : y z / d z / d (6) [ ' y' z' ] = [ X '/ W ' Y '/ W ' Z' / W ' ] = d. Pokud bychom uvažoval průmětnu z = 0 a střed projekce na ose z kde z = -d bude odpovídající matce Věchet V. : Vybrané statě z počítačové grafky 45

Článek 4. Kap. 4 : Promítání 0 0 0 0 0 0 M p = 0 0 0/ d 0 0 0. (7) Tuto matc lze odvodt tak že posuneme střed projekce do počátku aplkujeme M p a provedeme zpětnou translac. Ortografcká rovnoběžná projekce na průmětnu z = 0 je trvální : ' = y' = y z' = 0 (8) a tudíž 0 0 0 0 0 0 M o = 0 0 0 0 0 0 0. (9) obr. Škmá rovnoběžná projekce jednotkové krychle obr. 3 Škmá rovnoběžná projekce bodu P = [ 0 0 ] 46 Věchet V. : Vybrané statě z počítačové grafky

Kap. 4 : Promítání Článek 4.-4.3 Uvažujme nyní škmou (kosoúhlou) rovnoběžnou projekc. Na obr. je škmá rovnoběžná projekce jednotkové krychle do rovny y. Z tohoto obrázku vyplývá že bod P = [ 0 0 ] se promítá na bod P = [ l cos α l sn α 0 ] v rovně y. Odpovídající matc lze vyjádřt s ohledem na hodnoty l a α přčemž l je dáno úhlem β který svírají promítací paprsky s průmětnou (vz obr. 3). Tedy např. pro β = π/4 jde o kavalírní projekc. Zřejmě platí : ' = + zl cosα (0) y ' = y + zl snα () takže tomu odpovídající matce bude 0 0 0 0 0 0 M k = l cosα l snα 0 0 0 0 0. () 4.3 Specfkace lbovolného 3D pohledu Specfkací lbovolného 3D pohledu máme na mysl fakt že průmětnou může být lbovolná rovna. Střed projekce resp. směr promítání př rovnoběžném promítání může být též lbovolný. Dále je třeba řešt případné přechody mez pravotočvým a levotočvým souřadncovým systémem. Nejprve budeme defnovat průmětnu : zvolíme tzv. referenční bod pohledu (RBP) což bude počátek nového referenčního souřadncového systému pohledu jehož osy budeme označovat u v a n (vz obr. pro případ středové projekce) dále zvolíme normálový vektor průmětny v n což je vektor ve směru souřadncového osy n referenčního souřadncového systému pohledu dále pak defnujeme vektor v up tedy vektor ve směru osy v referenčního souřadncového systému pohledu ( v' up je jeho průmět). Tím je jednoznačně dán referenční souřadncový systém pohledu neboť jednotkový vektor ve směru další osy (v našem případě u) je dán vektorovým součnem jednotkových vektorů ve směru os v a n podle toho zda se jedná o pravotočvý nebo levotočvý souřadncový systém. Nyní jž pomocí mnmálních a mamálních hodnot u a v můžeme defnovat promítací okno (vz obr. ) a tím je pak pro středové promítání dán zobrazovaný prostor jako semnfntní jehlan. Samozřejmě okno nemusí být symetrcké k RBP. Věchet V. : Vybrané statě z počítačové grafky 47

Článek 4.3 Kap. 4 : Promítání obr. Semnfntní zobrazovaný prostor pro středové promítání obr. Zobrazovaný prostor pro středové promítání Zobrazovány budou tedy pouze objekty (nebo jejch část) uvntř zobrazovaného prostoru ostatní objekty budou oříznuty. Estuje však řada rozumných důvodů proč učnt zobrazovaný prostor konečným : můžeme takto etrahovat czorodé objekty můžeme koncentrovat pozornost užvatele jen na určtou část prostoru ve světovém souřadncovém systému protože přílš vzdálené objekty se promítnou neurčtě vznkají problémy s vykreslením např. na souřadncovém zapsovač. 48 Věchet V. : Vybrané statě z počítačové grafky

Kap. 4 : Promítání Článek 4.3 obr. 3 Zobrazovaný prostor pro rovnoběžnou projekc Konečný zobrazovaný prostor pak vytvářejí dvě rovny rovnoběžné s průmětnou ve vzdálenost F a B označované jako přední a zadní rovna ořezávání a tím vytváření zobrazovaný prostor v případě podle obr. pro středové promítání. Analogcké poměry pro rovnoběžné promítání jsou na obr. 3. Obr. 3a platí pro ortografckou a obr. 3b pro škmou projekc. V takovém případě by bylo třeba provést oříznutí podle zobrazovacího prostoru (pro úsečky tedy určt průsečíky s každou ze 6-t rovn defnujících zobrazovaný prostor) a takto oříznuté objekty promítnout do průmětny. Takový postup je však výpočtově neúnosně dlouhý a proto se za účelem zmenšení výpočtových operací zavádí tzv. kanoncký zobrazovaný prostor. Pro případ rovnoběžného promítání bude kanoncký zobrazovaný prostor tvořen 6-t rovnam jednotkové krychle ( = 0 = y = 0 y = z = 0 z = ). Pro středovou projekc bude kanoncký zobrazovaný prostor tvořen rovnam = z = -z y = z y = -z z = z mn z = = (vz obr. 4). Celý postup pak bude následující :. transformace zobrazovaného prostoru ve světovém souřadncovém systému yz na kanoncký zobrazovaný prostor v referenčním souřadncovém systému pohledu uvn Věchet V. : Vybrané statě z počítačové grafky 49

Článek 4.3 Kap. 4 : Promítání. oříznutí podle kanonckého zobrazovaného prostoru v souřadncovém systému uvn (to je výpočtově jednodušší než oříznutí podle zobrazovaného prostoru v souřadncovém systému yz) 3. projekce v souřadncovém systému uvn podle jednoduchých matc odvozených dříve. obr. 4 Kanoncký zobrazovaný prostor pro středové promítání obr. 5 Transformace na kanoncký zobrazovaný prostor Celý postup naznačíme pro případ ortografcké rovnoběžné projekce. Výchozí stav je zobrazen na obr. 5 vlevo. Pomocí nanejvýše translace a 3 rotací kolem souřadncových os dostaneme stav na obr. 5 vpravo. Po poslední rotac provedeme event. přechod k levotočvému souřadncovému systému přčemž tomuto přechodu odpovídá trvální transformační matce ve tvaru : 0 0 0 0 0 0 T PL =. () 0 0 0 0 0 0 50 Věchet V. : Vybrané statě z počítačové grafky