Algoritmy počítačové grafiky II (Algorithms for Computer Graphics II) Prof.Ing.Václav Skala, CSc. http://www.VaclavSkala.eu
Abstrakt Algoritmy počítačové grafiky a jejich implementace je nedílnou součástí jak grafických systémů, tak i CAD/CAM systémů. V této práci jsou uvedeny základní algoritmy, metody a postupy, které se používají v různých modifikacích i v dnešních systémech
Abstract Algorithms for computer graphics and their implementation is a part of graphical systems and CAD/CAM systems. Fundamental algorithms, methods and approaches used in today’s systems are explained.
Algoritmy počítačové grafiky II Algorithms for Computer Graphics II Published & printed by: Vaclav Skala – UNION Agency Na Mazinach 9 CZ 322 00 Plzen Czech Republic Year 2011 ISBN 978-80-86943-20-6 Electronic version
http://www.VaclavSkala.eu http://Graphics.zcu.cz
Profil autora Prof. Ing. Václav Skala, CSc. se zabývá počítačovou grafikou od r.1975, kdy na Vysoké škole strojní a elektrotechnické v Plzni zavedl a následně vyučoval předmět Počítačová grafika a umělá inteligence. V roce 1981 obhájil disertační práci na témate relačních databází se specializací na reprezentaci relací a optimalizaci dotazů uživatele. V současné době se odborně věnuje především algoritmům počítačové grafiky a vizualizaci dat a algoritmům včetně matematických aspektů. Je vedoucím Centra počítačové grafiky a vizualizací (http://Graphics.zcu.cz) při Katedře informatiky a výpočetní techniky na Fakultě aplikovaných věd Západočeské univerzity v Plzni. V letech 1984-1989 působil na Brunel University v Londýně a později přednášel na NATO Advanced Study Institute v zahraničí. V roce 1996 se stal profesorem na Západočeské univerzitě, odborně působil na Bath University v U.K., Gavle University ve Švédsku a na dalších zahraničních odborných pracovištích. Prof.Skala je řešitelem zahraničních i národních odborných výzkumných projektů, členem několika redakčních rad prestižních zahraničních odborných časopisů, členem programových výborů mezinárodních odborných konferencí. Od r.1992 je organizátorem mezinárodních odborných konferencí WSCG zaměřených na počítačovou grafiku, vizualizaci dat a počítačové vidění (http://www.WSCG.eu). V současné době je prof. Skala profesorem na Západočeské univerzitě v Plzni a VŠB-Technické univerzitě v Ostravě. V roce2010 odborně působil též na Přírodovědné fakultě Ostravské univerzity v Ostravě (http://AlgVis.osu.cz). V roce 2010 získal významné ocenění mezinárodní asociace pro počítačovou grafiku „Fellow of the Eurographics Association“ za dlouhodobé odborné výsledky a organizační aktivity v oblasti počítačové grafiky.
Poznámky pro laskavého čtenáře Toto je rekonstrukce učebního textu Algoritmy počítačové grafiky I – III, který vznikl pro studenty Západočeské univerzity v Plzni v roce 1991. Tato publikace vznikla rozšířením publikace Počítačová grafika I - II, která vznikala v roce 1989 pro potřeby studentů Vysoké školy strojní a elektrotechnické a která byla vydána v roce 1990. Jde tedy o text zohledňující algoritmy, metody a stav technologie před více než před 20 lety. Je nutné si uvědomit, že obor počítačové grafiky je poměrně velmi mladý, bouřlivě se rozvíjející a poměrně hodně závislý na dostupných technologiích. Nicméně většina metod, postupů a algoritmů je používána dodnes. Pochopitelně je oblast počítačové grafiky dnes podstatně širší a zahrnující mnohé jiné oblasti, které jsou odborně rozvíjeny kolegy v Centru počítačové grafiky a vizualizací při Katedře informatiky a výpočetní techniky Fakulty aplikovaných věd, viz http://Graphics.zcu.cz Rád bych proto požádal čtenáře, aby uvedený text a kvalitu tisku posoudil v kontextu té doby, kdy: nebyl prakticky přístup k zahraniční literatuře a publikace se velmi obtížně získávaly přes mezinárodní výpůjčky, resp. přes osobní kontakty nebyl k dispozici Internet, e-mail, WEB a digitální knihovny byly k dispozici první 8mi bitové PC systémy s „fantastickou“ kapacitou paměti 512 KB byly k dispozici první jehličkové tiskárny (9 tiskových bodů na textovou řádku) a „unikátní“ textové procesory T602 a výborný graficko-textový procesor Chi-Writer (http://en.wikipedia.org/wiki/ChiWriter), ve kterém byl text napsán. Je nutné si uvědomit, že před rokem 1989 bylo velmi obtížné získávat odborné publikace a publikovat odborné výsledky v mezinárodně uznávaných časopisech a na mezinárodních konferencích. Již v roce 1975 na Vysoké škole strojní a elektrotechnické, Fakultě elektrotechnické vzniká předmět Počítačová grafika a umělá inteligence Nové odborné výsledky, algoritmy a metody laskavý zájemce nalezne na URL: http://www.VaclavSkala.eu. Také bych rád zájemce o počítačovou grafiku odkázal na publikace z mezinárodních konferencí WSCG, na časopis Journal of WSCG a GraVisMa workshopy: WSCG – International Conferences on Computer Graphics, Visualization and Computer Vision http://www.WSCG.eu GraVisMa – Computer Graphics, Vision and Mathematics http://www.GraVisMa.eu
Tento text, který vznikl rekonstrukcí z archivu autora, byl doplněn o seznam publikací tak, aby tvořil ucelenou publikaci. Předpokládá se, že další části původní publikace budou rekonstruovány následně. Je mi milou povinností poděkovat všem, kteří mi stimulovali moje odborné aktivity a které jsem měl tu čest nejen potkat na Brunel University a na NATO Advanced Study Institutes, ale i s mnohými odborně spolupracovat. Patří k nim zejména: Prof. M.L.V. Pitteway Brunel University, U.K.
Prof. Jack E. Bresenham IBM Corp., USA a Winthrop University, USA Prof. David F.Rogers U.S. Naval Academy, USA
Prof. F.R.A.Hopgood Rutherford Appleton Laboratory, U.K. a Oxford Brookes University, U.K.
V Plzni dne: 2011‐07‐25
prof.Ing.Václav Skala, CSc.
Předmluva V
publ ika c i
pokus i l
Algor i tmy
z a chy t i t
p o č í t a čové
s oučasný
s tav
v
grafiky I - I I I
oblas t i
algori tmů p o č í t a čové grafiky a CAD systémů .
p r in c ipů
j sem
se
vybr aných
Vzhl e dem k p r udkému
r ozvo j i použi t í t e chni ckých a pr ogr amových pros t ř e dků p o č í ta čové grafiky j e t a t o publ ikace do ur čité míry po j at a j ako p ř ehl e dová , p ř i č emž podr obno s t i l z e nal é z t v l i t e r atuř e .
Něk t e r é p a s á ž e bylo
nutno z r e dukovat na téměř informat ivní úroveň z dův o dů p ř í l išné t e or e t i cké s lo ž i t o s t i ,
s lo ž i t o s t i algori tmů ,
p ř ípadně p r o j e j i ch
nedos tupnos t , neboť firmy skute čně použi t é me t ody nepub l ikuj í . P r o dal š í s tudium v oblas t i p o č í ta č ové
grafiky j e n e z by tné
s le dova t o dbornou l i t er atur u , na kterou bych r ád upozorn i l ,
a to
z e j ména na : a ) časopisy Compute r Graphics Forum , Nor th Ho l l and Comp . * ACM Trans a c t ion on Gr aphi cs , ACM + The Visual Compute r , Springer Ver l ag
*
Compute r Aided Geome trie De s i gn , Nor th Hol l and comp : Computat ional
Geome try ,
S c ience PUbl :
Comput e r Aided De s ign , Compu t e r s & Gr aphi c s ,
Theory
and,App l i c at ions ,
E l s ev i e r
But t erwo r th & Co ( Pu b l i s he r s ) L t d .
+
pergamon P r e s s
b ) s bo rníky konfe rencí * EUROGRAPH I C S ( EUROGRAPHICS As s o ciat ion ) , + S I GGRAPH ( U SA ) , + Compu t e r Gr aphi cs Internat ional Pub l ikace
o značené
Západo če ské
*,
univ e r z i ty
+
je
možné
( publ ika ce
vypůj č i t ozna čené
přes +
knihovnu
n e tvo ř í
celý
kompl e t ) . Za
základní
považovat [ 97 ] ,
[5],
[ 104 ] ,
publ ikace
[ 11 ] ,
[ 108 ] ,
[ 44 ] , [ 109 ] ,
v
[ 55 ] , [ 1 12 ] ,
uve dené v s e znamu l i t e ratury , p ř e devš ím k
dalš ímu
s ouvi s e j í c í ch
s
s tudiu
p o č í ta čovou
l i t e r atury j e uve den v 3 .
oblas t i [ 56 ] , [ 114] ,
p o č í t ač ové [ 66 ] ,
[ 69 ] ,
[ 12 3 ] ,
grafiky [ 72 ] ,
problemat iky ,
grafikou .
Ce lkový
díle této publ ikace .
[ 94 ] ,
p ř i čemž o s t a tní ,
l ze ozna č i t z a dop lňkové , dané
lze
s l ouž ící
p ř ípadně s e znam
par t i í použ i té
Je
mou mi lou povinno s t í
vzniku t é t o publ ikace , k v l a s tní p r á c i . za
j ej í
z amě ř ením
podně tné
s tudentům
gr afika
pomocníky
demon s t r a čn í ch
a
laskavě
z apůj čen
neo cenite lným pomo c í
prl
výukových
k d i s po z i c i . pomo c í
kr i t i cké
textového firmou
a
CAD
ke
byl a
do
Vě t š ina který
j s ou
formátu
p r o c e s oru
obr ázků
byla
ukázal
být
byl i
p ř ípadným r e ady "
který
byl
a který
byl
ChiWr i t e r , ( U SA )
se
a tvorbě
" came r a
Software se
k te ř í
a l go r i trnů
které
bývalým
v P l zni
sys témy ,
ově ř ování
Hor s tmann
COREL DRAW ,
p ř ipomínky ,
unive r z i ty
programů ,
Skr ipta
pomocníkem .
programu
a
Západo české
Po č í ta čová
p ř ip r avena
přispěli
a ť už vytvoř ením podmínek n e bo s t imula c í
neoceni t e lnými záj emcům
kte ř í
Chtě l by ch z e j ména poděkovat ing . I . Kol inger ové
konkr é tn í ,
i s oučasným
poděkova t v š e m ,
r e a l i zována ve lmi
dobrým
j akéko l iv p ř ipomínky ,
návrhy
nás t r o j em pro daný úče l . Budu zavázán všem č tenářům za či
doplnění
p ř e dkládaného
textu .
Uví t ám
informace o apl ika c i p ř e dkládaných algor i tmů , č i z c e l a nových algor i tme ch p o č í t a čové grafiky .
r ovně ž
p ř ípadné
j e j i ch mod i f ika c í
Obsah 4. Ge ome t r i cké t r ans formace
1
4. 1 Tran s forma ce v r ovině
1
4. 2 Ř e t ě zení dvourozměrných trans forma c í
4
4. 3 Mat i cová r e p r e zentace ope r a c í p r o t ř í r ozmě rný pros tor
13
4. 4 Ře t ě zení t ř ír o změ rných trans formac í
18
4. 5 Rot a ce kolem l ibovolné osy
23
4. 6 Tran s forma ce " okno - pohl e d "
27
4. 7 Transformace kř ivek a p l o ch druhého s tupně
30
4. 8 Akc e l e r át ory
31 36
5. P r o j ekce 5. 1 Možno s t i zobrazování t ř írozmě rného pros toru
36
5.2 Matema t i cký aparát rovinné proj ekce
45
5. 3 P e r s pektivní pohl ed na s cénu
52
6. Oře z ávání
56
6. 1 Dvour ozměrné o ř e závání
56
6. 2 Cohen - Suthe r l and�v algo r i tmus
57
6. 3 O ř e z áván í p�l ením
61
6.4 Algori tmus L i ang - Bar ského
63
6. 5 O ř e z ávání konvexním n-úhe lníkem
67
6. 6 Cyrus - B e ck�v algor i tmus pro oře závání konvexním n-úhe lníkem
69
6. 7 O ř e z áván í nekonvexním n-úhe lníkem
72
6. 8 Oře z ávání nekonvexn í ch oblas t í
78
6. 9 Oře z ávání ú s e ček s l oženými oblas tmi
85
6. 1 0 Suthe r l and - Hodgman�v algoritmus pro o ř e závání
89
6. 1 1 We i l e r - Athe r t on�v algor i tmus
93
6. 1 2 Oře závání v t ř í r ozmě rném pros toru
100
7. E l iminace nevidite lných hran a povr ch�
105
7. 1 Zobrazování nevidite lných hran a povr ch�
106
7 . 2 Rob e r t s �v algori tmus
122
7. 3 Z - buffer
1 48
7.4 Algor i tmus mal í ř e
151
7. 5 Algor i tmy ř ádkové konve r ze
154
7. 6 Warno ck�v a l gor i tmus
157
7 . 7 Algor i tmy s l e dování paprsku
161
4.
Geome t r ické t ransformace Každý s oubor podprogramů pro počítačovou grafiku j e vybaven
podprogr amy pro geome t r i cké manipulace s ge ome t r i ckými o b j ekty . Me zi n e j zákl adně j š í operace pat ř í posuv , ( zvě t š ení ,
zmenš ení ) .
Při
r e al i zaci
r o t a c e a změn a mě ř í tka
ope r a c í
budeme
p o ž adovat
možno s t kombina ce základních oper a c í . 4 .1 Transformace v r ovině
Oper ace po sunut í Má- l i
být
bod
( x, y )
po sunut
novou p o z i c i bodu ( x ' , y ' ) , x'
x
+
a
y'
y
+
b
o vektor
( a, b )
a
o zn a číme - l i
pak p l at í :
V mati cové formě pak dos t áváme :
Je
z ř e j mé ,
že
chceme - l i
posunout
něj aký
obj ekt ,
p ak
t r ans forma c i mus íme apl ikovat na v š e chny body daného P ř e dpokláde j me , dome čku ,
\
o b j ektu .
ž e máme j ednoduchý geome t r i cký o b j e k t ve
kt erý chceme posunout o vektor
( 1, 1 ) .
tuto tvaru
S tav p ř e d a po
posunut í j e na obr . 4 . 1 . 1 .
y
y
4
4
5
5
3
3
2
2
1
O
1
O
1
2
3
4
5
O
x
O
1
2
3
po posunutí
p ř e d posunutím Obr . 4 . 1 . 1 - 1 -
4
5
x
Rot ace Dal š í ve lmi č a s t o použ ívanou ope r a c í j e' ope r a c e r o t a c e .
Pro
ope r a c i r o t a c e oko l o' p o čátku s ouřadného sys tému p l at í : =
x'
=
y'
x
cos
ex
x
s in
ex
cos
ex
- s in
ex
s in
ex
cos
ex
+
y
s in
ex
y
cos
ex
V mat i covém tvaru :
kde
( x, y )
(x' , y' )
j s ou
s ouř adni ce
bodu v původním
s ouř adném
sys t é mu ,
j s ou s ouř adnice bodu p o provedení r o t a c e oko l o p o č á tku
s ouř adného sys tému o úhe l
ex.
y
y
4
4
2
2
5
5
3
3
1
1
1
o
2
4
3
5
1
o
x
2
4
3
5
x
po r o t a c i
před rotací Obr . 4 . 1. 2 Změna měř í tka Změna nedovoluj í ose y .
mě ř í tka změnit
Chc eme - l i
je
ve lmi
mě ř í tko měř í tko
změni t mě ř í tko Sy krát , x' y'
= =
na
potřebnou na
ose x
ose x
pak p l at í : Sx
x
Sy
Y
- 2 -
ope r a c í . r ozdílně
změnit
Mnohé od
Sx k r á t
sys t émy
mě ř í tka a
na
na
ose y
V mat i covém tvaru : Sx o
Tuto ope r a c i l z e opě t demon s t r ovat pro Sx=2 ( zv ě t š eni ) a Sy= O . 5 ( zmenš eni ) pomo ci obr . 4 . 1 . 3 .
y
y
4
4
5
5
3
3
2
2
O
O
1
�
I
1
O
1
2
3
4
5
x
O
1
2
I
3
4
5
x
po změně měřitek
p ř e d změnou měřitek Obr . 4 . 1 . 3
Pro r e p r e ze n t a c i v š e ch ope r a ci by byl o vhodné mit j eden typ o p e r a ci . Toho j e možné doci l i t zavedenim homogennich s ouř adni c . Bod
(x, y)
( wx , wy , w ) ,
je
repre zentován
kde w < > O .
má kar t é z s ké
v
homogennich
s ouřadn i ci ch
Pak bod s homogennimi s ouřadn i cemi ( X , Y , W )
s ouř adni ce
x=X/W a y=Y /W .
Jedn o t l ivé
operace
možné nyni p ř e p s a t do mat i c ového tvaru : - posunuti o vzdál eno s t ( a , b ) o
a
1
b
O
1
] [�]
- r o t a c e o úhe l a okol o po čátku
- 3 -
x' = T ( a, b )
.
x
je
[X' ] [
�
=
y' 1
c s ex
- s in ex
s ln ex
cos ex
O
O
�] [�]
- změna měř í tka Sx
O
O
O
Sy
O
O
O
1
] [�
]
Ve lkou výhodou homogenních s ouřadn i c j e , j edno t l ivé
geome t r i cké
a p r o někte r é
operace
ap l ikace
Z dosud uve deného vyp lývá ,
R S
-
1
( a
b )
( ex )
-1 -1
=
( Sx ,
.
x
x = S ( Sx , Sy )
.
x
že umo žňuj e r e a l i zovat
j ediné ma t i cové
=
T ( -a ,
R ( -ex )
Sy ) = S (
l / Sx ,
l / Sy ) p l at í ,
Trans forma ce
možné
t omu ,
ř e tě z i t .
Vzhledem
k
ope r a ce nej s ou o b e cně komutativní ,
nelze o čekáv a t ,
po
j ako
Uvažme
a
posunutí
něko l ik
je
-b )
že mat i c e R j e o r togonální ,
rotaci
což
že :
Vzhl edem k t omu ,
je
operace
repre zentovat b o d v nekone čnu ,
l imitní p ř ípad p r o w=O . T
pomo c í
x'= R ( ex )
bude
s te j ný
j ednoduchých
po
že :
že
ž e výs l e dek
posunut í
př íkl adů
m a t i cové
pro
a
rotaci .
demon s t r a c i
j ednot l ivých ope r a c í a j e j i ch s l ožení . 4 . 2 Řetězení dvourozměrných transformací
Otočení objektu oko l o bodu Mě j me okol o
geome t r i cký
daného
bodu A ,
obj ekt ,
který
který není
chceme
počá tkem
otočit
o
s ouřadného
úhe l
ex
sys t ému .
Po žadovanou ope r a c i j e nutné rozdě l i t na : -
posun vš e ch bodů obj ektu t ak ,
aby
bod A
byl
v
p o čá tku
s ouř adného sys tému - pooto čení v š e ch bodů daného obj ektu o úhe l ex -
posunut í
v š e ch bodů obj ektu
původní p o z i c i - 4 -
t ak ,
aby
bod A
byl
ve
své
y
4
y 4
2
2 ---jL-
3
3
�
___
1
1
O
O
1
2
4
3
5
1
o
x
4
3
5
x
b)
a)
původní s tav
po posunut í do p o čátku
y
y
3
3
1
1
2
O
2
2
O
O
x
O
1
x
d)
po posunut í bodu A
po o t o čení
do původní p o z i c e
o úhe l
Obr . 4 . 2 . 1 Ce lý pos tup l z e p ř e p s a t pomo c í r ovni c
x' x' x'
= I I
= I
=
-b ) x' )
x
T ( -a,
R (
lX
T ( a ,
.
b )
.
x' -
I
5 -
tj . X' l ze p s á t ,
x'
I
= T ( a ,
I
I
Q {
=
I
[X' '] [1 1 1 ( a ,
b ,
I
y'
I
a
b ,
=
•
T ( -a ,
b )
s in o:
O
cos o:
O
[COS
( a ,
•
x
b ,
o: )
=
- s in o:
s in o: 0
cos o:
C
························································
O
Y·····························
t
.
O
- a . cos o: + b . s in o: +a
j
I
-b )
-a
-b
.
O
o:
·········
�[ 1 ] [ � ] 1 ]� ] . T ( -a ,
. R ( o: )
Vyhodno cením výrazu p r o Q dos táváme : Q
-b )
. x
cos o: - s in o:
O
O
o: )
o: ) = T ( a ,
O
I
R ( o: )
že
kde :
Q
b )
- a . s in o: - b . c o s o: +b r
···················································
·············..............................
1 [ -� 1 ]
Po dos azení za o: = - rr / 2 do R{O: ) dos táváme : O
R
O
�
O
O
Po vyhodnocení mati cového výrazu pro o: =
že obe cnou mat i c i trans forma ce Q l z e r o z dě l i t na r o změru 2 x 2 vyj adřuj í c í obe cně r o t a c i a na
Obe cně p l a t í , Q
s ubmat i c i
R
1
mat i c i Q r ozmě ru 2 x p Q
=
[
Odtud vyp lývá , s ta č í kde :
mat i ce
- rr / 2 dos táváme :
vyj adřuj í c í posuv ,
Q
0
··································
A
Q
R
···················...........
Q p
············....
r
]
········
že k r e p r e zentaci obe cné rozměru
2 x 3
a t e dy :
( toho
- 6 -
t r an s formace v r ov ině
využívá
např .
i
GK S - 2D ) ,
Je
z ř e j mé ,
že
e fektivn í , vztahy
uve dený
způsob
provádění
ope r a c í
není
příliš
a p r o t o s e v e skute čných aplika c í ch s p o č í t a j í p ř e dem
pro
ce lou
t r ans forma c i
a
vektory
x
s ouřadn i c
se
p ak
vynásobí výs l e dnou mat i c í . V někt e rých publ ika c í ch mís t o pořadí
s l oup c ových vektorů
vektorů
a
mat i c
( ze j ména vektorů
operací
zahr an i čn í ch ) řádkových .
obr á t i t
a
se
P ak
použ ívá
je
j e dno t l iv é
nutné mat i ce
a vektory t r ansponovat , neboť vztah y
A B x
=
j e možné p ř e p s at j ako
Re l a t ivní změna měř í tka V
některých
z áludná .
s i tua c í ch
Uvažme
může
j ednoduchý
být
i
změna
měř ítka
operací
chceme
zmenš i t
který
obj ekt ,
v poměru 1 : 2 , v i z o br . 4 . 2 . 2 . a .
Y
Y
původní stav
4
4
3
2
2 1
O
1
4
3
2
x
O
2
U
1
(x r,yr)
nesprávný výsledek
4
3
3
O
Y
požadovaný stav
( xr,Yr)
O
1
3
2
U
1
4
x
O
( x r ,Y r )
O
1
4
c)
b)
a)
3
2
Obr . 4 . 2 . 2 Tento z dánlivě způs obem ,
j e dnoduchý úko l může
být r e ali zován n e s p r ávným
neboť vynás obíme - l i s ouřadnice vr cholů t r ans formační
mat i c í S ( Sx , Sy ) obr . 4 . 2 . 2 . c .
( Sx
=
0. 5,
Sy
=
0. 5 ) ,
Obj ekt s e ne j en zmen š í ,
pak dos t aneme s i tua c i na ale zár oveň se
i po sune ,
(x 'Y ) . r r Pokud chceme zí skat výs tup , který j e uve den na o br . 4 . 2 . 2.b , p ak
neboť
se
p ř e p o č tou
i s ouřadn i ce
j e nutné : - 7 -
r e ferenčního
bodu
x
- posunout o b j ekt do p o čátku s ouř adného sys temu , - pr ové s t
přepočet
s ouřadn i c
posunutého
obj ektu
podle
požadovaného zmen š ení , - posunout obj ekt do původního r e fe r enčního bodu (x ' Y ) ' r r Tyto j e dn o t l ivé kroky l ze popsat r ovnicemi =
x' x"
x' "
=
T ( -x ' r S
-y
x
.
Sy )
x'
y ) r r '
. x"
( Sx
= T ( x
)
r
tj . x'
, ,
=
T ( x
P ak l z e p s á t x' "
kde
r ' Yr )
= Q ( a ,
. S ( Sx ,
b ,
[X"'] [ 1O 1O 1 OO y' , ,
Ci
)
•
Sy )
Sy
((11
(x ' Y ' Sx , sy ) r r
obsahuj í
podporuj í c í však
pravděpodobně
p o č í t ač ovou grafiku .
p osky tuj í
- Sx ) . x
i
dal š í
························
r
. x
]
........ .
j ako posuv , v š e chny
Jen někt e r é
" odvozené "
vhodné p r o někt e r é ap l ikace .
)
- Sy ) . Y r E
··························:
Dř íve uve dené zákl adní t r ans formace , měř í tka ,
r
OO 1O 1O 1 ].[ O O
O OO O
P o vyhodno cení výrazu pro Q dos táváme :
Q
-y
x
Sx
=
. T ( -x r ,
r o t a c e a změna
p r o g r amové p r o g r amové
t r ans forma ce ,
které
c e lky c e lky j s ou
Dvě t akové ope r a c e j s ou z r cadlen í
a zko s e n í .
- 8 -
Zrcadlení Z r cadlení j e ope r a ce , kdy j e obj ekt t r ans formován d o t akové poz i c e , bodu .
která
zr cadl ením
Ne j j e dnoduš š í j e př ípad ,
s ouř adnou obr . 4 . 2 . 3 , x' tj .
v znikne
o s ou .
Pro
př ípad ,
vzhledem
k
n ě j aké
ose ,
či
kdy o s a zr cadlení j e t o t o žná s e
že
o s ou
zr cadlení
je
osa x ,
viz
pak p l a t í = x
y'
=
y
-
1O -1O OO O O 1 ] [�1
v mat i covém tvaru
před
y
po
y
před
x
x
Obr . 4 . 2 . 3 V p ř ípadě , x' tj .
Obr . 4 . 2 . 4
ž e o s ou zr cadlení j e o s a y , v i z obr . 4 . 2 . 4 , =
-
x
y'
1O 1O OO O O 1 ] [�]
v mati covém tvaru
-
- 9 -
y
p ak p l a t í
Pro
X
p ř íp ad ,
osa y = -
x'
tj .
že ,
o s ou
zr cadlení
je
v i z obr . 4 . 2 . 5 a obr . 4 . 2 . 6 , y'
= y
,
= x
resp .
Y = x ,
osa
pak p l atí x' = y -
y'
r e sp . - x
v mati c ovém tvaru o
1
O
O
1
O
O
] [�]
O
1
resp .
-
O
-1
O
O
1
O
O
] [�]
O
1
y
před
y
/
/
/
,/
/
"/
/
/
/
Y=
y= - x
x
x
x
Obr . 4 . 2 . 5
Obr . 4 . 2 . 6
P o s l e dn ím
p ř ípadem
obr . 4 . 2 . 7 , x'
kdy j e transformační vztah pop s án r ovn i cemi
tj .
je y'
= - x
zr cadlení
vzhledem
= - y
v mat i c ovém tvaru -1 O
O
O
-1 O
O
O
1
] [�] - 10 -
k
p o č átku ,
viz
y
x
Obr . 4 . 2 . 7 Uve dených operací zr cadlení lze s výhodou využ ít p ř i r e a l i z a c i různých
obj ektů ,
kte r é
j s ou
umístěny
zr c ad lově ,
z e j ména
v o b l asti stro j ír enství a e l ektrote chniky .
Zko sení Zkos ení
je
dal š í
ope r a c í ,
Obvykl e s e r o z e znává tzv . H (a) = x
[
kte r á
je
někdy
k
dispozici .
zkos ení x , kte r é j e definováno mati c í
1
a
O
O
1
O
O
O
1
]
a zko s en í y , kte r é j e ur čeno maticí
H (b) Y
Na
obr . 4 . 2 . 8
=
[ je
1
O
O
b
1
O
O
O
1
uve dena
] obl ast
a zko s e n í y .
- 11 -
a
výs l e dky
po
zko s e n í x
y 3
-
2
1
O
zkosení x b = 1
a = 0,5
Y 3
I'
-
I
O
1
I
2
-
3
x
Y 3
2
2
1
1
O
O
1
O
2
3
zkosení y b = 0,5 a= 1
x
O
1
2
3
x
Obr . 4 . 2 . 8
Př íklad Odvoďte vztahy pro geometr i ckou tr ansforma c i ,
kte r á j e dána
mati c í
H
xy
1
a
O
b
1
O
O
O
1
a = 0. 5
b
(a)
p ř i č emž vo lte
=
[
=
]
0. 7
Výs l e dek ope r a c e
ilustruj te
na př ípadě z obr . 4 . 2 . 8 . a . Př íklad Odvoďte
v ztahy
a l i chobě žníkem
pro
vzáj emnou
( po čátek
s j e dn ím vr cho l em .
tr ans forma c i
s ouřadného
s ystému
mezi
obdé lníkem
ztotoněte
Diskutujte vlastnosti této ope r a c e
možnosti apl ika c í .
- 12 -
vždy
a ukažte
4 . 3 Mat icová reprezentace operací pro t ř í r ozměrný p r o s t o r
Mati cové r ep r e z entace pro operace v r ovině vyžadovaly mat i c e o r ozmě ru 3 x 3 . zalo žené
na
Ana l ogi cky pro ope race
r epre zenta ci
bodů
v tř í r o změrném p r o storu
homogenními
s ouřadn i cemi
budeme
p o žadovat matice 4 x 4 . Na rozdíl od dvourozmě rného p ř ípadu , kdy je
o r ienta c e
karté z ského
s ouř adného
systému
v ž itá ,
je
nutné
u t ř í r o změ rného prostoru j e dnoznačně definovat směr j ednotl ivých os .
y
levotočivý
y
pravotočivý
souřadný
souřadný
s ystém
s y stém
z
�------� x
x
_ z
Na
/
_______
obr . 4 . 3 . 1
s ouřadný
je
ukázán
systém
v j e dnotlivých
Obr . 4 . 3 . 1
s
j ak
vyznačeným
rovinách .
Dále
pravoto č ivý s ouřadný systém , l evoto č ivý
s ouř adný
pravoto č ivý , kladným
budeme
tak
byl
imp l i ci tně
" př irozeně j š í "
v p ř ípadě grafi ckých výstupní ch zař í zení .
l evoto č ivý
s mě r em
pokud nebude ř e čeno
systém by
i
r ota c í p oužívat
j inak , pro
i když a p l ikace
Jednotl iv é o p e r a c e pro
tř í r o změ rný s ouř adný systém j s ou vlastně r o z š í ř en ím tran s forma c í pro dvour o změrný s ouř adný systém . Posuv Posuv o vzdálenost Dx , x'
=
y' z'
Dy ,
Dz l z e vyj ádř it r ovni cemi :
Dx + x Dy + Y
=
Dz
+
z
- 13 -
O O OO O O O O O
V mat i c ovém tvaru pak
y'
1
=
1
z' 1
x'
=
T ( Dx ,
Dy
Y
Dz
z
1
1
x
Dx
1
x'
Dy ,
Dz )
. x
Na o br . 4 . 3 . 2 j e znázorněna s i tuace před posunut ím .
Na obr . 4 . 3 . 3
j e pak s tav po posunut í dané vektorem ( -1 , 2 , 1 ) .
z
z před transformací
6
6
p o p os u n u tí D
=
( -1, 2. 1)
4 2
2
4
6
8
Y
4
2
4 x
x
Obr . 4 . 3 . 3
Obr . 4 . 3 . 2 Změna měř í tka x'
=
Sx
y'
=
Sy
y
=
Sz
z
z'
tj .
O O O OO O O OO O O O
v mat i c ovém tvaru x' y' z' 1
Sx
=
Sy
Sz
1
- 14 -
Y
x
z 1
6
8
Y
resp .
= S ( Sx ,
X' Sx= 2 ,
Sy= 3 ,
obr . 4 . 3 . 2 .
Sz )
. x
znázorněna s ituace po p r ovedení změny m ě ř ítka
Na o br . 4 . 3 . 4 j e pro
Sy ,
Je
Sz=2
nutné
zobr azovaného obj ektu . pouze na obj ekt ,
na
ap l ikované že
upozornit ,
s itua c i
původní
d o chází
i
k
z
po sunut í
Pokud by s e mě l a apl ikovat změna měř ítka
j e nutné postupovat obdobně j ako v kap . 4 . 1 p r o
př í p ad r e lativní změny měř ítka v E . 2 z
po změně měřítka S
=
10
( 2. 3. 2 ) .
8 6
4 2
y
4 6 �
--y
______________
x
Obr . 4 . 3 . 4 Rotace Rotace
kolem
osy
z,
tj .
v
x'
=
x
y'
=
X
z'
=
z
r ovině
xy ,
o
úhe l
ex
je
r ovni c emi : cos ex s in ex
+
y
s in ex
y
cos ex
V maticovém tvaru
x' y' z' 1
=
cos ex
- s in ex
O
O
x
s in ex
cos ex
O
O
Y
O
O
1
O
z
O
O
O
1
1
- 15 -
p op s ána
resp . resp .
= R (lX) z
X'
z
•
x
z směr rotace okolo os y x
směr rotac e okolo os y z
y
y
x
x
Obr . 4 . 3 . 6
Obr . 4 . 3 . 5 Rota ce ko l em osy x , tj . x' y' z'
v rovině y z ,
o úhe l (3 :
x
=
= =
y
cos (3
y
s in (3
+
z
s in (3
'z
c o s (3
V mati covém tvaru pak
x' y' z'
=
1
1
O
O
cos (3
O
s in (3
O
O
O
x
- s in (3
O
Y
cos (3
O
z
1
1
O
O resp .
Rota ce kolem osy y ,
tj . v r ovině zx , x'
x
y'
y
z'
=
-x
x'
=
R {(3 ) x
.
x
o úhe l '1 :
cos '1
+
z
s in '1
s in '1
+
z
cos '1
V mati covém tvaru pak
x' y' z' 1
=
cos '1 O - s in '1 O
O
s in '1
1
O cos '1
O
O
O
- 16 -
O
x
O
y
O
z
1
1
resp . X'
resp .
z
směr rot ace okolo os y y
y x
Obr . 4 . 3 . 7 P ř i r ota c i oko l o osy y j e nutné v mat i c i R , ř á dky
neboť v př ípadě umístění
by chom
dostal i
Inv e r zní
systém . podobným
dát pozor na p o lohu znaménka
způs o bem
mati ci
j ako
r otace
k
ope race
pro
ope r a c ím
př ípadě
v
znaménka minus
do
l evoto č ivý uvedeným
dvour o změrného
s ouř adný
lze
z
-z
y x
y
x
a ) p o č áte ční stav
b ) výs l e dný s tav
Obr . 4 . 4 . 1 . - 17 -
z í s kat
s ouř adného
systému .
z
p rvní
4 . 4 Řet ězení t ř írozměrných t ransformací
Podobně j ako v dvour ozměrném př ípadě l z e j e dnotl ivé o p e r a c e skl ádat .
Vzhledem
komutativní , také
k
tomu ,
že
maticové
j e výs l e dek dán nej en
poř adím
provádění
násobení
j e dnotl ivými
j e dnotl ivých
není
obe cně
parametry ,
ope r a c í .
ale
K
i lustr a c i
zřetězení j e dnotl ivých ope rací uveďme p ř íklad z [ 44 ] .
P okusme s e
vektory z obr . 4 . 4 . 1 . a uspoř ádat d o takové polohy ,
ž e ús e čka P P 1 2 j e ztoto žněna s e z ápornou poloosou z a ús e čka P P l e ž í v r ovině 1 3 yz . Výs l e dek j e uve den na obr . 4 . 4 . 1 . b . Ře š ení
daného
problém
může
být
rozdě leno
do
něko l ika
kr oků ,
a to : 1. 2.
Posuv bodů tak , Rota ce
bodů
aby bod P
oko lo
osy
l
byl v p o č átku . y
tak ,
aby
ú s e čka
v r ovině yz . 3.
Rota c e
bodů
oko l o
osy
x
tak ,
by
ús e čka
záporné p o l o o s e z . 4.
Rotac e
bodů
okol o
osy
z
tak ,
aby
ú s e čka
ležela
ležela
P P l 2
v r ovině yz . P ř e dpokl áde j me ,
P P 1 2
P P 1 3
na
ležela
že homogenní souřadn i ce jednotl ivých bodů j s ou : P2 = [ x 2 '
Y2 '
z
2 '
1
]
T
P ak mat i c e r ep r e zentuj í c í posuv má tvar :
=
T
1
O
O
-x
O
1
O
-y
O
O
1
-z
O
O
O
1
1 1 1
Po provedení operace posuvu x' dostáváme
= T ( -x stav ,
O
,
1
-y
kte rý
1 ,
-z
1 )
je
uveden
.
x na
obr . 4 . 4 . 2 ,
s ouř adn i c e bodů j s ou :
p'1
p'2 p'3
=
[
=
[ x
= [ x
, 2 3
O ,
- x - x
O
1 ]
T
l
Y2 - Y 1
z
l
Y3 - Y1
z
2 3
- z - z
- 18 -
l l
1 ] 1 ]
T T
p ř i č em ž
nové
-z
y x
výs l e dek po posunutí Obr . 4 . 4 . 2 Nyní
je
nutné
provést rota c i okolo osy y tak ,
l e ž e l a v r ov ině yz .
K tomu j e nezbytné , ur č it úhe l r otac e ,
j e prováděna o nezáporný úhe l � , cos I/J =
cos � =
z' 2
aby ús e čka
pro kte r ý p l atí : s in I/J =
= cos ( rr/ 2 + � )
-z ' 2
s in �
x' 2
x' 2
kde
Po dos azení dostáváme cos � =
- ( z
2
-
s in � =
kde :
Po provedení ope r a c e r otace oko l o osy y ,
X'
kde :
I
= R
zx
( � )
O O
cos � R
zx
(�) =
- s in �
. x'
O O OO O
s in �
1
cos �
-
19 -
tj .
OO O 1
v r ov ině zx
P P l 2 kte r á
dostáváme stav ,
kte rý j e na obr . 4 . 4 . 3 .
z
P 3"
" P2
-z
y x
výs l e dek po r otaci okol o osy y Obr . 4 . 4 . 3 Po
dos azení
s ouřadn i c
bodu
dostáváme s ouřadnice bodu P" 2 P 2" Rotace
'
P' 2 a to :
do
rovn i c e
rovině
yz,
mus í
pro
rota c i
= [ O , Y - Y l ' 2 okol o
o úhe l o ,
osy
x,
tj .
v
být
p r ove dena
pro kte rý platí z' , 2 D 2
cos ( o ) = kde
s in ( o ) =
Vzhledem k obr á c ené or ientac i mus íme prové st r ota c i o úhe l -o , př i čemž cos ( -o )
=
s in{-o ) = - s in ( o )
cos ( o )
Po dosazení a úpr avě dostáváme : D
2
=
ý(
x
2
- x
l
)
2
+
( Y 2 - Y1 )
Po p r ov e dení ope r a ce rotace ko lem osy x , x
' , ,
= R
yz
( -o )
' x
,
- 20 -
2
+
tj .
( z
2
-
z
l
v r ov ině y z
)
2
kde O
1 R ( -o ) yz
=
O
cos ( -o ) - s ine-o )
O
O
s ine-o )
cos ( -o )
O
O do staneme stav ,
O
O
1
O
O
který j e na obr . 4 . 4 . 4 .
z
Cl
P '" 1
y
x \
výs l e dek po rota c i oko lo osy x Obr . 4 . 4 . 4 Výs l edné s ouřadn i c e bodu P" , 2
pí"
= [ O ,
O ,
-D
2
j s ou zře j mé , '
1 ]
a to :
T
P o s l e dn ím krokem j e r otace okolo osy z o úhe l a tak , P P l e ž e l a v r ovině yz . 1 3 y' , , 3 cos a =
V daném př ípadě p l atí , s in a =
že x' 3
aby ú s e čka
, ,
kde : D
3
=
Poznamene j me ,
-V (
x" ' ) 3
2
+
( y" ' ) 3
2
ž e s ouřadnice bodu P 3 "
by byly z í s kány ap l ika c í
ste j ných trans forma c í , kte ré byly uvedeny výš e p r o tr an s forma c i
bodu P í"
.
Uve dené operace mohou být zřetě z eny tak ,
- 21 -
------ ----
že
a j edno t l ivé operace mohou být s l oučeny t ak , x'
,
"
= O
•
že
x
kde m a t i c e :
Obe cně
opě t
platí ,
že mati c i O rozměru 4 x 4
subma t i c i 0 R r o změru 3 x 3 vyj adřuj í c í obe cně
O vyj adřuj í c í posuv . p
Odtud vyp lýv á ,
lze
r o t a c i a mat i c i
Pak l z e p s át :
ž e k reprezentaci obe cné t r ans forma c e v p r o s toru A
E 3 s t a č í mat i ce O ro změ ru 3 x 4 ( toho využívá např .
kde :
A
O
r ozdě l i t na
i GKS - 3 D ) ,
=
y'
směr pohledu
/
/
/
/
/
a x' x
z
ve skute čno s t i ne budeme pos ouvat s ouř adný sys t é m , a l e o b j ekty Obr . 4 . 5 . 1 - 22 -
4 . 5 Rotace kolem l ibovo lné o sy
Rota c e
kolem
l i bovolné
dekomp onovate lnou
na
osy
je
j e dnoduš š í
ve lmi
častou
kroky .
úl ohou
De f inuj me
Q(x , y , Z ) j ako bod , kterým osa o p r o cház í , a q q q j ednotkový vektor , kte rý j e dán pomo c í směr ového ( a, b, c ) .
bod
směrový vektoru
Je dnotl ivé kr oky pro pooto čení o úhe l � j s ou :
posuv
obj ektu
do
nového
s ouř adného
systému
s
p o č átkem
v bodě Q ( mati ce T ) - p r ovedení r otace obj ektu oko lo osy x a y tak , vektor
( a, b, c )
byl
po
rotaci
aby j e dnotkový
ztotožněn
s
vektorem ( 0 , 0 , 1 ) r ovnobě žným s o s ou z ( mati ce
j ednotkovým R
R
yz '
zx
)
- pooto čení obj ektu o úhe l � - provedení inve r zn í ch rotací okol o os y a x ( mati c e R - inv e r zní po suv obj ektu ( mati c e T Ú če l em 4 .
a 5.
Souř adný
s ystém ,
-1
-1 -1 ) ,R zx y z
)
kroku j e návrat do původního s ouř adného systému . kte rý
byl
zal ožen
s l ouží pouze k dočasným účelům . definována mati c í ,
v
r ámci
1.
a
2.
kroku ,
Kompl etní tran s forma c e
j e p ak
kter á j e dána výr azem, . T
T r an s formace posuvu s ouř adného systému do dána mati c í :
T ( -x ' -y ' - z ) q q q
=
bodu Q ( x , y ' Z ) q q q
1
O
O
-x
O
1
O
-y
O
O
1
-z
O
O
O
1
q q q
tj . x' = T Mati c e r ota ce R
yz
x
.
( a ) pro r otaci kolem osy x ' 1
R
yz
(a) =
O
O
O
O
cos a
- s in a
O
O
s in a
cos a
O
O
1
O
O
j e defin ována :
- 23 -
------ -
--
je
kde : c v
cos ex = I
x'
tj .
s in ex =
( ex ) = R yz
•
b v
v=
x'
Výs l e dek p o posunu a r o t a c i kolem osy x '
I
o úhe l ex j e uve den n a
obr . 4 . 5 . 2 .
y' y" �
z"
____--r ___ --r--�
/8/0
a
směr pohled II
x' x "
z'
Obr . 4 . 5 . 2 o úhe l {3 ,
Nyní j e nutné p r ové s t r o taci ko lem osy y"
který j e
ur č en vztahy : v r
cos {3 =
v=
a
kde V př ípadě ,
ž e ( a , b , c ) je j edno tkový smě r ový vektor , a
2
Mat i c e r o t a c e R
R
zx
( {3 ) =
+
zx
b
2
+
c
x'
I
má tvar :
o
s in (3
O
O
1
O
O
O
cos (3
O
O
O
1
= R
zx
( {3 )
p l at í :
= 1 .
cos {3 - s in {3
I
2
( {3 ) pro rotaci ko lem osy y"
O tj .
-a r
s in {3 =
-
. x'
I
.
-
24 -
Nyní z bývá p r ovést r otaci obj ektu o úhe l 'tJ kolem o s y o , ztoto žněna s o s ou z ' " systému ) ,
( tj .
kte r á j e
r otaci v r ovině xy nového s ouř adného
viz obr . 4 . 5 . 3 . Matice r otace R má tvar :
R 'tJ ) xy {
O
O
1
O
cos 'tJ
s in 'tJ
- s in 'tJ
cos 'tJ
O
O
O
O
=
O
O
O 1
směr pohledu
z"
x"
Pro
mat i c i
ObrA.5.3
R
( 'tJ ) uvažuj eme pooto čení o úhe l oko l o o s y z xy v kl adném s my s l u . Pak matice rota ce R ( 'tJ ) mus í být p r o s ouř adný xy systém pozor ovate l e , tj . pro levoto č ivý s ouř adný s ystém , trans ponována .
Obr . 4 . 5 . 4 - 25 -
Př íklad Je dána krychl e , v i z obr . 4 . 5 . 4 . a ,
s vrcholy :
A = ( 0, 0, 0) ,
B = ( 2, 0, 0) ,
C = ( 2, 2, 0) ,
D
( 0, 0, 2 ) ,
F = ( 2, 0, 2 ) ,
G = ( 2, 2, 2 ) ,
H = ( 0, 2, 2 ) .
E
Pootočte
tuto
krychl i · a ( 2 , 2 , 2 ) o úhe l 6 0 .
oko l o
osy
( 0, 2, 0 ) ,
p r o cháze j í c í
body
( 0, 0, 0)
Ozn a č íme - l i T pak l z e c e l ou t r an s formaci vyj ádř i t výr azem
W
kde
W
=
R
vyj adřuj e
-1
.
R(�)
•
W
s ouhrnně posuv a r o t a c i
obj ektu
do
p o ž adované
p o l ohy a R ( � ) j e mat i c í r o tace kolem zadané' osy . Ce lková mat i c e t r ans formace R má tvar :
R =
2/3
-1/3
2/3
°
2/3
2/3
-1/3
°
-1/3
2/3
2/3
O,
°
°
1
°
a vr cho ly dané krychl e po rotaci maj í s ouřadni ce : A' = ( ° , C' = (
° ,
2/3 ,
E' = ( 4/3 , G' = (
2 ,
8/3 , -2/3 ,
2 ,
B ' = ( 4/ 3 ,
° ) 2/3 ) 4/ 3 )
2 )
-2/ 3 )
4/3 ,
D' = ( -2/3 ,
4/3 ,
4/3 )
F' = ( 8/3 ,
2/3 ,
2/3 )
H' = ( 2 / 3 ,
2/3 ,
8/3 )
Výs l e dek po r ot a c i o úhe l � j e na obr . 4 . 5 . 4 . b . z
y
,,
E f----t---,r, \
AI
- 26 -
H'
, 1' " ...
,.' '"
\
i-\ \k" \
... ..." ..,('\ '»'" .... :' /
....... . \ / ....... 8'
/
,-
C'
4 . 6 Transfo rmace "okno-pohled"
Č a s t ou úl ohou
je
zobrazení
kr e s leného
mot ivu
z
int ervalu
< Wx , Wx > x < Wy , Wy > do inte rvalu < Vx , Vx > x < Vy ' Vy > , viz b a b b a a a b obr . 4 . 6 . 1 . Tato t r ans formace s e používá z e j ména ve s p o j ení s operací
o ř e z áván í ,
neboť
obvykle
ne chceme
zobr a z i t
tu
čás t
kr e s l eného mot ivu , která j e mimo zobrazované okno .
Y
Y (Wx ,WY ) b b
o
o
x
x'
Obr . 4 . 6 . 1 I
když
j de
o
j e dnoduchou t r ans forma c i ,
z e j ména z důvodu č a s t ého používání .
j e vhodné
J e zř e j mé ,
ji
odvodi t ,
ž e t r an s forma c e
bude ur č ena nás l e duj í cími zákl adními kr oky : - po suvem,
který j e repre zentován mat i c í T ' bodu ( Wx ' wy ) do l a a bodu ( 0 , 0 ) , t j . posuvem do počátku s ouř adného s y s t ému ,
- změnou m ě ř í tka na o s e x a y , S,
která j e r ep r e z en tována mat i c í
t ak ,
aby s e interval < Wx ' Wx > t r an s formoval na interval b a < Vx , Vx > , a podobně pro osu y, b a
- po suvem,
který
je
repre zentován
mat i c í
( Wx , Wy ) do bodu ( Vx , Vy ) . a a a a Pak l z e p s á t
x'
Q
•
x
Q
kde
T ' 2
=
p ř i č emž :
T l
=
[
1
O
-Wx
O
1
-Wy
O
O
1
a a
]
T
- 27 -
2
=
[
původn ího
T
bodu
S
2
1
O
O
1
O
O
Vx
a VY a 1
T l
]
[
S
( VX -VX a } b
=
�
( WX -WX a ) b
O
O
( vy - vy ) / ( wy -wy ) a b a b O
O 1
]
Mat i ce Q r ep r e zentuj í c í ce lou t r an s forma c i je p ak u r č ena t ak t o
[
Q
kde :
ex
O
O
(3
cl
O
O
1
ex = ( VX (3
=
( Vy
Je z ř e j mé , interva l ,
'1
]
b
- Vx ) / ( WX - Wx ) a b a
b
- Vy ) a
Vx
'1 cl
/ ( W Y - Wy ) b a
Vy
=
- ex Wx
a
a
- (3 W Y a
a
že pokud by některé čás t i kr e s by p ř e s ahovaly zadaný j e nutné tyto čás t i vhodně odř íznout .
Takto
s l o ženou
t r ans formaci
je
možné
používat ,
ni cméně
z mnoha p r ak t i ckých důvodů j e vhodné tuto t r ans forma c i r o zdě l i t n a t r an s formace dvě , - na
a to :
t rans forma c i
z
intervalu
inte rval ( 0 , 1 > x ( 0 , 1 > , - na
t r ans forma c i
z
Tímto
způs obem
ve l iko s t e ch
doj de a
okna
t r ans formace .
reprezentovanou mat i c í k
ro zpadu
pohl edu
okna ,
na
na
Tí .
t r ans formac e na
dvě
int e r va l
závi s lé
s obě
na
ne závi s l é
Ve l iko s t okna j e obvykle dána v e l iko s t í kre s l i c í
p l o chy na výs tupním zařízení , zař í zení ,
(0, 1> x · (O, l > ,
( VX ' VX > x ( Vy , Vy > , a a b b
Tí,
reprezentovanou mat i c í
intervalu
na
zatímco ve l iko s t
a tedy j e v l a s tno s t í výs tupního
zobrazovaného mot ivu ,
tj .
v e l iko s t
j e dána požadavky apl ika čního programu , v i z obr . 4 . 6 . 2 .
Tímto způsobem l z e d o c í l i t nezávi s l o s t i grafi ckého výs tupu na Norma GKS [ 5 6 ]
aktuá lním výs tupním zař ízení . způ s o b
ř e š ení
už iva t e l s ký ch
nezávi s l o s t i s ouřadni c ,
tj .
výs tupu .
grafi ckého pros tor ,
pak p ř i j a l a tento ,
ve
kterém
se
Pros tor nachází
interval
( WX ' Wx > x ( W Y ' Wy > , j e označován j ako WC ( wo r l d b a b a Coor dinate s ) , p r o s tor norma l i zovaných s ouřadni c , t j . interval (0, 1> x (0, 1 > ,
Coor dinate s ) kterém
se
je a
označen
pros tor
nachází
j ako
s ouř adnic
interval
j ako DC ( Device Coordinate s ) .
NDC
.( Norma l i z e d
zařízen í ,
tj .
( VX ' vx > x ( vy , Vy > , b a b a
Dev i c e
pros tor , je
ve
označen
- 28 -
-------
y
o
x
o
x
Obr . 4 . 6 . 2 - 29 -
�---��--- - -
-
Pak mat i c e T ' a T í j s ou definovány takto 1
O D l O [ O O ] cx
T' 1
kde
=
Dl
=
cx
=
cx
1
=
a 2
02 Je
z ř e j mé ,
zař ízení .
=
1
{3
°
1
1
T' 2
1
1 / ( WX - Wx ) b a - cx Wx 1 a Vx Vx
- Vx
b
O O [ O O cx
{3 °
1
=
1
=
{3 2
a
°
a
=
{3
02
°
2
1
2
]
1 / ( WY - Wy ) a b - {3 Wy a 1 VY - Vy a b VY a
=
=
2
2
ž e mat i c e T í j e ur čena pouze vlas tno s tmi výs tupního
Toto
r ozdě lení
umožňuj e
i
s oučasný
výs t up
na
v í ce
rozdí lných zař ízeních . 4 . 7 Transformace kř ivek a ploch druhého s tupně
Dosud
uvedené
ge ome t r i cké
t r ans formace
byly
odvozeny
pro
s body a ú s e čkami . P r o r e álné p ř ípad ope r a c í v E ' r e s p . v E 3 ' 2 použ i t í kř ivek ( kuže l o s e ček , t j . kružnic , e l ip s apod . ) l e ž í c í ch
,
na l ibovolné r ovině v pros toru a p l o ch ( e l ip s o idů , vál cových a kuž e l ových p l o ch ) p r im i t iv ,
je
ne zbytné
druhého
odvodit
s tupně ,
analogické
par abo l o idů ,
j ako
grafi ckých
t r an s formace
t r an s forma c ím s ouř adni c bodů .
O
Uvažme obe cnou kuž e l o s e čku ve tvaru x
T
A
•
•
x
=
r o z e p s áním pak dos táváme ( př edpokl ádáme syme t r i ckou mat i c i A ) :
2a
+
14
x
2a
+
24
y
2a
+
34
z + a
Pak operace posunut í j e definována : z = T . x
x
Lze t edy p s á t : z
(
T
Pak z
T
.
)T
-1
.
B. O T
z
A
.
T
-1
=
- 30 -
T
=
.
z
-1
=
O
.
z
44
O
k
B
kde :
=
kř ivku , Je
A
•
resp .
T- 1
•
j e mat i ce r e p r e z entuj í c í danou
p l o chu , druhého s tupně po posunu t í .
p o chop i t e lně nutné t é ž např .
t r ans formovat
i
kon cové
v př ípadě
body
pomo c í
e l i p t i ckého o b louku
T-�
mat i c e
P odobným
způs obem l z e odvodit i os tatní geome t r i cké t r an s forma c e . P r o p ř ípad r o t a c e dos táváme
z
z V př ípadě
R . x
=
T
A
R
.
-1
z = O
.
tj .
j e mat i c e R or togonální ,
r otace
platí R
- 1=
T R ,
a tedy l z e p s á t :
-1 T z . R . A . R
.
z = O
4 . 8 Akce lerátory
Při bodů
r e al i z a c i
je
a poté
vhodné ji
ge ome t r i ckých
n e j dř íve
použ í t
j edno t l ivých akc e l e r át ory ,
Pro
které
Ne j j ednoduš š ím
ur č i t
pro
bodů .
t r an s formací ce lkovou
výpo č e t ury chl ení
real izuj í
p ř ípadem
je
s ouř adn i c emi
mat i c i
t r an s formace
trans formovaných výpo čtů
j s ou
ma t i c ové
p r o c e s orů s pohybl ivou ř ádovou čárkou ,
při
vektor ,
tj .
t zv .
hardwar ově . použ i t í
dvou
viz obr . 4 . 8 . 1 .
Repre zen tuj e - l i mat i c e R ce lkovou t r ans forma c i ,
apl ikována na vektor x,
s ou ř adni c
použ ívány
ope r a c e
realizace
pak
se
k t e r á má být
a ozna č íme - l i x' výs l edný t r an s for movaný
platí : x'
R
•
x
Akc e l e r átor pak p r onásobí pos tupně odpovídaj í c í s l o žky vektoru x a ř ádky mat i c e R t ak ,
y' z' w'
r = =
r r
21
x
+
r
31
x
+
r
41
x
+
r
Pak na výp o č e t tj .
operací
že dos t áváme :
j edné
s č í tání
22 32 42
y
+
r
y
+
r
y + r
13 33 43
z + r z
+
r
z
+
r
24 34 44
s l o žky vektoru x' nebo
nás obení .
Ke
w w w se
zrychlení
možného paral e l ismu ope rací nás obení a s č í t án í . - 31 -
7
kr oků ,
lze
použ í t
s p o t ř e buj e
I
.
z
y
x
W
•
4�
-
II
,
...
.
násobení
\11
fU
f2l
f3l
f4l
f l2
f22
fn
f42
fl3
f23
f33
f43
fl4
f24
f34
f44
,
fegistf
fe g istf
II
\
\
sčítání
�
x
'
y'
�
w'
z'
Obr . 4 . 8 . 1 Uváž íme - l i např . x' pak
ope r a c i výpočtu hodnoty x ' ,
kde
=
lze
ukázat ,
v j edno t l ivých
že
operace
čas ových
nás obení
okamži c í ch
obr . 4 . 8 . 2 . - 32 -
a
s č í tání
pr ováděny
mohou
být
s oučasně ,
viz
1
o
I
3
2
4
5
t
6
TU *X
Obr . 4 . 8 . 2 Uvedeným
způs obem
se
za
5
čas ových
j ednotek
p r ovede
7
FLOP S
( F l oa t ing P o in t Ope r ations - operací v pohybl ivé ř ádové č á r c e ) . Lze
tedy
ury chl i t
zrychlení
lze
( p ipe l ining ) .
pr ovádění použí t
výš e
o
40 % .
K
dal š ímu
j edno t l ivých
uvedené
pak lze ukázat ,
n a N + 1 čas ových j ednotek, tj .
as i
zř e tězení
Použ i j eme - l i
j edno t l ivé dimenze ,
operací
s chéma
ope r a c í
výp o č tu
pro
že j e zapo t ř e b í N * 7 FLO P S
j e - l i N dimenze mat i cových o p e r a c í ,
v našem p ř ípadě N = 4 , viz obr . 4 . 8 . 3�
I I
TU X Tl2 Y Tl3 Z Tl4 W T2l x T22Y T 23
I
Z
T24W
T3lX T32Y T33 Z T34W T41 x T42Y
T43 Z T44 W
-
�
+
+
+
+
+
+
+
T X Tl2 Y Tl3 Z T14 W T21 x T22 y T23 Z T24W
výpočet x'
vý počet y' :::-
+
+
+
+
+
+
T31X T32Y T33 Z T34W T41 x T42 Y
výpočet
-
z'
+
:
T43 Z T4 w
výpočet
-
w'
Obr . 4 . 8 . 3 Použ i t í pra covní
zř e tězení s tani c e
vede v š ak
as i an i
k
75 %
toto
ury chl ení .
zrychlení
není
Pro
výkonné
p o s t a čuj í c í ,
v iz procesory, vektor - vektor tzv . T obr . 4 . 8 . 4 , kdy s e vektory r . , které odpovída j í ř ádkům mat i c e R , 1 pronás obí t r an s formovaným vektorem x t ak , aby byl a vyp o č t ena a proto
p ř í s lušná
j s ou
používány
s lo žka
vektoru
x' .
Pak
- 33 -
i- tou
s lo žku
vektoru
x' ,
-
l
označ enou x � , 1
l z e vyj ádř i t pomo cí skal árního s ouč inu :
x� 1
T r. 1
x
x
y
W
z
\11 -
\
*
rll
'V
rl2 r13
I
\�
*
.-----
rZ I
'V
II
-
*
r 22
-
r3l
'V
r----
r32
I---
r 23
r33
r2 4
re g
l re g 2
+
II
\
x'
'--
. ,
,
re g
\I
\
l
re g2
+
II
\
y'
z
,
r44
I
r-
I
+
r4 3
-
re g l re g 2
\
r42
r3 4
-
II
I
*
r4l
'V
I---
-
rl 4
I
\
re g l re g 2
\�
\
+
\11
II
w'
'
p roc e s or re a l I z u J t c t s k a lá r ll l S O U C l n V ·
tra n s f orm a c e prob ě h n e v S -ti č a s o v ý c h i n t e rv a l e c h
Obr . 4 . 8 . 4 Je
z ř e j mé ,
ce lky
že
c e l ý p r o c e s or
r e a l i zuj í c í
skal ární
obsahuj e vlas tně
s oučin .
Lze
ukázat ,
č ty ř i že
s amos t a tné . při
použ i t í
t ě chto p r o c e s orů j e možné ury chl i t provádění op e r a c í až o 9 5 % . - 34 -
Př íklady Navrhně t e
s t rukturu
akceler átoru
pro
a p l o chami druhého s tupně a j e j i ch čás t í apod . ) .
- 35 -
práci
( např .
s
kř ivkami
kruhový o b l ouk
5.
Proj ekce
5 . 1 Možno s t i zobrazování t ř í rozměrného prostoru
Zobrazování
t ř írozměrného
pros toru
je
než zobrazování pros toru dvouro změrného . obvykl e
definuj eme
na p r in c ip u , nežádané oknu
zbytek
větš ina
se
odř í znou .
kr e s by
je
dos tupných by
Koncepčně
poté
Tento
p r omí t ání ) ,
která
obj ekt
je
z a l o žena
k
vůč i
tomu ,
že
pouze
zobr azovat
mus í s e z avé s t t r an s forma c e ,
může
pros tor
být
t r ans formuj e
dvour ozměrnou p r o j ekční r ovinu .
p ř i č emž
odř í znut
Vzhl edem
umožňuj e
t ř ír ozmě rný
problém
která
je
zobrazen .
zař ízení
t r an s formovala
dvour ozměrného . ( té ž
V dvour ozměrném p ř ípadě
t r ansforma c i okno-pohled ,
v dvouro změrném s ouř adném sys tému , která
s l o ž i těj š í
ž e čás t obj ektu s e zobr azí na danou p l o chu ,
čás t i
a
nepoměrně
ř e šÉm
do
pomo c í
t ř í r ozměrné
p r o s toru p r o j ekce
obj ekty
na
Obe cně je p r o j ekce t r an s forma c í ,
která n - r o změrný p r o s t o r t r ans formuj e do k-rozměrného p r o s toru , p ř i č emž n > k .
Dále s e ome z íme pouze na p r o j ekce p l anárn í ,
na p r omí t án í na r ovinnou p l o chu .
tj .
Z obr . S . l . l vyp l ýv á r ozdě l ení
na j ednot l ivé t r ans formace : r ovinné proj ekce
I
J
p e r s pekt ivní
parale lní
J
p r avoúhlá
j ednobodová ( j ednoúbě žn íková )
kos oúhlá
v í c e pohl edová
kavalier
dvoubodová ( dvouúběžníková )
axonome t r i cká
kabine t
t ř í bodová ( tř íúbě žníková )
i s ome tr i cká dime t r i cká t r ime t r i cká Obr . S . 1 . 1 Par a l e l n í
p r o j ekce
pers pekt ivní ,
je
vlas tně
zv láš tním
j e - l i pozorovatel v nekone čnu . - 36 -
p ř íp adem
p r o j ekce
Per spekt ivní proj ekce V p ř ípadě které
ne j s ou
Úběžník
si
p e r s pekt ivní proj ekce vytvá ř e j í ko lmé
lze
Jedn o t l ivé
Je
perspektivy ,
tj .
Z
která
často
x
=
x
l
x' = x'
l
p ř ed s t avit z ř e j mé ,
úběžníky . obr . 5 . l . 2 ,
r ovině
t r ans formace
úbě žníků .
se
k
pr omí tání ,
j ako j s ou
že
lze
p e r s p ekt ivní
obr . 5 . 1 . 4
je
používá .
zře j mé , V
+ +
( x2
( x'2
-
-
p ř i čemž není pravda ,
x
l
)
x' ) 1
průmětně
zobrazení · bodu kate go r i zovány do c í l i t že
j de
v
o
čáry,
úbě žník .
nekone čnu .
podle
maximálně
t r ans formace
př ípadě
j e nutné s i uvědomi t ,
na
r ovnobě žné
p o č tu
t ř íbodové
vytvář e j í c í
tři
t ř ídu t r an s forma c í ,
perspekt ivní
p r o j ekce ,
viz
že p l at í :
�
� E
< O
1 >
E
< O
1 >
A-
A-
že :
pró.mětna
Obr . 5 . 1 . 2
EG
jednoúběžníková perspektiva
Obr . 5 . 1 : 3 - 37 -
jednoúběžníková perspektiva
J edno bodová
p e r s pektiva
je
ve lmi
čas to
využ ívána
z e j ména
v oblas t i návrhu zař í zení interiérů, viz obr . s . l . 3 . P ř i kons truk c i j ednobodové perspekt ivy s e vy chá z í z toho ,
že
průmě tna j e r ovnoběžná s některou ze základn í ch r o v i n s ouř adného sys tému ,
tj .
p r o t íná pouze j ednu osu s ouř adného sys tému .
y
x z
průmět na p říklad konstrukce jednoúběžníkové prespektiv y
Obr . 5 . 1 . 4 Při
kon s truk c i
průmě tna
je
dvoubodové
r ovnoběžná
s
p e r spekt ivy j ednou
osou ,
se
vy chází tj .
z
p r o t íná
t oho , dvě
že osy
souř adného sys tému . P r o t ř íbodovou p e r s p ekt ivu p l at í , žádnou osu ,
že průmě tna není kolmá na
a j e tedy j imi prot ínána .
Dvoubodová v ar chi t ektuř e ,
per spektiva
se
velmi
čas to
používá
z e j ména
avš ak t ř íbodová p e r spekt iva se použ ívá j en ve lmi
zř ídka .
- 38 -
úběžník
úběžník
Příklad konstrukce
uúběžníkové perspektiv y
Obr . 5 . 1 . 5
úběžník
úběžník
úběžník
příklad tříúběžníkové perspektiv y
Obr . 5 . 1 . 6 -
39 -
'ar a l e l n í p r o j ekce Par a l e ln í p r o j ekce a
to
podle
v z t ahu
lze
me z i
smě r em
proj ekce .
V
v p ř ípadě
kos oúhlé
proj ekce
pravoúhlé
p r o j ekce
je
bokorys ,
pr avoúhlé
rozdě l i t do dvou zákl adn í ch s kupin ,
půdorys atd .
proj ekci
proj ekce j s ou
niko l iv .
proj ekce
a
smě ry
normálou s t e j né ,
r oviny z a t ímco
Ne j j ednoduš š ím
víc epohl edov á ,
tj .
typem nárys ,
Tento typ proj ekce s e ve lmi čas t o použ ívá
v t e chni cké p r axi a j eho kon s trukce j e znázo rněna na o br . 5 . 1 . 7 .
půdorys
bokorys
nárys
ukázka vícepohl edové p r o j ekce Obr . S . 1 . 7 - 40 -
Axonomet r i cké promítání Axonome t r i cká V axonome t r i cké způs obem .
p r o j ekci
pr avoúhl ou .
proj ekcí
je
j s ou rovnobě žné
čáry
zkr áceny
s te j ným
Axonome t r i cké proj ekce j s ou rozděl eny podle o r ientace
proj ekční o s ami .
proj ekce
r oviny ,
tj .
podle
úhlů
me z i
průmě tnou
J e s t l i ž e vš e chny t ř i úhly j s ou s t e j né ,
a s ou ř adnými
j de o i zome t r i ckou
pr o j ekci .
J e s t l i ž e j s ou s t e j né pouze dva úhly ,
pak j e výs l edkem
pro j ekce
dime t r i cká .
j s ou
J e s t l i že
vše chny
úhly
různ é ,
j de
o pro j ek c i t r ime t r i ckou .
kon s t rukce i zome t r i cké proj ekce
výs l edek p r o j ekce
Obr . s . l . 8 Výs l edek
izome t r i cké
obr . s . 1 . 9 . svírá
proj ekce
z
obr . 5 . l . 8
je
uveden
V př ípadě i zome t r i cké proj ekce mus e j í být úhl y ,
průmě tna
( o sy x , y , z osách
Obr . 5 . l . 9
s
j edno t l ivými
souř adnými
o s ami ,
na
které s te j né
j s ou pr omí tnuté
s te j né .
do x , y , z ) . Zkr ácení j e n a v š e ch p p p znamen á , že normál a průmě tna mus í být
To
rovnobě žná s j ednou ze č tyř p ř ímek : x x
=
Y
& x
-y & x
=
=
z
nebo
x
z
nebo
x
= =
y
=
& x
-y & x
=
-z -z
V př ípadě dime t r i cké proj ekce j s ou pouze dvě s ouř adné o s y s hodně zkráceny ,
a
tedy
pouze
dva
úhly
me z i
a s ouř adnými o s ami j s ou shodné . To znamená ,
rovinou
ž e normála p r o j ekční
roviny mus í být r ovnoběžná s j ednou ze š e s t i rovin , - 41 -
p r o j ekce
a to :
x = ± z
nebo
x = ± Y
nebo
y = ± z
Změnou normály p r o j ekční p l o chy v j edné z tě chto r ovin můž e být změněno zvýr aznění j edno t l ivých p l o ch .
dime t r i cká proj ekce kry chle Obr . 5 . 1 . 1 0 Pos l oupnos t
obr . 5 . 1 . l l .
různých
dime t r i ckých
m w
proj ekcí
je
znázorněna
na
ictVadm' ,avQ !e l n ,'
,'some·l,.-,"c kd
p/'"o iQ.k.oe...
pn) je k.ce
Obr . 5 . 1 . 1 1 Tr ime t r i cká p r o j ekce
j e obecněj š í .
na j edno t l ivých o s á c h , rovinou
není
s te j ný .
Výs l edkem j e
různé
zkr á cení
p ř i čemž žádný úhe l me zi o s ami a p r o j ekční Na
obr . 5 . 1 . 1 2
t r ime t r i ckých p r o j ekcí krychl e .
- 42 -
je
uvedeno
někol ik
Obr . 5 . 1 . 1 2 Kosoúh l é p r o j ekce Ko s oúhl é
p r o j ekce ,
viz
v í cepohledové
parale lní
proj ekce
Vícepohl edová
p ar a l e lní
daného
obj ektu ,
obtížné
si
obr . 5 . 1 . 1 3 , s
proj ekce
proj ekcemi zobrazuj e
t ř írozměrný
n i cméně
p ř eds t avi t .
V
kombinuj í
tvar
axonome t r i ckými .
p ř e s ný
můž e
axonome t r i cké
v l a s tno s t i
být
tvar
p lo ch
někdy
ve lmi
p r o j ekci
do s t áváme
)ř eds t avu tvaru t ě l e s a v t ř írozměrném pros toru ,
avš ak j en z ř ídka
'bdr ž íme
v
s p r ávný
tvar
tělesa .
r o j ekci není obe cně možné , � o j ekci
je
ute čný
bě žné .
tvar
\
axonome t r i cké
zatímco ve vícepohl edové
Kos oúhlé
p l o ch
Odmě ř ování proj ekce
tř írozmě rného
obvykle
tě l e s a ,
p a r a l e lní
r e p r e zentuj í
p ř i č emž
dobř e
s t ihuj í i ce lkový vj em v t ř í r o změrném pros toru . Po znamene j me , o žný
se
j ekce
směrem
pat ř í
)ade ch · 45 .
se V
r á ceně ,
že
směr
normály
p r o j ekce .
p r o j ekce třetí
osa
p ř ípadě
typu
zatímco
Mezi
prl
typu
použi t í
p r o j ekce
nemus í
ne j použ ívaně j š í
kaval ier
promítne
proj ekce
r oviny
a
kavalier proj ekce
kos oúhlé
kabine t .
nej čas tě j i
pod
je
typu
V
úhlem
osa
být obou 30
zobr azena
kabine t
se
:uj e v závi s l o s t i na použ itém úhlu . a �
obr . 5 . 1 . 1 4
je
ukázána
kos oúhlá
p r o j ekce
kry chl e ,
kde
zkr ácení s e mění podle úhlu mezi směr em p r o j ekce a t ř e t í Výběr směru p r o j ekce vzhl edem ke s r o zumi te lnos t i kr e s by j e tý
z e j ména
v
p ř ípadě
exi s tence
:- . 5 . 1 . 1 5 .
- 43 -
zakř ivených
hr an
tělesa,
Obr . 5 . 1 . 1 5
Obr . 5 . 1 . 1 3
/ Obr . 5 . 1 . 1 4
- 44 -
5 . 2 Matema t i cký apar á t rovinné proj ekce
Až do sud byly ukázány různé metody proj ekce z t ř ír o změrného pros toru
do
pro j ek c í .
pros toru
•
dvour ozmě rného ,
P r o j ekce na vál covou ,
v t e chni cké
p r axi
čas to
a
to
pomo c í
kulovou č i j inou p l o chu ne j s ou
používány ,
a
proto
apar á t bude uveden pouze pro proj ekce p l anární . se
p ř edpokládá ,
proj ekce
ko lmá
že k
v ose
př ípadě z
ve
p l anárních
p e r s pekt ivní vzdál eno s t i
též
matema t i cký
Pro j ednoducho s t
p r o j ekce
z=d
a
je
že
v
r ovina p ř ípadě
proj ekce paral e lní j e rovina proj ekce kolmá k o s e z v p o č á tku , tj .
z = o.
Dále
uvedená
pravidla
j sou
odvo zena
pro
s ouř adný
sys t ém p o z o r ovat e l e , k t e r ý j e levotočivý a j e p ř ir o zený v zhl edem k p ř edpokl ádané or ientaci os na s t íní tku obrazovky , or ientována dopr ava ,
tj .
osa x j e
o s a y vzhůru a o s a z dovn itř obrazovky . pohled dolů ve směru os y y
Yv
d
\
d
průmět na
Yv
P(x, y ,z)
průmět na
pohled ve směru os y x průmětna yp
d
Obr . 5 . 2 . 1 Každá r ovinná proj ekce může homogenn í ch
s ouř adni c
vzhl edem
s t e j né
>pe race
ke
pomo cí
být
reprezentována p ř i použ i t í
mat i c e
repre zenta c i
4 x 4,
což
trans forma čních
t r ans formac e a proj ekce může
edné mat i c e . - 45 -
je
výhodné
ope r a c í ,
tj .
být r e p r e zentována pomo c í
Pro
z = d
p e r s pekt ivn í
pro j ek c i ,
j e-li
průmě tna
v s ouř adném sys tému pozorovat e l e , x
=
p
d
x
y
z
d
ve
vzdáleno s t i
p l at í :
y
p
z
Jednoduchou úpr avou do s táváme x z
-
x Z[d
d =
Y Z[d
L d z
=
Vzdál enos t d j e v pods tatě vlas tně mě ř í tkovým fakt o r em , apl ikován z způs obí ,
a y . Dě l ení hodnotou s ou ř adn i c e p p ž e obj ekty vzdáleně j š í s e zobr azí menš í n e ž o b j ekty
v pop ř edí .
Poznamen e j me ,
a obe cně
na
s ouř adn i c e
který j e
bod
může
pozorova t e lem
být
x
že hodnoty za,
resp .
z
mus e j � být různé od nuly
před
průmě tnou ,
a
t edy
( body za pozorovate l em j e nutné vhodně
i za
odř í znout
pomo c í pos tupu , který se nazývá oře závání ) . Uvedená p e r s pekt ivní t r an s formace může být vyj ádř ena mat i c í :
M
1
O
O
O
O
1
O
O
O
O
1
O
O
O
l id
O'
d
O
O
O
O
d
O
O
O
O
d
O
O
O
1
O
per
Někdy j e vhodně j š í tvar :
M
per
=
Vynás obíme - l i mat i c i proj ekce M p'
.
per
T P = [x, y, z, l ]
kde
repre zentován
pak
dos taneme p'
Y
Z , W ]
vydě lení
hodnotou
= [X, Y, Z , W ]
P' ,
bod T
který
=
je
homogenn í ch
v
T = [ x , y , W
( což
Z
je
,
z /d ]
T
do s t áváme
z/d )
v t ř í r ozměrném pros toru [ X/w ,
tj .
kde
[ X , po
s ouřadni cemi bodu P ,
p
vektorem
s ouř adn i c í ch ,
a
= M
per
Y /W ,
[ x/ ( z/d)
,
Z /w ,
1 ]
y / ( z /d )
,
T
= [ x
d ,
1 ]
- 46 -
P
T
, y
p
,
Z
p
,
1
]
T
zpět
což
je
výs l edek
V l i t e r atuře
se
pers pekt ivní a s t ř edem
o čekávaný
v č e tně
vyskytuj e
p r o j ekce ,
promítání
a
v
to
bodě
změny
j e š tě s
s ou ř adn i c e
a l t e rnat ivní
rovinou
z = -d
hodnoty proj ekce
( viz
v
z.
d e f in i c e bodě
obr . 5 . 2 . 2 ) .
z = O
P ak
lze
snadno analogi cky odvodi t vztah p r o t r ansforma c i x
=
p
d
x
y
z + d
d
y
p
z + d
j ednoduchou úpr avou pak dos táváme : x
y
x p
p
x
=
=
z + d
{ z /d ) + l
y
=
y =
z + d
( z /d ) + l
Mat i c e t r an s forma ce pak pro tento př ípad má tvar :
M' per
=
1
O
O
O
O
1
O
O
O
O
O
O
O
O
l /d
1
\
T Bod P repre zentovaný vektor em p = [ x , y , z , l ] j e transformován na T bod P ' repre zent ovaný vektorem p ' = [ X , Y , Z , W ] , kde : [ X , =
Y ,
Z , W ]
[ x / { z /d + 1 )
T = [ x ,
y ,
, y/ { z/d + 1 )
O ,
z /d + l ]
,
O ,
Zv
=
1 ]
T
T
což j e výs l edek opě t o čekávaný .
Yv
P(x,y ,Z)
-d
o
p růmětna Yp průmětna
Á
-=----+---� o Zv = -d
alternativní definice perspektivní p rojekce
Obr . 5 . 2 . 2 - 47 -
P(x, y ,Z)
Par a l e lní
p r o j ekce
s ouř adn i c e x,
M
par
Bod P
na
z = O
průmě tnu
1
°
°
°
°
1
°
°
°
°
°
°
°
O
°
1
ur č ený vektorem p =
[x, y, z, l ]
který j e r e p r e zentován vektorem p ' x = x Uvažme p r o j ekci
j ednodu chá ,
y se nemění a s ouřadnice z j e r ovna nul e ,
=
že :
je
mus í
ko s oúhlé být
parame t r e ch a a 1 ,
=
se
promítne
[x, y, O, l ]
,
Matice
promí tání .
zap s ána
T
y = y
a
p
nyní
T
pomo cí
výr azů
do
neboť
tudí ž :
bodu
P' ,
p ř i č emž p l at í ,
p r e p r e zentuj í cí
závis e j í c í ch
j ak j e ukázáno na obr . S . 2 . 3 ,
na
kde j edno tková
krychle j e p r om í tnuta do roviny xy .
z
bod p' j e projekcí bodu P(O,O,l) y
x
Obr . S . 2 . 3 Je z ř e j mé , že bod P = ( 0 , 0, 1 ) P ' = ( l . c os a , l . s ina , O ) v rovině xy .
se Pak
promí tne
do
bodu
zř e j mě
p ř ímka
PP'
pro cháze j í c í body P a P ' definuj e úhe l proj ekce ,
v i z obr . S . 2 . 4 .
Obe cně bod ( x , y , z ) s e p ř i kos oúhlé proj ekci p romí tne do bodu v r ovině xy se s ouř adni cemi ( x , y ) . p p plat í : y = k .
x + q
- 48 -
Pro r ovni c i p ř ímky v r ov ině
y 1 sina
z P( Q,Q , l) 1 cos a x
Obr . 5 . 2 . 4 Z rovn i c e p r o x a y do s taneme ( vi z obr . 5 . 2 . 5 ) : x
p
= x + z . l . cos a
y
p
= y + z . l . s in a
x
=
-
Cl cosa) z +
x
p
x
Obr . 5 . 2 . 5 P ak mat i ce r e p r e zentuj í c í kos oúhlou proj ekci má tvar :
= M ko s
1
O
1 . cos a
O
O
1
1 . s in a
O
O
O
O
O
O
O
O
1
- 49 -
-------
0 Pro p r o j ekci typu kaval ier j e 1 = 1 a úhe l � = 4 5 • typu kabin e t
1
pro
= 1/2
je
úhe l
� = arctg ( 2 ) ,
Pro parale lní p r o j ekci j e 1 = O a a =
na M
90
I
P r o p r o j ekci
tj .
t akže
� = 63 . 4
y D
B
B
D
panel
stěna O,K
A
c+v
c R
2R
E
A
E
u
u+v
= =
=
(u+v,c+v,w-v)
p růmětna
Obr . s . 2 . 7 - 50 -
(u,c+v,w) (u+v,c+v,w-v)
Obr . s . 2 . 6
x
(u , c,v)
=
X
-c
•
s e r e dukuj e
par
H,L
o
Př íklad Vytvo ř t e
p r ogram
s imuluj í c í
j edoucího p o d é l r ovné s i lnice . do
p o č á tku
s ouřadného
p e r s pekt ivní
pohle d
ř id i č e
Pro j ednoducho s t umí s t íme ř id i č e
systému
a
tvar
s ilnice
je
na
obr . 5 . 2 . 6 - 5 . 2 . 7 . Výs l e dný pohle d j e pak n a obr . 5 . 2 . 8 . Ur č e t e
hodnoty
s ouř adnic pro
r�zné hodno ty R , u , v , c , ( z-v ) , d
a výs l e dný obrázek vykr e s l e t e .
D'
L'
K'
E'
A'
Výs l e dný pohled ř idiče Obr . 5 . 2 . 8
- 51 -
5 . 3 Per spekt i vní pohled na scénu
V
mnoha
pohledu
na
ap l ikac í ch s cénu
z
je
žádoucí
ur čitého
nachází pozorova te l ,
mít
možnos t
zadaného
bodu
se
'
'
-..... .. .. ... ... .. --
xq
-- -
.... ...
xq
..... .......
y
x
Budeme - l i
pozorovat
pohledová
osa
z
e Ni cméně
obr . 5 . 3 . 4 . spe c ifika c i
............. .... -
---
....-..
y
x
Obr . 5 . 3 . 1 .
oko l o
kt e rém
z
z
...
ve
Q,
viz obr . 5 . 3 . 1 .
z
x
p e r s pekt ivn ího
Obr . 5 . 3 . 2 tuto
s cénu
smě ř ovat je
do
s tále
t r ans forma c í ,
z
bodu
počátku j eště
neboť
Q ( x , y , z ) , p ak bude q q q s ouř adného sys t ému , v i z
j eden
lze
s tupeň
l ibovolně
volno s t i
ur č i t
osy
z . Pol ožme tedy dodate čný požadavek , e l e ž e l a v r ovině r ovnobě žné s původní rovinou x = y , Pohledová
t r ans formace
může
být
rozlo žena
na
p o o t o čení
aby tj .
při
osa z = O.
z
e
nás l e duj í c í
kr oky takto : - posuv
vš e ch
s p o č átkem ,
bodů viz
ve
s céně
obr . 5 . 3 . 1 .
t ak , Operace
mat i c í T
T
1
O
O
-x
O
1
O
-y
O
O
1
-z
O
O
O
1
q q q
- 52 -
aby
bod
Q
posuvu j e
byl
z t o t o žněn
r e p r e z en t ována
- změna or ientace Obe cně
by
vhodným
by l o
s ouř adného sys tému t ak , možné
změnit
orientaci
viz
obr . 5 . 3 . 2 ,
p ř euspoř ádáním ,
rotace .
aby
by l
j edné
l evotoč i vý . osy ,
uš e tř íme
avš ak ope r a c e
T a t o změna or ientace může pak být definována p omo c í
mat i ce Z
Z
=
-1
O
O
O
O
O
-1
O
O
1
O
O
O
O
O
1
z
z
Zq
Zq
Ye
, ,
Y
x
x
Obr . 5 . 3 . 3
Xq
... ... ........ ... ... ..
\\//1 ... : .
..... ...... .. ....\:. i: ..... ..... ...
Y
Obr . 5 . 3 . 4
osy Y p r o t íná osu z o úhe l 11 t ak , že o s a z e e původního s ouřadného sys tému , viz obr . 5 . 3 . 3 . Tato ope r a c e j e
- rotace
oko l o
definována mat i c í R 11 x z ( ) e e
R 11 x z ( ) e e
cos 11
O
s in 11
O
O
=
O
1 O
- s in 11 O
cos 11 O
- 53 -
O O O 1
kde :
cos
ť}-
=
s in
ť}-
=
Zde j e n e z bytné upozorni t na polohu znaménka minus , zdánl ivě v r o zporu s kap . 4 . 3 . o rotaci
v
Je nutné s i uvě domi t ,
souř adném
l evotoč ivém
která j e
sys tému ,
a
že
t e dy
j de
mat i ce
r o t a c e mus í být t r an s formovány . o úhe l IP tak , aby o s a z smě ř ov a l a do e e po čátku původn ího s ouřadného sys tému , v i z · obr . 5 . 3 . 4 . Ope r a ce
- rotace
oko l o
osy x
r o t a c e j e ur č ena mat i c í R 1 R
O
O
z Y ( IP ) e e
z Y ( IP ) e e
cos IP
s in IP
O
O
O
cos IP
kde :
p e r s pekt ivní použí t
z
t r ans formace
t r an s forma c i
k nežádoucím
e fektům
budou
pozorovate l em .
před
př edpokl adů pros toru, Ozna č íme - l i
je
a
že
nezby tné
1
s cény ,
z
všechny V
že ' body
p ř ípadě
použí t
neboť
per spekt ivní
předpokládat ,
viz kap . 6 . l 2 , d
2 q
r e s pektuj í c í
budeme
O
s in IP
dané
j e dnoducho s t
O
cos IP
- s in IP
O
O
O
je
q
n e z by tné
pohl e d .
ne bude
do chá z e t
zobr azov ané n e s p lnění
oře závání
v
Pro s cény
t ě chto
t ř í r o změ rném
s ur čením " pohl e dové pyramidy " .
vzdáleno s t
průmě tny
od
pozorova t e l e ,
pak
je
proj ekce definována mat i c í M per
M
per
1
O
O
O
O
1
O
O
O
O
1
O
O
O
l id
O
Pak ce lková mat i c e t r ans forma ce W j e ur čena mat i c ovým výrazem - 54 -
w
=
Obr . 5 . 3 . 5 Mat i c e
s ouřadn i c e j e j íž bodů ,
Pro
W
t r an s formace bodů
s l oup ce
v
mus í
uvažované
j s ou
tvoř eny
pak lze p s át
=
X'
demon s t r a c i
W
být
apl i�ována
s céně .
na
všechny X
Označ íme - l i
vektory
s ouřadn i c
mat i c i ,
j e dn o t l ivých
X
uve deného
probl ému
ve změ te
s ouř adn i c e
vr cholů
t ě l e s a z obr . 3 . 1 0 . 1 a zobr azte j e pro různé hodno ty p o l ohy bodu Q
při
různých
volbá ch
vzdáleno s t i
d
p r o j ekční
roviny
od
pozorovat e l e .
Úloha Zobrazte pozorova t e l e
kry chl i tak ,
až
v se
pers pektivní pos tupně
Z í skané výs l e dky di skutuj te .
- 55 -
proj ekci
dos tane t e
a
měňte
dovn i t ř
p o l ohu
krychl e .
6.
Ořezávání Velmi
důl e ž i t ou
p o č í t a čovou grafiku mimo
zobrazov a c í p ř ípad
je
v
progr amového
t ě ch
čás t í
Ne j j ednoduš š ím
pros toru
je
každého
oře závání
p l o chu .
v dvour o změrném Tento
částí
praxi
vůč i
s cény ,
p ř ípadem
obdélníku
nej č a s tě j š í ,
vybavení které
je
při
j s ou
o ř e z ávání
zobr azova c í
z e j ména
pro
p l o chy .
zobrazování
plošných obj ektů . 6 . 1 Dvouro změrné ořezávání
Na nas t a t
obr . 6 . 1 . 1
j s ou
v p ř íp adě ,
obdé lníkem .
uve deny
některé
je
zobrazovací
kdy
s i tuace ,
které
p l o cha
ohr ani č ena
Úko lem o ř e závání j e odř í znout ty čás t i ús e če k ,
j s ou mimo obdé lník ,
tj .
zobr azit j en t y čás t i ,
mohou které
které j s ou uvni t ř
obdélníka < x . , x , y ). ) x < y . mln max max mln
j
k h
Ymax
i g f e
m
e
d
'
ď
1 r
c
Ymin q n
Kmín
Obr . 6 . 1 ,. 1 Vzhle dem k tomu , nutné ,
aby
že ope race oře závání s e používá ve lmi č a s t o ,
p ř í s lušný
algo r i tmus
část ú s e čky uvn i t ř obdé lníka ,
ve lmi
rychle
r o zhodl ,
zda
a ur č i l p ř í s lušné kon cové body . - 56 -
je je
6 . 2 C ohen - Suther landův a lgor i tmus
Algor i tmus t ě ž i -p ř edev š im z j e dnoduchého způs o bu zakódováni j e dno t l ivých snadno
mo žnos t i
r o z l i š eny .
tak,
aby
Algor i tmus
j e dnotl ivé
začiná
vždy
p ř ipady
ur čen im
kódu p r o každý koncový bod zkoumané úse čky ,
mohly
být
č ty ř b i t ového
a to t ak ,
ž e s tavové
s l ovo p ř i s luš e j i c i danému bodu nabývá hodnoty p o d l e
obr . 6 . 2 . 1 ,
kde hodno t a 1 o značuj e hodnotu TRUE .
1 0 0 1
1 O O O
1 O 1 O
O O O 1
O O O O
O O 1 O
O 1 O 1
O 1 O O
O 1 1 O
Obr . 6 . 2 . 1 Podle p o l ohy bodu vůč i obdélniku oře záváni nabýva j i
j e dno t l ivé
b i ty s tavového s l ova nás l e duj i c i ch hodnot ( bity č i s l ovány z p r ava \
doleva ) :
V
bit O
bod j e vlevo od obdé lnika
bit 1
bod j e vpr avo od obdé lnika
bit 2
bod j e pod obdé lnikem
bit 3
bod j e nad obdé lnikem
p ř ipadě ,
i- tého
že
daný lze
bitu,
ope r a c e s č i táni , if x < x
min
programovaci
nas t aveni
j azyk
nemá
j edno t l ivých
možno s t
b i tů
n a s t aveni
p r ové s t
p omo c i
a to :
then S
-
1
e l se i f x > x
max
then S
e l se S
then S S + 4 if y < Y min then S e l se i f y > Y max
-
2
-
O;
-
Pro danou ú s e čku
s
kon c ovými
s l ovo p ř i s luš e j i c i bodu X l a S x . 2
Je z ř e j mé ,
ž e pokud S
l
=
-
S
+
8 ,'
s tavové ozna čme S 2 l s tavové s l ovo p ř i s luš e j i c i bodu
body X l
a x
2 O a zároveň S
- 57 -
2
- O,
j e daná ú s e čka
zcela
uvni t ř
daného
t akovou hodnotu, nuly , bude
obdélníka .
že
některý
Maj í - l i
bit
je
v
s tavová obou
a l různý
s l ova
S
p ř ípade ch
pak daná ús e čka nebude procháze t daným obdélníkem , c e l á n a d obdélníkem
něho ) .
( nebo p o d ním ,
vlevo
n e bo
S
2 od
neboť
vpr avo
od
Uve dený způs ob kódování umožňuj e rychlé ur čení
t akových
p ř ípadů, kdy j e ú s e čka z c e l a vně a bude t e dy vypuš těna ,
anebo j e
z c e l a uvn i t ř a není nutné počítat průse číky s hran i c í okna . V p ř ípadě ,
že nenas t ává ani j e dna z výš e uve dených s i tuac í ,
j e nutné naj í t p růs e č ík s p ř í s lušnou hr anou obdé lníka ,
p ř i č emž
souř adn i c e průs e č íku s e ur č í takto ( x ( x
min max
k
x
k
( x
min l
- x
- x
max
( q
( Y - Y ) max 1
+
x
( q
- Y ( Y min 1
+
x
)
1
)
+
Y1 )
)
+
Y1 )
l
Ymax )
l
, Y ) min
,
j e - l i bod vl evo ,
k
*
(X)
j e - l i bod vpr avo ,
k
*
(X)
j e - l i bod nad ,
q
*
(X)
j e - l i bod pod ,
q
*
(X)
,
kde Y2 - Y 1
k
x
- x
2
l
resp .
Ce lý
x
=
q
2
- x
1
Y2 - Y 1 algori tmus
Cohen- Suthe r l andův
algor i tmem operátory
6. 2. 1.
l and a lor
c e l o č í s e lných výs l e dek
Pro
je
výs l e dku .
V
ukl ádán Tur bo
j e dnoducho s t pracuj í c í
operandů
může
j ako
opě t
do
Pas calu
s
s
být
algor i tmu
logi ckými snadno
b i tů
použ í t
xmax ,
ymin , ymax :
rea l ;
{ globální p r oměnné ur čuj í c í veliko s t vyr e zu } procedure CL I P ( x l , y 1 ,
x2 , y 2 :
labe l 9 9 ; var x , c,
y: cl,
real ; c2 :
integer ;
- 58 -
real ) ;
např .
zave deny
b i ty
pr oměnnym l ,
and a o r . var xmin ,
j s ou
j e dno t l ivými
odpovídaj í c í ch
l ze
r e a l i zován
j e j i ch p ř i č emž
c e l o č í s e lného
p ř ímo
ope r átory
procedure CODE ( x ,
y:
r ea l ; va r c :
integer ) ;
begin c : = 0 ; i f x < xmin then c : = l e l se i f x > xmax then c : = 2 ; i f y < ymin then c : = c+ 4 e l se i f y > ymax then c : = c + 8 end { CODE } ; begin CODE ( x 1 , Y 1 , c l ) ; CODE ( x 2 , y 2 , c 2 ) ; { z j i š tění s tavového s l ova } i f ( c l land c 2 ) = O then begin { ú s e čka může procháze t obdé lníkem } i f ( c l lor c 2 ) < > O then { ú s e čka n e l e ž í c e l á v obdé lníku } repeat if c l = O then c : = c2 e l se c : = c l ; { operátory l and ,
lor provádě j í ope r a c e and , o r }
{ nad vš emi b i ty typu integer ;
výs l e dek j e opě t }
{ typu integer - v T-PASCALU lze použ í t and , i f ( c l and 1 )
or }
< > O then { bod j e vl evo }
begin y : = y l + ( xmin-x l ) * ( y 2 -y l ) / ( x 2 -x l ) ; x : =xmin end e l se if ( c l and 2 ) < > O then { bod j e vpr avo } begin y : =y l + ( xmax-x l ) * ( y 2 -y l ) / ( x 2-x l ) ; x : =xmax end e l se i f ( c land 4 )
< > O then { bod j e p o d }
begin y : =ymin ; .
x : =x l + ( ymin -y l ) * ( x 2 -x l ) / ( y 2 -y l ) end e l se if ( c land 8 )
< > O then { bod j e nad }
begin y : =ymax ; x : =x l + ( ymax-y l ) * ( x 2 -x l ) / ( y 2 -y l ) end ;
- 59 -
i f c = c l then begin x 1 : =X i y 1 : = Y i
CODE ( x 1 , y 1 , c 1 ) end
begin x 2 : =X i y2 : =Y i
CODE ( x 2 , y 2 , c 2 ) end i
e l se i f ( c l land c 2 ) < > O then go to 9 9 unt i l ( c l lor c 2 ) = O i L I NE ( x 1 , y 1 , x 2 , y 2 ) end i 99: end { kone c p r o cedury CL I P } i Algor i tmus 6 . 2 . 1 Nevýhodou Cohen- Suthe r l andova algoritmu j e nutnos t použ ívání r e p r e zentace
čísel
s
pohybl ivou
násobení a dě lení , v i z např . Vzhle dem
k
v pos l oupno s t i daném
čárkou
v č e tně
ope r a c í
oře závání
ve lmi
často
použ ívá
[ 44 ] .
tomu ,
že
se
operací
až
t ě sně
zař í z ení ,
reprezent a c i ,
ř ádovou
lze
kde
j s ou
pro
před
vlas tním
s ouřadnice
tento
př ípad
ur č ené
zobrazením v
s p e c i f ikovat
algo r itmus .
d
c a
a'
b' b
Obr .
6. 3. 1
- 60 -
na
c e l o č í s e ln é s p e c iální
6 . 3 Ořez ávání půlením
Algo r i tmus inte rvalu , rovni c .
o ř e závání půlením j e
zalo žen na p r in c ipu půlení
který se čas to použ ívá např .
při ř e š en í ne l ineárních
P r o zrychlení c e l ého procesu s e mus í opět c o n e j rychle j i
zj istit ,
zda kr e s l ená úse čka j e z c e l a uvnitř č i z c e l a vně daného
obdélníka .
t omu
K
se
j ako
pos tup
analogi cký
využ ij e
u Cohen- Suthe r l andova algor i tmu . Oře z ávání
půlením
je
výhodné
z e j ména
z
toho
důvodu ,
že
nevyžaduj e nás obení a dělen í ,
n e b o ť d ě l e n í dvěma l z e r e a l izovat
pomo c í operace posuvu vpr avo .
P ř i programové r e a l i z a c i j e tento
algor i tmus realizaci
pomal e j š í je
než
nepoměrně
předchozí ,
rychl e j š í .
avš ak
při
har dwar ové
Je nutné p oznamenat ,
že
lze
použít repre zentace s pevnou d e s e t innou t e čkou nebo r e p r e z en t a c e s
pohybl ivou
ř ádovou
te čkou .
Počet
binárních
míst
repre zentuj í c í de s e t innou část mus í být a l e s poň tak ve lký , 2 kde nx ,
resp .
m
m
že :
> max { nx , ny } ,
ny j e r o z l i š ova c í s chopn o s t ve směru osy x ,
resp .
osy y . Z důvodu názorno s t i algor i tmu j e zave d�n fikt ivní d a tový typ f ixed
m,
který
de s e t inný ch
repre zentuj e Při
skute čné
pevné
ř ádové
realizaci
se
čár c e
o
pak
m
použ i j e m repre zentace c e l o č í s e lná s hodnotami vynásobenými kon s t an tou 2 , tj .
mí s t e ch .
hodnoty v
posunut í o m mís t v l evo .
{ xmin ,
xmax ,
ymin ,
ymax - kons tanty ur čuj í c í v e l iko s t výř e zu }
procedure M I DCL I P ( xa , { xa , ya ,
ya ,
xb , yb :
integer ) i
xb , yb - kon cové body ús e čky }
label 9 i const m = 1 0 i var x ,
y,
xl,
yl,
x2 ,
y2,
c,
cl,
c2:
f ixed m i
{ defin i c e pr oměnných s pevnou ř ádovou čárkou } procedure CODE ( x , y : begin
f ixed m i va r c :
integer ) i
c : =Oi
i f x < xmin then c : = l e l se i f x > xmax then c : = 2 i i f y < ymin then c : = c + 4 e l se i f y > ymax then c : = c + 8 end { CODE } i - 61 -
procedure I NTER ( x l , y l , x 2 , var x ,
y:
y2 :
var c :
{ kr a j ní body }
f ixed m { průs e č ík } ) i
{ výpo č e t průs e č íku s obdélníke m , { j e uvn i t ř ,
f i xed m i
bod ( x l , y l )
}
bod ( x 2 , y 2 ) j e vně }
integer i
begin whi l e ( abs ( x 2 -x l )
> 2
-m
) o r ( abs ( y 2 -y l )
> 2
-m
) do
begin x
( x l +x 2 ) / 2 i
{ real izovat pomo c í po suvu vpr avo }
y
( y l +y 2 ) / 2 i
{ nalezení s t ř e dní hodnoty }
cODE ( X , y , C ) i
i f c = O then begin x l
- Xi
yl
e l se begin x 2
- Xi
y2
- Y end - Y end
end i x
xl i
Y
yl
end { I NTER } i begin
x l : = xa i
x2
y l : = ya i
y2 : = yb i
: =
CO DE ( x l , y l , c l ) i
whi l e not «
xb i { de s e t inná část reprezentována m b i ty }
cODE ( x 2 , y 2 , c 2 ) i
c l l and c 2 ) < > O ) do
begin
if ( c l lor c2 ) = 0 then { c e l á ús e čka j e uvn i t ř }
begin
L I NE ( xa , y a , x b , yb ) i
go to 9
end i { nale zení průs e číku s obdé lníkem }
i f c l = O then { bod ( x l , y l ) j e uvnitř } begin INTER ( x l , y l , x 2 , y 2 , x , y ) i go to 9
L I NE ( xa , ya , x , y ) i end i if c2
=
O then { bod ( x 2 , y2 ) j e uvnitř }
begin INTER ( x 2 , y 2 , x l , y l , x , Y ) i L I NE ( x , y , xb , yb ) i
go to 9
end i
- 62 -
x : = ( x 1 +x 2 ) / 2 ; y : = ( y 1 +y2 ) / 2 ; CODE ( x , y , c ) ; i f c = O then { bod ( x , y ) uvnitř } begin INTER ( x , y , x 1 , y 1 , x 1 , y 1 ) ; INTER ( x , y , x 2 , y 2 , x 2 , y 2 ) ; L I NE ( x 1 , y 1 , x 2 , y 2 ) ; go to 9 end ; { bod x není uvnitř } i f ( c l l and c ) < > O then begin x l : = x ;
{
y1 : = y;
e l se { čás t ( x , y )
,
( x1 , y1 )
,
( x , y ) není v i d ě t }
c 1 : = c end
( x 2 , y2 ) není vidě t }
begin x 2 : = x ;
y2 : = y; c2 c end -m ) and ( abs ( y 2 -y 1 ) i f ( abs ( x 2 -x 1 ) < = 2
(= 2
-m
) then
go to 9 { o d s t r anění cyklu pro ús e čku ( 4 , 6 ) , ( 6 , 4 ) ,
j e - l i obdé lník }
{ < 5 , 5 > x < 1 0 , 1 0 > , viz obr . 6 . 3 . 1 - úse čka LN } end { whi l e } ; 9:
end { M I DCL I P } Algori tmus 6 . 3 . 1
6 . 4 Algo r i tmus L iang-Bar ského
Ke [ 85 ] ,
Cohen- Suthe r l andovu [ 86 ]
algor i tmu
a l t e rnat ivní
navrhl i
algor i tmus ,
r
+ (x
s
- x
Algor i tmus p ř e dpokládá , ty
čás t i
ús e čky ,
které
leží
ve
obr . 6 . 4 . 1 . Rovn i c i l ze p ř e p s a t do tvaru x( t) - x
- x
r
p ř i čemž mus í p l at i t ,
vychá z í
l >
že daná ús e čka bude pos tupně
vzhl e dem k j e dno t l ivým polorovinám ,
)
r
.
t
že
:5 x ( t ) :5 x X . mln max
pro hle daný inte rval t E < t
l
,t >. 2 - 63 -
tj .
B a r s ky
a to :
t E < O ,
).t
r
a
který
z parame t r i ckého vyj ádření oře závané ús e čky , x( t) = x
L i ang
o ř e z ávána
uvažuj í se pos tupně j en
vyš r afované
p o l o r ov ině ,
viz
Ymax
p /
v
r
Ymin
Obr . 6 . 4 . 1 Uvedenou vektor ovou rovn i c i lze p ř e p s at do tvaru k = 1, 2, 3, 4 kde : Pl
=
P2 =
-!J. x
q1
!J.x
q2
P 3 = - !J.y
P4
!J.y
= =
x x
r
-
max
x
min
- x
r
q3
Y r - Ymin
q4
Ymax - Y r
že pro svis l é či vodor ovné ú s e čky j e p r o někte r á
Nyní j e z ř e j mé ,
= o. J e - l i navíc i hodnota q k hodnota P < O p r o t o t o k , pak k k úse čku l z e odmítnout , neboť l e ž í vně uvažované p o l o r ov iny . Celý
pos tup j e r e a l i zován algor i tmem 6 . 4 . 1 . Výhodou
L i ang-Bar ského
ope r a c ínásobení ,
d ě l ení
a
algori tmu též
je
ne zane dbate lná
nižší
počet
úspora
vzniklá
e l imina c í kódování pozice koncových bodů ús e čky . Dosud uve dené algor i tmy oře závání j s ou ome z eny na o ř e závání obdé lníke m , systému .
j ehož
hr any
j s ou
r ovnobě žné
s
o s ami
s ou ř adného
V t e chni ckých ap l ika c í ch j e v š ak nutné o ř e závání vůči
konvexnímu n-úhe lníku ,
což dosud uvedené algo r i tmy neumožňovaly .
- 64 -
va r xmin , xmax ,
ymin , ymax :
rea l i
procedure L I ANG-BARSKY ( var xr , yr , var t l ,
dx ,
t2,
dy :
func t ion TEST ( p ,
var r :
XS ,
ys :
real ) i
rea l i q:
r ea l i va r t l ,
t2 :
real ) :
r ea 1 i
begin TEST :
t r ue i
=
i f p < O then
begin r : = q / P i
i f r > t 2 then TE ST : = f a l se e l se i f r > t l then t l
: =
r
end e l se
i f p > O then
begin
r : = q / Pi i f r < t l then TEST
f a l se
: =
r
e l s e i f r < t 2 then t 2 end e l s e { ús� čka j e r ovnobě žná k hraně i f q < O then TE ST : = f a l se
P
�
O }
end { TEST } i begin tl
Oi
t2 :
dx
xs - xr i
=
li
i f TEST ( -dx , xr -xmin ,
if TEST ( dx , �max-xr ,
begin dy : = ys - yr i i f TEST ( - dy ,
if TEST ( dy ,
t 2 ) then
tl, tl,
yr -ymin , ymax-yr ,
t 2 ) then tl,
t 2 ) then
tl,
t 2 ) then
begin if t l > O then begin xr . - xr
+
dx * t l i
yr
+
dy * t l
yr
end i
- 65 -
boolean i
i f t 2 < 1 then begin xs . ys
xr + dx * t 2 i yr + dy * t 2
end i
L I NE ( xr , yr , X S ,
ys )
end end end { L I ANG-BARSKY } i {
( xr , yr ) , ( xs , ys ) j s ou koncové body o ř í znuté u s e čky }
Algori tmus 6 . 4 . 1
P2
Pt
Obr . 6 . S . 1 - 66 -
Pr
P"s
6 . 5 Ořezávání konvexním n-úhe lníkem P ř e dpokláde j me , s orientací a uvažme
ve
směru
různé
Jedno t l ivé
s i tuace ,
průs e č íky
n-úhe lníkem
nebo
z í s káme
proti
které
p ř ímky ř e š ením
w,
n-úhe lník,
konvexní
dán
je
že
směru
hodinových
mohou
nas tat ,
resp .
ús e čky
s ous tavy
viz
a
to
ruči č e k , obr . 6 . s . 1 .
P P s konvexním r s l ineárn í ch r ovn i c , neboť
pro o ř e z ávanou ús e čku p l a t í r ovnice x(q) = x + ( x - x ) r r s
.
q e < O ,
q
l >
a pro hr any n-úhe lníka p l a t í x( p )
p
x. 1
=
i kde operátor
Z
oblas t i
int e rval založen
pro na
O ,
e
< O ,
1
)
n- 1
1 ,
( u indexů ) značí s č í t ání modul o n .
+
důvodů j ednoznačnos t i ,
vr cho lem
p
mě l i
parame t r
tom ,
že
aby chom v př ípadě
pouze p
průs e čík,
polouzavř ený .
konvexní (s
j e den
je
Vlas tní
n-úhe lník
výj imkou
průchodu p ř ímky
může
algor i t mus
mít
t o tožno s t i
definiční
s
je
ne j výš e
dva
hr anou ) ,
viz
průs e č íky
s p ř ímkou
obr . 6 . s . 1 .
Ne j dř íve s e nale znou hodnoty parame tru q odpovídaj í c í
w
průs e č íkům p ř ímky s konvexním n-úhe lníkem se
ur č í
s p o l e čná
čás t
bodů
o ř í znut é Vl as tní
nas t a t ,
na je
obdr ž e l i
ús e čky
s ouřadnice
s
1
a poté
ú s e čkou
x,
y
koncových
ús e čky .
algor i tmus
p ř e dpokl ádá, l e ž e ly
aby chom
zí skané
t. )
P P . r s z ískané algor i tmem j e nutné dosadit do p ř í s lušné
Hodnoty t ' t l 2 rovn i c e p r o x ( q ) ,
t akto
( o zna č ené
byl
čás t e čně
z j e dnoduš e n ,
že neexis tuj í dvě hr any n-úhe lníka t akové ,
spole čné nutné
p ř ímce . podmínku
V př ípadě , označenou
že �
tato
neboť které by
mo žno s t
r e dukovat
může
j enom
na
podmínku i > n a s ekvenci označenou ( j e nutné nahr a d i t s ekve n c í j inou ,
viz algori tmus 6 . 5 . 2 .
- 67 -
var i ,
j,
k:
intege r ;
a r r ay [ 1 . . 2 ] of rea l ;
t: begin j
- O;
- O;
i
- n - 1;
k
repe a t i f exis tuj e průs e č ík hr any x x a př ímky w ( q ) t ak , k i ž e p E < 0 , 1 ) then begin j : = j + l ; t [ j ] : = q { uložení hodnoty q } end else i f hr ana x x l e ž í na w ( q ) then k i begin { s ekvence ( } t [ l ] : =hodno t a q odpovídaj í c í vr cho lu x ; k t [ 2 ] : =hodnota q odpovídaj í c í vr cho lu X . ; 1 j : = 2 { kone c s ekvence ( }
end ; k
i;
i
i + 1
unt i l ( j = 2 ) o r ( i > n ) ; i f j < > O then begi n i f j = 1 then t [ 2 ] : = t [ 1 ] e l se i f t [ l ]
{ podmínka � } { př ímka ' w ( q ) s e dotýká }
> t [ 2 ] then t [ l ] swap t [ 2 ] ;
t[l]
: = max ( 0 . 0 ,
t[l]
);
{ maximální hodnota }
t[2]
: = min (
t[2]
);
{ minimální hodno t a }
1 . 0,
if t [ l ] � t [ 2 ]
then L I NE ( x ( t [ l ] )
,
x( t [ 2 ] )
)
end end ; Algor i tmus . 6 . S . l
i f j = O then begin t [ l ]
: = q[ l ] ;
t[2]
: = q [ 2 ] end
e l se begin if t [ l ] > t [ 2 ] then t [ l ] swap t [ 2 ] ; if q [ l ] t[l] t[2]
> q [ 2 ] then q [ l ] swap q [ 2 ] ;
- min ( q [ l ] , t [ l ] - max ( q [ 2 ] , t [ 2 ]
); )
end ; { ope rátor swap real izuj e vzáj emnou výměnu hodn o t } Algoritmus 6 . S . 2 - 68 -
6 . 6 Cyrus-Beckův a lgor i tmus pro ořezávání konvexním n-úhe l níkem Cyrus -Be ckův a l go r i tmus ' j e založen na znal o s t i normál hran konvexního n -úhe lníka může
p r o t ínat
bode ch .
p
s
že
známo ,
p ř ímka
ve
n e j výš e
n-úhelníka
konvexního
hran i c e
Je
j e j i ch or ientace .
a
dvou
do bodu o s ouřadn i c í ch x r r dos táváme
Vyj ádř íme - l i úse čku z bodu P
o s ouř adni c í ch x =
x(t)
s
parame t r i cky , - x
)
t
)
t
Y r + ( Y s - Yr )
t
x
r
+
( x
s
t
O :5 t :5 1
nebo po r o z e p s ání : x(t)
=
y(t)
=
x
r
+ ( x
s
-
x
r
O :5 t :5 1
/
/
/
/
e·
I
Obr . 6 . 6 . 2
Obr . 6 . 6 . 1 Uvažuj eme - l i vidíme ,
že
obe cný se
celý
konvexní problém
n-úhe lník , r e dukuj e
konvexní oblas t i , které daná ú s e čka ,
např . na
resp .
viz
nale zení p ř ímka ,
obr . 6 . 6 . 1 , dvou
hr an
p r o t ín á ,
a na
ur čení s ouř adni c průs e číků . J e - l i e . or ientovaná hr ana konvexního n-úhe lníka , hr any
J..
a
n.
x( t ) - y . viz obr .
J..
J..
normála
této
hr any ,
pak
směr
y.
J..
výs l e dného
bod t é t o vektoru
l z e ur č i t pomo cí znaménka výs l e dku skal árního s ou č inu , 6. 6. 2,
a to - 69 -
j e-li
n. 1
[ x ( t ) -y . ] < O , 1
j e-li
n. 1
[ x ( t ) -Y
n. 1
[ x ( t ) -y . ] > O , 1
j e-li
[ x
n. 1
pak vektor x ( t ) -Y normálu,
[ x
s
- y. ] 1
r
j e ko lmý na
pak vektor x ( t ) -y . směřuj e 1 dovnitř konvexní oblas t i .
- x
t - y. ] = O 1
)
r
j ako podmínku p r o bod průs e č íku s hr anou , n. 1
i
pak do s táváme výr az ( x
+
r
] = O ,
i
Dos adíme - l i za x ( t ) ,
pak vektor x ( t ) -y . směřuj e ven 1 Z konvexní o b la s t i ,
+
[ x
n. 1
Označ íme - l i
S
- x
tj :
r
]
O
t
w. = x - y. 1 r 1
zatímco vektor w j e úměrný ús e čky x x r s i vzdáleno s t i po čáte čního bodu od hranice obrysu . Lze t e dy p s át pak d ur čuj e t . a t e dy
směr
n. . 1
d
w. 1 n. 1
t V p ř ípadě ,
že d
w. 1
+
n. 1
n. 1 d O
=
,
,
=
O
j e-li d
:#
O
a
i
=
2,
1,
,n
j e ús e čka x x nulové dé lky . r s
Je- l i :
w. 1
Je z ř e j mé , platit ,
že
n. 1
{
< O
= O >
O
, ,
bod j e
vně oblas t i
bod j e
na hran i c i oblas t i
bod j e
uvnitř o bl a s t i
ž e budeme uvažovat j en ty průs e číky , t E <
O
,
1
>.
Celý algori tmus
p r o k t e r é bude
j e pak znázorněn na
obr . 6 . 6 . 3 . Nevýhodou uve deného algori tmu j e nutno s t výp o č t u normálového vektoru pro každou hr anu dané oblas t i v závi s l o s t i na o r i e n t a c i konvexního
n-úhe lníka
viz
Algo r i tmy
např .
[ 1 09 ] .
v [ 80 ] ,
repre zentuj í c ího založené
na
danou
o b la s t ,
j iných p ř í s tup e ch
[ 95 ] .
- 70 -
podr obně
lze
nalézt
začátek
1 1
ini c ializace proměnných t
. = o ,·
1
min ·
t
max
.
- 1
i := 1 �------�
1
1
t
F
d
.
n
i
min { t maX �
I
+
1
n.
w.
t: = -
1
l
d. n . = ° 1
� (
d . > o t
1
n.
max } t
: max min �
)
t
,
1 �
min
i := i
1+t
min
} w.
+
(
t
1
1
i > p o č e t kr e s l ených hran t
max
1+
kre s l i ús e čku z x ( tmin ) do x ( tmax )
1
f------.J
konec
Obr . 6 . 6 . 3
- 71 -
n
+
i
6 . 7 Ořezávání nekonvexním n-úhe lníkem Algor i tmus pro o ř e závání nekonvexním n-úhe lníkem j e z a l o žen na parame t r i ckém vyj ádření ús e ček . uveden v kap . 6 . S ,
Opr o t i algor i tmu ,
k t e r ý byl
v š ak mus í být ř e š eny j i s té s p e c iální p ř ípady .
Uvažme s itua c i na obr . 6 . 7 . l a něko l ik možných p ř ípadů o ř e závání . w "
"
�
Obr . 6 . 7 . I P ř e dpokláde j me , ve
že hrany nekonvexního n-úhe lníka
j s ou o p ě t
směru anebo p r o t i směru hodinových ručiček a
že
dány
s e v z á j emně
nep r o t ína j í . P r o j e dnoducho s t p ř e dpokláde j me : - pouze hr any s ous e dní maj í s p o l e čný bod , s ou s e dní hr any n e l e ž í na s p o l e čné p ř ímce , vr cho ly j s ou navzáj em různé . Dále
uve dený
algor i tmus
lze
modifikovat
i
pro
n -úhe lníky
nesplňuj í c í výše uvedené p ř e dpokl ady . Označme x ( q )
s ouř adni ce bodů př ímky
w
a vyj ádř eme j e
parame t r i cky j ako x( q) = x
r
+
( x
x s - r )
.
q
q E
(
- (X)
(X)
,
)
a s ouřadn i c e bodů x ( p ) každé hr any n-úhe lníka j ako x(p) = x.
1
i = O , - 72 -
I
,
. . .
P. E
<
,
n- I
O
,
I
)
Budeme z a t ím hledat průs e č íky hran n-úhe lníka s n a k t e r é l e ž í o ř e závaná úse čka P P . Je r s ope r a c e + u indexů zna čí ope raci modul o n .
nutné
p ř ímkou w ,
p oznamena t ,
Kr omě průs e č íku př ímky s hr anou mus íme r o z l i š i t p ř ípady ,
že kdy
hrana n -úhe lníka l e ž í na p ř ímce w ( q ) a kdy p ř ímka w ( q ) p r o chází vrcho l em .
Při
průchodu
př ímky
w( q )
vr cho l em
mohou
nas tat
nás l e duj í c í p ř ípady : [ S
l
x s
2
l
z'
[ s
x s
3
l
2
w( q)
>
z
O
S
P + k 1
P
��
x s
l
k- l
l
2
[ s
z'
+
kde
x s
2
P
P a)
3
" průchod "
l
z
<
O
l
w(q)
k
" do tyk "
b)
v indexe ch znač í s ou č e t modulo n v indexe ch znač í rozdíl modulo n S
a
=
2
x
s
- x
r
Obr . 6 . 7 . 2 V
p ř ípadě
ad a )
v p ř ípadě ad b )
se
generuj e
pouze
j e den
průs e č í k ,
s e generuj í dva totožné body .
z a t ím c o
V obou p ř ípade ch
se průs e č íky považuj í z hlediska dalš ího zpr a c ování z a p růs e č íky s hr anou .
Ve skut e čnos t i s e generuj í pouze h o dno ty parame t r u q ,
které odpovídaj í poloze bodu P V
p ř ípadě ,
nas tat
že
s i tuace ,
na
které
p ř ímce j s ou
k
na p ř ímce w ( q ) . w( q )
leží
znázorněny
př ípadech není možné ihned ro zhodnout , maj í
být
spe c iální
gener ovány . a t r i but
Z
toho to
parametru
q,
někt e r á
na
hran a ,
obr . 6 . 7 . 3 .
V
mohou t ě chto
j aké hodnoty p a r ametru q
důvodu
mus í
který
je
být
gene r ován
ur č en
znaménkem
a s ' a s ' resp . s 3 2 l 2 ale t é ž hodno t ou a t r i butu ,
souřadn i c e z vektorového součinu vektorů s Průs e č ík bude ur čen n e j en hodno tou q , který j e dán j ako •
+
( me z e r a ) pro průs e č ík s hr anou nebo
znaménkem
X s 1 ' 2 z l vr cho l em .
[S
resp .
z-ové [s
3
souřadnice
x s 1 2 z - 73 -
pro
vekto r ového
" dotyk "
nebo
s ouč inu " průcho d "
Po nale zení v š e ch průs e č íků , v č e tně ur čení j e j i ch atr i bu t ů , být
z ís kaná mno ž ina hodnot
q s e t ř íděna opě t
s polu
s
mus í
a t r i buty .
V n á s l e duj í cím kr oku j e nutné prové s t r e dukc i z í s kaných hodnot q podle tab . 6 . 7 . 1 . ur čuj í
ús eky
Výs l e dkem j e pak množina dvo j i c hodnot q ,
p ř ímky
a které
w(q)
leží
uvn i t ř
které
n-úhe lníka .
Pro
ur čení ús eků ú s e čky P P , k t e r é l e ž í uvnitř n -úhe lníka , j e nutné r s vyhodno t i t průn ik intervalu < 0 , 1 > s j e dno t l ivými intervaly , které j s ou dány po s obě j doucími dvo j i cemi hodnot q .
C e l ý p o s tup
může být r e a l i zován algor i tmem 6 . 7 . 1 .
�
p\l.
q-
PI(
... -1
ct -
Pk+A
Gy
Cf +
�
�
7'1
w ( q,)
"' PK
w(
Cf
1�'f) ��L PK...
.-
..
.,.
q
Obr . 6 . 7 . 3 k : =n- 1 ; s
l
:= x
i : =O; k
- x
k- 1
;
x
s
X ; r
{ s a x j s ou vektory }
whi l e i < n do begin { operace s vektory } s : = x - xk ; i 3 Vyp o č t i hodnotu ( q ) ; i f vr cho l x
k
l e ž í na p ř ímce w ( q )
then begin = O x s ] 3 2 z then { hrana x x l e ž í na př ímce w ( q ) } k i Generuj ( q s atributem s ign ( [ s x s ] ) l 2 z if
[s
- 74 -
'"
w ( q. )
e l se i f [ s l x s ] = O 2 z then { hr ana x x l e ž í na p ř ímce w ( q ) } k- 1 k Generuj ( q s atr ibutem s ign ( [ s 3 x s ] ) 2 z e l se i f [ s l x s ] . [s x s ] < O 3 2 z 2 z then { typ do tyk } Generuj
)
( q , q s atr ibutem
e l se { typ průchod } Generuj
( q s atr ibutem
)
end e l se i f exis tuj e - l i průs e č ík př ímky w ( q ) s hr anou < X , X ) k i then Generuj ( q s atr ibutem )i s l : =s 3 ; end i
k: =ii
i : =i+ 1
US PORADEJ VZESTUPNE ( z í skané hodnoty q ) i REDUKUJ ( hodnoty q podle tabulky ) i VYBER ( podin te rvaly j ako < q , q > j+1 j
n
<0, 1>
V j
)i
Algo r i tmus 6 . 7 . 1 atr ibuty q 1.
qi + 1
.,
J
*
f.-
,-
\í+ .l]?
+
+
č inno s t
s i tuace
qi+2
� I-
+
+
�
+
/-
+
f- ·u +
\
·v
1
•
1\. Z
]
+\f
•
..
- 75 -
ul ož ( q , q )i i i+ 1
i : =i+2
% ul O ž ( q , q )i i i+ 2
i : =i+2
změň a t r i but q . n a + 1 ul ož ( q , q )i i i+ 2
i : =i+ 3
)i ul O ž ( q , q i+2 i
i : =i+2
změň a t r i bu t q . n a 1 % ul O ž ( q , q )i i+ 2 i
i : =i+2
změň atr i bu t q . n a 1 ul O ž ( q , q )i i+2 i
i : =i+2
změň atr ibut q . n a 1
\. Z v: S z_
ul O ž ( q , q )i i i+ 2
i : =i+ 3
% ul O ž ( q i , q )i i+2
i : =i+2
% ul O ž ( q , q )i i i+ 2
i : = i+ 3
% ulož ( q , q )i i i+ 2
i : =i+2
•
+
l· .J
+
+
Se � -\ +s
+
li
*
změ ň a t r i but q . na 1 ul O ž ( Q , q )i i+ 1 i
,.
l
Z·
*
+
4� :S
-\
+
+
..
+
+
+
změň a t r ibut q . na + 1
změň a t r i but Q . na 1
,.
-\
R· +\ .l -Z -(v I •
l +
+
Z-
*
*
+�
* znamená v š e chny p ř ípady ,
%
p ř ípady ,
kdy
se
tj .
i : =i+2
% ul O ž ( Q , Q )i i i+2
i : =i+2
% ul O ž ( Q , Q )i i i+2
i : =i+2
změň atr ibut Q . na 1 % ulo ž ( Q , Q )i i i+2
i : =i+ 3
Ulo Ž ( Q ' Q )i i i+ 1
i : =i+2
ul O Ž ( Q ' Q )i i i+ 1
i : =i+ 1
..
!\
Z-
ul O ž ( Q , Q )i i i+ 1
změň a·t r i but Q . na 1
L z�
7- /-
i : =i+ 1
..
změň a t r ibut Q . na 1
o
+ -
hrany nebo vr choly
do týkaj í ,
nebo
se
hrany
p r o t ínaj í Tabulka 6 . 7 . 1 Př íkaz
pro
výběr
podintervalů
algor i tmem 6 . 7 . 2 .
- 76 -
může
být
r e a l i zován
např .
i: =l i
whi l e i � p o č e t průs e č íků - 1 do begin i f max ( O ,
q i ) � min (
then ulož ( max ( O ,
1 ,
q i+ 1 )
q i ) , min (
i : =i+2
1 ,
q i+ 1 )
)i
end i Algor i tmus 6 . 7 . 2 Je
z ř e j mé ,
z kap . 6 . S ,
k tornu ,
že
uve dený
p ř i č emž
je
algoritmus
nutné
použi t
je
r o z š í ř ením
redukc i
a
t ř í dění
že n -úhe lník j e nekonvexní ( podr obně v i z [ 6 4 ] ,
O y ie.n+ o.c.e
.. ____........_ -:::::=: _
v \e.v o
\ -�
� (q)
� _---..AI!!!!::....-��----�:--+- -
Obr . 6 . 8 . 1
- 77 -
"
,
\
/
\ \ I ,
/
I
- - - -",� - -
a l gor i tmu v zh l e dem [ 117 ] ) .
6 . 8 Ořezávání nekonvexních obl a s t í Až
do s ud
uváděné
algor i tmy
p ř ímek vzh l e dem k n-úhelníkům , hr an i c e t ř ída
umožňovaly tj .
byly tvoř e ny ús e čkami . úloh ,
kde
je
ús e ček
vzhl e dem k oblas t e m ,
Ni cméně
vhodné
o ř e z ávání
j e j i chž
exis tuj e p omě rně
oře závat
úse čky
či
š iroká
vůč i
oblas t i
s hr ani cemi tvořenými obl ouky . P ř e dpokláde j me , směru
nebo
l ineární ,
proti
vzhledem k
o
oblast
směru
pak kromě
i informace v úvahu .
že
která
po čáte čnímu
dána
hodinových
poloměru
tom ,
je a
pos l oupno s t í ruč i ček .
pozice
čás t
s tř e du
kružnice
bodu kruhového
(
oblouku
vr cho lů
Nen í- l i obl ouku p r avá )
má
hrana
je
nebo být
ve
dána l evá vzata
Pro z j e dnodušení algori tmu uvažme nás l e duj í c í ome zení
- v š e chny vr choly maj í navzáj em různé s ouř adni ce , - žádný vr chol n e l e ž í na hr aně nebo na kruhovém obl ouku , - dvě hr any s e nedo týkaj í ,
pokud nej s ou s ous e dní ,
- dvě s ou s e dní hr anice oblas t i ,
tj .
hr any č i oblouky ,
mohou m í t
pouze vr cho l j ako spole čný bod . Na r o z d í l o d a l go r i tmu z kap . 6 . 7 může mít p ř ímka v ( q ) s kruhovým obloukem dva průs e č íky ,
což poněkud komp l ikuj e ř e š en í p r o b l ému .
Pos tup pro nale zení vš e ch průs e č íků j e obďobný , kruhového
obl ouku
mus íme
řešit
vzhl e dem k proměnné q x(q) = x ( x - x
u
+ ( x
r )
2
s
- x
+ ( y
r
)
Yu )
_
nás l e duj í c í
avš ak v p ř ípadě s ous t avu
q E " ( -00 ,
.
q
2
2 - r = O
r ovni c
+00 )
kde ( x , y ) j e s tř e d kružni ce a r j e j e j í poloměr . u u Ře š en ím obdr ž íme kvadr a t i ckou rovn i c i pro q aq
2
kde
+
bq + c = O a = ( x
b = 2 [ (x c = ( x V
př ípadě ,
do týká ,
že
- x
s
r
r
r
)
2
+ ( y
s
- y
r
)
2
)] ). ( Y - Y - x ) · (x - x ) + ( Y - Y s r u r u s r - x
u
p ř ímka
)
2
+
v(q)
( Y - y ) u r danou
2
- r
kružn i c i
2 p r o t íná
nebo
obdr ž íme ř e š ením rovnice obe cně dva r e álné koř eny ,
- 78 -
se
jí
a to :
- b
vl b 2
±
- 4ac
2 a Nyní j e ne zbytné ur č i t , tvoř í c í hr an i c i
dané
průs e č ík
vpravo
leží
které průs e č íky l e ž í na
oblas t i .
Pomo c í
či
vl evo
a koncového bodu kruhového obl ouku . j e-li
o b l ouk
orientován
tehdy a j en tehdy ,
od
doprav a ,
j e-li
[s
l
bude
př ímka
pro cház í
vr cho lem
S
1
s
s ' 2
3
pro hr anu
s
x . V k takto :
s
= x
l
- pro obl ouk
T
= x(q . ) - x 1
- x
k S
3
k
- x
k- 1
, Y - Yk- l ] k
k- 1
= [ Y - Y , x - x ] k k w w
T
pro hr anu s
s x
3
s
3 k
a s l 3 v bodě x . .
=
x
- x
k
- x
k- 1
,
k
kdy např .
p ř ípade ch
budou
, kde ( x ' Y ) j e u u T
, kde ( x ' Y ) j e w w
s tř e d kružnice
kde
2
t ě chto
= [ Y - Y , x - x ] k u u k = [ x
l
uvažován
1
i= 1 , 2
s tř e d kružnice
tj .
x(q. )
že opě t mus í být ř e š eny spe ciální p ř ípady ,
pro obl ouk
tj .
p o č á t e čního
bude bod x ( q ) uvažován t ehdy i i= l , 2
j e-li
vyhodno ceny vektory s ' l -
bod
s
w( q )
zdali
že
x s ] < O 2 z
p ř i čemž Je z ř e j mé ,
zj isti t,
spojnice
To znamená ,
j e - l i obl ouk orientován dol eva , a j en t ehdy ,
t e s tu l z e
čás t i kružni c e
Yk - Yk- 1 ]
T
,
k- 1
j s ou v
p ř ípadě
kruhových
obl ouků
t e čnými
vektory
1
Některé možné s i tuace j s ou uve deny na obr . 6 . 8 . 2 a v t a bul ce 6. 8. 1 .
pak
p r avidla
orientován doprava ,
j e j i ch
vyhodno cení .
pak mus í být změněno znaménko
přís lušného
vektor ového
proměnných
a ,
b
pro
s ouč inu .
Pak
pomo c í s ekvencí :
- 79 -
můžeme
Je - l i
obl ouk
s ouř adn i c e
definovat
z
hodnoty
,
x,,_-\
X
)(_ "
- 80 -
Obr . 6 . 8 . 2 a: =[ s if x
l
x s2 ] zi
x j e obl ouk k- 1 k
then i f a = O then a : = - s · s l 2 e l se i f orientace oblouku j e doprava then a : = - a i b: =[s if x
3
x s ] i 2 z
x j e obl ouk k- 1 k
then i f b = O then b : = - s · s 3 2 e l se i f orientace obl ouku j e doprava then b : = - b i
Celý
pos tup
o ř e závání
r e a l i zovat nap ř .
ús e čky
nekonvexní
a l gor i tmem 6 . 8 . 1 .
- 81 -
oblas t í
je
možné
typ
s i tuace na [s
l
[ s3 x s2 ] x s2 ] z z
<
O
<
O
a
průchod
O
> O
b
do tyk
> O
> O
+
a
průchod
> O
O
+
b
dotyk
<
<
<
O
= O
c
i f - s 3 · s 2 > 0 then průchod e l se do tyk
> O
=
O
d
= O
<
i f - s 3 · s 2 > 0 then dotyk e l se průchod
O
e
i f - s · s 2 > 0 then do tyk l e 1 se průchod
> O
f
i f - s · s 2 > 0 then p r ů chod l e l s e do tyk
O
g
i f - s . s 2 > 0 xor - s 3 · s 2 > 0 l then průchod e l se d o tyk
=
O
= O
+
dotyk /průchod
obr . 6 . 8 . 2
=
pro opačnou o r i en t a c i př ímky w ( q ) Tabulka 6 . 8 . 1
procedure Comp ( xA ' xB : begin
vector i var r :
if xAXB j e l ineární then begin s : = xB - xA i e l se
begi n s : = [ Y Yw I Xw k r : = [ s x s2 ] i z if r = O -
rea 1 i
r : = [ s x s2 ] end z -
T x ] i k
then i f t then r
: =
s .
e l se r
: =
- s .
s
2
s
2 e 1 se i f obl ouk orientován dopr ava then r
: =
-r
end end { Comp } i { t ě l o v l as tního algor i tmu } k := n
s2 : = x
li
i
- x ' r whi l e i < n do -
s
t:
O I·
.
- 82 -
boolean ) i
begin if x
l e ž í na p ř ímce w ( q ) then k begin Comp ( x X a , t rue ) ; k ' i ' b , f a l se ) ; Comp ( X X k ' k- 1 ' i f x x j e l ine ární then k i begin { p ř e dpokládá s e , že x k Výp o č e t hodnoty ( q ) ;
}
X(q)
=
if a*b > O
then Generuj ( q s atr ibutem
)
o
e l se i f a * b < O then Generuj ( q , e l se i f a
=
q s atr ibutem
o
)
O
then Generuj ( q s atr ibutem s i gn b ) e l se Generuj ( q s atr ibutem s ign a ) end e l se { p ř e dpokládá s e ,
x k
že
begin Výp o č e t hodno t ( q l ' if a*b > O
=
}
x(q ) l
q2 ) ;
then Generuj ( q s atr ibutem l e l se i f a * b < O then Generuj ( q ' l e l se i f a = O
o
)
q l s atr ibutem
o
)
then Generuj ( q s atr ibutem s ign b ) l e l se Generuj ( q s atr ibutem s i gn a ) ; l * Generuj ( q s atrl' butem ); 2 o
end end
e l se if x x j e l ineární then k i begin Výp o č e t hodno ty ( q ) ; i f průs e č ík j e uvnitř < X ' X ) k i then Generuj ( q s atributem
o
)
end ); e l se begin Výp o č e t hodnot ( q l ' q2 i f průs e č ík exis tuj e * * t h en Generuj' ( q ' q s a t r l' butem ) 2 l * { značí , že průs e č ík l e ž í · na p ožadované } o
I
end ;
{ s t raně obl ouku x x k i } - 83 -
k : = i;
i
i + 1;
end { whi l e } ; US PORADEJ VZESTU PNE ( z í skané hodnoty q ) ; REDUKUJ ( hodnoty q podle tabulky ) ; VYBER ( p o dintervaly j ako < q , q > j+1 j
n
Y
<0, 1>
j
);
Algori tmus 6 . 8 . 1 Uve dený
a l gor i tmus
je
možné
modifikovat
i
pro
oblouky a i pro obe cný p ř ípad kuž e l o s e čky f ( x., y ) = O , f ( x , y ) = ax
2
+ by
2
e l ip t i cké
kde :
+ 2 cxy + 2dx + 2ey + g
p ř i č emž směrový vektor s j e dán : s = [ f
y
,
-f
x
]
T
Uve dený a l go r i tmus
j e možné
maj í
" díry "
že algor i tmus s e apl ikuj e na vně j š í hran i c i
a od
z ískaných
s t ím ,
dvoj i c
použí t
hodnot
q
i v p ř ípadě
se
ode č tou
oblas tí ,
intervaly
které dvo j i c
hodnot q získaných ap l ikací al gor i tmu n a hran i c e děr . V
p ř ípadě
modifikace
algor i tmu
ne j dř íve p o o t o č i t oblas t tak , x,
resp .
a pak
o s ou
p r ové s t
y,
s p o č ítat
zpě tné
pro
š rafování
je
aby šr afy byly r ovno b ě žn é
průs e č íky
pooto čení .
Tím
š rafy se
s
hran i c í
pods tatně
s
o s ou
oblas t i
z j e dnoduš í
výp o č ty j edno t l ivých průs e č íků ús e čky s hran i c í oblas t i .
- 84 -
vhodné
6 . 9 Ořezávání úseček s loženými obla s tmi
Dosud uve dené a l gor itmy ř e š ily problemat iku o ř e závání ús e čky obe cně nekonvexní oblas t í , a kruhovými útvary ,
oblouky .
které
V
j e j í ž hranice
t e chni cké
obs ahuj í např .
praxi
díry .
Je
byl a tvořena ús e čkami se
v š ak
z ř e j mé ,
že
l ze j e dnoduš e vyř e š i t pomo cí množinové ope r a c e oblas t i
T
r e p r e zentuj í c í
oblas t
obl a s t r e p r e z entuj í c í díru P ,
bez
díry
vysky tuj í tento
rozdílu,
ode č t eme
i
p ř ípad kdy o d
mno ž inově
viz obr . 6 . 9 . 1 Výs l e dnou o b l a s t C
budeme nazývat s l oženou oblas t í .
p C
=
,
T - P
C
a
T 11 P b
Obr . 6 . 9 . 1 S te j ně j ako ope r a c e rozdílu lze použí t
i os tatn í ch mno ž inových
ope r a c í - s j e dno cení ,
o zn .
- průniku ,
o zn .
n
- rozdílu,
ozn .
-
Je zře j mé ,
u
,
resp .
syme t r i ckého rozdílu,
ozn .
11
že v kr aj ním p ř ípadě j e možné nahl í ž e t na
- konvexní n -úhe lník j ako na s j ednocení t r o j úhe lníků , - nekonvexní
n-úhe lník
a vhodných
konvexn í ch
j ako
na
n-úhelníků ,
rozdíl resp .
konvexní j ako
na
obálky
s j e dno cení
konvexn í ch n -úhe lníků . Vzhledem k ř e š ené o t á z c e oře závání vzniká o tá zka , j e nutné modifikovat dosud uve dené algor itmy ,
aby j e byl o možné
použ í t i v p ř ípadě množinových operací s oblas tmi . - 85 -
j akým z pů s o bem
P ř e dpokláde j me ,
že P ,
T j s ou oblas t i a ž e s l o žená o b l a s t C
j e dána j ako C = T op P
op E {
kde : J s ou - l i
,
U
čás t i
- ,
,
n
př ímky
� }
w(q)
o ř í znuté
oblas t í
C
dány
mno ž inou
c
hodnot dvo j i c parametrů q :
{
c = čás t i
< c
p ř ímky
c
k '
w(q)
k+ 1
L
}k= 1
>
o ř í znuté
oblas t í
dvo j i c p ar ametrů q :
{
t = čás t i
< t
p ř ímky
t
i '
w(q)
i+ 1
{
Pak p l at í ,
Lze
že :
zj is t i t ,
definovat
a
t
hodnot
obl as t í
P
dány
množ inou
p
hodnot
M
} J. = 1
P '+1 > J
c = t op P že
j ako
n-úhe lníky
mno ž inou
}i=1
o ř í znuté
< p. , J
dány
N
>
dvo j i c parametrů q :
P =
T
v
př ípadě
výs l e dek kruhy ,
nutnos t i
lz�
množ inových
což
však
i
s ložité
ope r a c í
povede
k
nad
oblasti
konvexními
čás t e čnému
nárůs tu
požadavků na výp o č e tní sys tém v důs ledku provádění ope r a c í nad množ inami
dvo j i c
Re a l i z a c e
hodno t
ope r a ce
q.
parametrů
s j ednocení
nad
množinami
dvo j i c
hodn o t
parame trů q j e naznačena algoritmem 6 . 9 . 1 . i: =1i
j : =1 i
C : =+ OO i k
c
k: =1i
k+ 1
: =- OO i
whi le ( i � N ) and ( j � M ) do begin if p . < t . J
1
th en i f < t , t > i+ 1 i
•
> < c 'C k k+ 1
*
then begin c : = min ( ck , t i ) i k
�
c
k+ 1
: = max ( c k+ 1 , t i+ 1 ) i
i : =i+2 end e l se begin k : =k+ 2 i
c : �+ OO i k
c
k+ 1
: =- OO i end
- 86 -
------ -----
e l se i f < P , P + > j j 1
< c ,c + > k k 1
•
*
then begin c : = min ( C , P ) i k k j j : =j +2 end
e l se begin k : =k+ 2 i
C : = + oo i k
�
c + : = max ( c + , P + ) i k 1 k 1 j 1
c + : =-ooi k 1
end
end { whi l e } i
whi l e i ::s N do
if < t , t + > i i 1
•
< c ,c + > k k 1
�
*
then begin c : = min ( c k , t i ) ; k i : = i+ 2
c + : = max ( c k + 1 , t i + 1 ) i k 1
end e l se begin k : =k + 2 ;
c : = + oo ; k
c + : =-ooi k 1
whi l e j ::s M do if < P , P + ) j 1 j
•
< c , c +1> k k
*
then begin c : = min ( C , P ) i k k j j : =j +2
�
end ;
c + : = max ( c + , P + ) i j 1 k 1 k 1
end e l se begin k : =k + 2 ; -
end i Algor i tmus 6 . 9 . 1 Operátor • j e definován j ako u ( s j ednocení ) s t ím , ( + 00 , -00 ) se p ovažuj e za prázdný interval ozna čený � .
ž e interval Jde v l a s tně
o s j e dnocení intervalů hodnot q zí skaných o ř í znut ím p ř ímky w ( q ) oblas t í T a P . Je-li ur čení
oblas t
hr an i c e
t r iviální . výs l e dnou ,
oblas t i .
Pokud
neefekt ivn í ,
s l ožená , budeme
do s taneme které
v š ak
pak
je
Tato
nezbytné
úloha
používat pouze
n e j s ou
řešit
není
j iž
nás leduj í c í hr any
ř e š en í ,
ohr ani čuj í c í
uspoř ádány
ve
s mě ru
Pak v p ř ípadě operace ,
kde
op E { - 87 -
--- -- --
---
U
,
n
,
�
,
o t á zku
úl ohou
směru pohybu hodinových ruči ček .
A op B
též
� }
n e bo
zcela i
když
o b la s t proti
j e pos tup pro : - s j e dn o c ení :
ve zmi v š e chny hr any oblas t i B a p r ov e ď " vně j š í "
o ř e závání oblas t í A ;
ve zmi vše chny hr any oblas t i A a p r oveď
" vně j š í " o ř e závání oblas t í B -
průnik :
v e zmi
v š e chny
o ř e záván í oblas t í A ;
hr any
oblas t i
B
a
proveď
" vni třní "
ve zmi vše chny hr any oblas t i A a p r oveď
" vn i t ř n í " o ř e z ávání oblas t í B rozdí l :
ve zmi
v š e chny
oře závání obl a s t í A ;
hr any
oblas t i
B
a
p r oveď
" vn i t ř n í "
ve zmi vše chny hr any oblas t i A a proveď
" vně j š í " o ř e z ávání obla s t í B syme t r i cký
r o zd í l :
l ze
realizova t
pomo c í
výš e
uve dených
oper a c í Je
z ř e j mé ,
vzniknou
že
t akto
j e dnou
p ř i č emž
nav í c
o o ř e z ávání
lze
de finovat
množ inovou je
nutné
kruhového
j en
operací
dosud
oblouku
obrys
z
oblas t í ,
které
n e s l o žených
oblas t í ,
algor i tmy
rozš ířit
uve dené
nekonvexních
oblas t í ,
což
vede
k pods t atnému zvýšení s l ožitos t i dosud uve dených algor i tmů . Vzhledem
k
tomu ,
mno ž inové
ope r a c i
n-úhe lník,
resp .
s
resp .
je
požadováno ,
n-úhe lníky ,
oblas t ,
oře závání n-úhe lníků , n-úhe lník ,
že
aby
po
byl opě t , oblas tmi , j e nutné zabývat s e t akovými a l g o r i tmy
resp .
resp .
oblas t í ,
j e j i chž výs l e dkem j e
oblas t .
'
v
,
O r e � o. " o c. 1
r - - -- -
výs l e dkem
obd � \ h \\c.
\--�
>- - - - -
I
I I I
\
"
""
1
---t- 7
I
I I
(
"
I L
Obr . 6 . 1 0 . 1 - 88 -
I I
I I I
I
I
'-/ _
_
_
_
_
_
_
_
_
_ _
I I
..J
opět
6 . 1 0 Suthe r l and-Hodgmanův algo r i tmus pro ořezávání
Na r o z d í l od dř íve uve dených algori tmů pro o ř e z ávání p ř ímek či ú s e ček obdé lníke m , oblas t í
a l go r i tmy
vytvář e j í
j ako
konvexním či nekonvexním n-úhe lníkem nebo
ur čené
výs tup
pro
opě t
oře závání
n-úhelníka
n-úhe lník ,
resp .
n-úhe lníkem
n -úhe lníky .
Na
obr . 6 . 1 0 . 1 j e uveden výs l e dek oře závání nekonvexn ího n-úhe lníka obdé lníkem ,
kdy
se
původní
n-úhelník
rozpadl
na
tři
nové
n-úhe lníky . Z ákl adní myš lenkou Suthe r l and-Hodgmanova a l go r i tmu ( dá l e j en S-H
algori tmus )
oře záva c í
je
rovině ,
oře závání p ř i čemž
se
n-úhe lníka pos tupně
vů či
provádí
n-úhelníka vůči j e dno t l ivým hr anám obdélníka ,
- -
-
-
-
..,
I I I
-
-
-
-
-
I
_
_
_
_
-
.-1
- -
o ř e z áv án í
_
_
_
_
-
-, I I
í
v i z obr . 6 . 1 0 . 2 .
r
I
I
I I J
_
vy s. l e.. d ...... y
I
Obr . 6 . 1 0 . 2 - 89 -
_
či
hr an
I
I
-
hr aně
I
I I I
_
I I I
-,
j e dné
-
h - t... h el h ; k I
\
-
-
-
I
I I I
_ _
_ _
I I
J
const max = 1 0 0 ;
{ maximální počet vr cholů n-úhe ln íka }
type ver tex = a r r ay [ 1 . . 2 ] o f rea l ;
{ typ p r o vr cho l }
boundary = a r r ay [ 1 . . 2 ] o f ver tex ;
{ typ p r o hr any }
po l ygon = a r ray [ 1 . . max ] of vertex; procedure CL I P ( in :
intege r ;
in_v :
{ p o č e t vr cho lů daného n-úhe lníka }
pol ygon ;
var out :
{ typ p r o n-úhelník }
{ vr cho ly v s tupního n-úhe lníka }
integer ;
{ p o č e t vr cholů výs l e dného n-úhelníka } var out_v : polygon ; { vr choly výs l e dného n-úhe lníka } c l ip_boundary : bounda ry { hrana , vůč i které se oře z ává } ) ; var i , j:
p,
s:
ver tex ;
intege r ;
begin out : = O ;
{ nas t avení p o č tu vr cholů výs l e dného n-úhe ln íka }
s : = in_v [ in ] ;
{ s a p repre zentuj í vrcholy n-úhe lníka }
for j : = l to in do begin p : = in_v [ j ] ; i f INS I DE ( p , c l ip_boundary ) { s a p odpovídaj í vr cholům na obr . 6 . 1 0 . 3 } then { p ř ípad 1 a 4 } i f INS I DE ( s , c l ip_boundary ) then OUTPUT ( p )
{ př ípad 1 }
e l se begin { př ípad 4 } i : = INTERSECT ( s , p , c l ip_boundary ) ; OUTPUT ( i ) ; OUTPUT ( p ) end e l se { p ř ípad 2 a 3 } i f INS I DE ( s , c l ip_boudary ) { p ř ípad 2 . } then begin i : = INTERSECT ( s , p , c l ip_boundary ) ; output ( i ) end ; s : =p ;
{ ž ádná akce pro p ř ípad 3 }
{ v e zmi dal š í dvo j i c i vr cho lů }
end { o d j
}
end { CL I P } ; Algori tmus 6 . 1 0 . 1 - 90 -
Algor i tmus
6. 10. 1
je
založený na s trategii p o s tupného
zkoumání
j ednot l ivých hr an n-úhe lníka vzhledem k hr an i c i o b l as t i ,
která
mus í b ý t konvexní . Pro
s nadno s t
po chopení
algor i tmu
byly
vyne chány
s ekvence
př íkazů zaj i š ťuj í c í o š e t ř ení chy b , vyj íme čných s tavů a též zápis p r o c e dur INS IDE ,
I NTERSECT a OUTPUT . q:
P r o c e dura OUTPUT ( výs tupního
pole
out v
)
ver tex
zaj i s t í uložení vr cho lu q do
repre zentuj í c ího
vr cho ly
vytvá ř eného
n-úhe lníka . Funkce průs e č ík oblas t i ,
I NTERSECT ( s ,
hr any
p:
s p o j uj í c í
q:
ve r tex i
vr choly
boundary ) :
s a p
s
ver tex ur č í
hran i c í
dané
q
v i z obr . 6 . 1 0 . 3 .
P r o c e dura hodnoty t rue ,
INS I DE ( s :
ver tex i
q:
boundar y ) :
j e - l i bod s uvnitř oře závané oblas t i .
že hran i c e oblas t i j e zadána orientovaně ,
,
v
=
nabývá
V p ř ípadě ,
l z e využít vekto r ového
s ouč inu k ur čení pol ohy bodu s vůči hr aně q . obr . 6 . 1 0 . 4 ,
boolean
Obe cně p l at í ,
viz
že o značíme - l i a x c
w
a x b
pak - j e-li V
> O , t j . z-ová s l ožka vektoru v , z oře záva c ího n -úhe lníka
pak bod P
j e-li W
< O , t j . z-ová s l ožka vektoru z uvn i t ř o ř e z ávacího n-úhe lníka
1- - - -
.
I
ulož P
L
ulož i
-, I I
1 - - -
-
I I
_
_
I
�J
L
_ _
neukl áde j nic Obr . 6 . 1 0 . 3 - 91 -
_ _
w,
pak
4
bod
,
I
I I I I I
J
ulož i , p
j e vně P
3
je
Výš e
uve dený
volán ,
a
t ím
Algor i tmus Nevýhodou správně
lze
l ze uš e t ř it
může
využívaj í c í o ř í znut í
algor i tmus být
též
" p ip e - l ine "
modifikovat
do časně
neměly
být
skut e čno s t
je
neposkytuj e
mo žno s t
n-úhe lníků ,
dána
je
r ekur z ivně
vně j š í
na
je,
že
" r oztr žení "
n-úhe lníka
p r o c e s or v p ř ípadě které
n-úhe lníka .
by Tato
a l go r i tmus
Suthe r l and-Hodgmanův
t ím ,
[ 125 ] .
p r o s tor .
hr any ,
vznikaj í výs ledného
do
viz
har dwar ový
algor i tmu
n-úhe lníka
z ahrnuty
j ako
požadavků
Suthe r l and-Hodgmanova nekonvexního
že
př idě l enou pamě ť ,
r e al izován bez
t ak ,
o ř í znutím
na
více
v i z obr . 6 . 1 0 . 1 .
P
'!> v \l
=
a
x c
> O
bod P
a
x b
< O
bod P
Obr . 6 . 1 0 . 4
- 92 -
4 3
j e vně j e uvni t ř
6 . 1 1 We i le r - Ather tonův a l go r i tmus
Výš e uvedený S -H algor i tmus vyžaduj e , tvo ř í oblas t o ř í znut í , rozdě l i t
na
Je pochopite lně možné nekonvexní
něko l ik
konvexní ch
n-úhe lníků ,
prové s t
o ř í znut í S -H algor i tmem a pak j e opět s l o ž i t dohr omady . j e dnodu chý p ř ípad ,
který
byl konvexní . V mnoha př ípade ch j e t akový
p ř e dpoklad t éměř nes plnite lný . n-úhe lník
aby n-úhe lník,
Uvažme
viz obr . 6 . 1 1 . 1 . a .
�
A�
\
\
t
tAO
..Jl
oblas t
n-úhe lník
o ř í znut í
!.tcwt
�
�{1
p o s tup a výs l e dek
výs le dek o ř í znut í
o ř í znut í
S-H algor i tmem
a)
�� � !s
-l:::-:?-.
�'J
oře závaný
5to�
� 4\\ 6) ,
\
\
t�S
c)
b) Obr . 6 . 1 1 . 1
Výs l e dek Z o br á zku n-úhe lníka
po
o ř í znut í
je
z ř e j mé ,
j s ou
ve
S-H že
algor i tmem
kr omě
je
na
o čekávaných
výs ledném
tvaru
o br . 6 . 1 1 . 1 . b .
čás t í
j e š tě
o ř e z ávaného
o b s aženy
čás ti
některých hran n-úhe lníka oře závac ího . We i l e r -Ather tonův
algor i tmus
( dále
j en
W-A
al gor i tmus )
umožňuj e o ř í znut í obe cně nekonvexního n-úhe lníka o b la s t í , j e opě t nekonvexním n-úhe lníkem . i
vni třní
díry .
obr . 6 . 1 1 . 1 . c .
Z
Výs le dek obrázku
která
Oba n-úhe lníky mohou o b s ahova t
oříznut í
vyp lýv á ,
něko l ik s amo s ta tných n-úhe lníků . - 93 -
že
W-A
algor i tmem
výs l e dek
může
je
na
obs ahovat
W-A a l g o r i tmus vyžaduj e ,
aby n-úhe lníky byly
s e znamu vr cho lů v e směru hodinových ruč i ček , je nutné zadat ve směru opačném,
tj .
p ř i čemž vr cho ly děr
př edpokládá s e ,
n-úhe lníka j e vždy vpravo od orientované hr any , názornos t
uvažme
tři
j e dnoduché
zadány p omo c í ž e vni t ř ek
nebo naopak .
charakte r i s t i cké
Pro
možnos t i ,
viz
obr . 6 . 1 1 . 2 .
S3
I
r -
-
-
I S I 8
I
_
-
_
�
_
_
_
_
r: - - - -- - - - - ,
I
�
: I
I,,I SO'
I I
c
S
I
�
_
es c�
S� II
1,j
Cl c, I,
I�
Se Ss
1"
Is
I.I �
Sl SG
n-úhe lník s dírou Obr . 6 . 1 1 . 2 - 94 -
I I I
I I � _ ..J
I.c
n-úhe ln�k obklopuj í c í oře závací n-úhe lník
Cs
..., I
I
Sof
c�
_
�'I- - +_ :;-/� I I
, I
n-úhe lník
_
s�ar +
t
J e dnoduchý nekonvexní
_
Slt
hran n-úhe lníků
Průs e č íky
obr . 6 . l 1 . 2 . a .
z
př ípad
n e j dř íve
Uvažme
j e dno t l ivých
j s ou zař azeny d o s e znamu k vr cho lů j e dno t l ivých n-úhelníků tak , abychom neporuš i l i j e j i ch I
průs e č íků
j ednot l ivých
v
k
Ozn a č íme - l i
vrcholů .
s e znamu
odkazy
vzáj emné
vytvo ř i t
nutné
je
p ř i čemž
orienta c i ,
I
symbo lem
označené
R
oře závaného n-úhelníka a průs e číků
uspořádaný s e znam �r cho lů S
I ' Q uspoř ádaný s e znam vr cho lů C n-úhe lníka tvoř í c ího o bl a s t k s e znamy dva dos t áváme pak ořezávání I ' průs e č íků a k s p ř í s lušnými odkazy , viz obr . 6 . l l . 3 . a . Start
R
S
/
S
1 -- 1 3 2
l
2
1 --- S �I s 3 4
2
1 -1 3 4
Q
C
l
1 --+-1 1 2
C
4
C
3
S
1 �I 7 6
\ \ t
Kone c
�
S
I �I s 6
C
s
1 """ S 6� I l 8
\ 1 I i:........ I
4
8
C
S
7
S
l
l
a ) Výs l e dný n-úhe lník
R
t
S -- 1 2 1 KO
Q
\
�
C
1
111
l
S
3
2
1
4
S
3
1
5
S
4
1
6
1
7
S ,
s
1
8
S
6
I I - S -S l 7 l S ta r t
C
2
2
1
3
1
4
C
3
1
5
1
6
C
4
1
7
1
8
C
l
b ) J e dna z odříznutých č á s t í původního n-úhelníka Obr . 6 . 1 1 . 3 Z ároveň j e nutné vytvo ř i t s e znam vs tupní ch průs e č íků 1 , 1 , 1 6 2 4 a 1 , t j . bodů , kde hr ana oře závaného n-úhe lníka v s tupuj e do 8 n-úhelníka definuj í c ího obl a s t oře závání , a s e znam výs tupních l ' 1 , a 1 , t j . bodů , kde hrana o ř e z ávaného 1 l 3 5 7 n-úhe lníka vys tupuj e z n-úhe lníka de finuj í c ího o bl a s t o ř e záván í . průs e č íků
K vytvo ř en í n -úhe lníka , o d průs e č íku , R
a
Q,
j ak
který vzn ikne oř í znut ím ,
který j e v e vs tupním s e znamu, je
naznačeno
na
obr . 6 . l 1 . 3 . a .
vr cholů :
- 95 -
j e nutné z a č í t
a p r o cház e t s e znamy Výs l e dkem
je
s e zn am
V p ř ípadě , je
že p r o c e s
výs l e dek
s t e j ný
j e započat od j iného vs tupního p r ůs e č íku , ( vr choly
j s ou
pouze
cykl i cky
z aměněny ) .
Průs e č íky
1 , mus e j í být ods t r aněny a 1 1 , 1 2 4 6 8 vs tupní ch průs e č íků , t j . s e znam j e nyní prázdný .
ze
s e znamu
K vytvoření n-úhelníků zbylých po oře závání j e nutné od
průs e č íků že
s tím,
z
Q
s e znam
obr . 6 . l l . 3 . b .
p ř i čemž
výs tupního
I
Začneme - l i o d 1 , 3
1
S
3
1
2
je
tj .
prohl í žen
např . v
od
průs e č íku
opačném
směru,
I
I viz
Výs l e dkem j e pak s e znam
průs e č ík
1
s e znamu ,
začít
1
4
mus í
I
být
1
3
5
S
s e znamu .
dos táváme s e znamy
nebo 1 , 7
5
výs tupního
z
o d s t r aněn
1
4
1
6
1
5
S
7
1
s
1
8
7
p ř i č emž j e opět nutné ods t r anit p ř í s lušné průs e č íky z výs tupního s e znamu . Poněkud
s l o ž i tě j š í
s i tuace
uveden na obr . 6 . l l . 2 . b , dva
výs l e dné
p ř ípadě ,
v
p ř ípadě ,
který
kdy výs ledkem o ř í znut í n-úhe lníka
n-úhe lníky .
viz
nas t ává
Pos tup
o br . 6 . l l . 4 . a ,
s
je
t ím ,
s t e j ný že
j ako
po
v
je
j s ou
p ř e de š lém
vytvoření
prvn ího
s e znamu
a ods t r anění průs e č íku
ze v s tupního s e znamu I vytvo ř i t s e znam odpovídaj í c í vs tupnímu bodu 1 3
a vypuš tění průs e č íku 1 s tart R
S
S
l
Q
2
S
3
S
C �1 3 l
kone c
2
j;/
vs tupní s e znam :
I
3
l
� S s
4
C
nutné
j e š tě
ze vs tupního s e znamu .
/
1
s t art 1
2
1 � C -- I l 3 2 � � kone c l 2
1 ,1 3 1
je
57
2
/
� S 58 C
4
1 �C l 4
výs tupní s e znam :
a ) výs l e dné n-úhe lníky - 96 -
I
1 , 2
1
4
1
4
S
l
R Q
v s tupní s e znam :
výs tupní s e znam :
1 ,1 3 1
1 , 2
1
4
b ) zbylá čás t Obr . 6 . 1 1 . 4 Obdobným způ s obem j e vytvořen n-úhe lník , původního n-úhe lníka ,
s
tím,
že
prvku
výs tupního
směru .
Výs l e dkem j e pak s e znam :
1
2
S
S
7
S
8
s e znamu 1
9
C
3
a
j e nutné
4
S
s e znam j e nyní prázdný . Uvažme
n-úhe lník
nyní
p o s l e dní
obs ahuj e
n-úhe lníkem
s
d ír ou .
díru
př ípad a
2 z
obla s t
S e znamy
v p ř e d cho z í ch p ř ípade ch,
S
l
p ř i čem.ž j e nutné ods t r an i t prvky 1 tj .
Q
s e znam 1
l
který j e
2
začít
prohl ížen
S
\S
3
4
4
S
II
s
s e znam
obr . 6 . 1 1 . 2 , oře závání
kdy je
podobným
výs tupní
a ) výs ledný n-úhe lník
-
91 -
C
3
1
2
o ř e z ávaný
tvořena způs obem
viz obr . 6 . 1 1 . 5 .
II' 13 ' 15
o p a čném
v
z výs tupního s e znamu ,
konec vs tupní
l ibovolného
od
je
a 1
vytvoř íme
zbylou č á s t í
s e znam :
též j ako
�
s tart 2 R
Q
t
"""'"
S l-- 1 3
1 4 S 2S 3S 4-
C
C3
t
l
C2
kone c vs tupní
2
r I�I s
I
C4
}
s tart
l
jlL I
12S 1
� I r1
t
S 5 S 6..... S 7� I s
S8
Cs
C7
----... -S
Cl
1
<: :: I Z- C 6 1 3
konec
1 výs tupní
s e znam b)
zbylé
I
s e znam :
12,
J
I
�Ss
C8
Cs
14, 16
čás t i
Obr . 6 . 1 1 . 5 Pos tup j e opět obdobný předchozím př ípadům s tím r o zdílem,
že
pro každý n-úhe lník , který tvoří vnitřní č i vně j š í hran i c i , j e nutné vytvoř i t kruhový s e znam . Je-li průs e č ík I I vzat j ako první bod , pak výs l e dný s e znam definuj í c í výs ledek oříznutí j e II
C
12
13
6
14
S8
15
16
II
a zbytek po oř íznutí j e definován seznamy 12
S
14
S2
C6
13
l
12
a S4
S3
ob l o s t -
I
II
16
Ss
S6
S7
15
14
ob \ os+ ,
o�e �a v a •
"
O re 1:. Q V a n l
,/
1
Obr . 6 . 1 1 . 6 - 98 -
I
nI
Je po chop i t e lné , že v př ípadě úplné spec ifikace W-A algo r i tmu j e nutné t é ž ř e š i t spe ciální př ípady , kdy s e zadané n -úhe lníky dotknou buď vr cholem, nebo hr anami , viz obr . 6 . 1 1 . 6 . Do s e znamú se pak zařadí j en ty prús e č íky , které j s ou označené * , zatímco prús e č íky ozna čené s e nezařad í , podobně j ako v kap . 6 . 7 . o
Nevýhodou
uvedených
algor itmú
je
nutnos t
o r ientace
hran
n-úhe lníkú , což múže znamenat čás te čné ome zení v p r aktických ap l ika c í ch . Or ientaci j e pak možné ur čit tak , že s e např . vyhledá vr chol , který j e nej více vpravo a podle hodnoty s ouřadnice y nás leduj í c ího vr cholu se ur čí or ientace n -úhe ln íka . V př ípadě , že n-úhe lník j e konvexní , lze r o zhodnout o o r ientaci na základě vektorového s ouč inu směr ových vektorú dvou po s o bě j doucích hr an , které neleží na s te j né přímce . J i s t ou výhodou W-A algor itmu j e , že j e j lze modifikovat i pro př ípad p oužití kvadr a t i ckých kř ivek .
kruhových
obloukú ,
př ípadně
i
j iných
okno
ro " j \"\ C\
par a l e ln í p r o j ekce
perspekt ivní p r o j ekce Obr . 6 . 1 2 . 1 - 99 -
6 . 1 2 Ořezávání v t ř í r o změrném pros toru
či
Dosud uvedené algor i tmy ř e š ily problematiku oře závání ús e ček n-úhe lníka obe cně vůči r ovinné oře závací oblas t i . Při
zobrazování t ř í r o změrných obj ektů j e nutné používat modifikované oře závání v p ros toru z někol ika důvodů , a to : obj ekt by mohl přes áhnout plo chu , na kterou j ej zobrazovat ( podobně j ako př i ořezávání v r ovině ) ,
chc eme
obj ekty č i j e j ich č ás t i , které j s ou mimo zobrazovanou obl a s t t zv . pyramidu pohledu, by při proj ekci vytvář e l y nežádou c í efekty . Z tě chto důvodů byl o zavedeno oře závání vůč i p r o s t o r ové oblas t i ,
která v př ípadě p ouž ívání perspekt ivní . pr o j ekce má tvar pyr amidy , viz obr . 6 . 1 2 . 1 . b . Pyramida pak repre zentuj e v idite lnou oblas t p r o pozorovat e l e . Obvykle j e přední r ovina o ř e závání oblas t i v pozici pozorovatele a zadní r ovina pak nekone čně dal eko . Vzhledem k tomu , že okno může být různě ve lké , viz obr . 6 . 1 2 . 2 , j e vhodné nej dř íve transformovat s ouřadn i c e t ak , že oře závání probíhá v li j edno tkové II pyramidě , a poté apl ikovat inver zní t r ans forma c i s ouř adni c . Je dnotková pyramida j e pak dána polorovinami : z Celý
� x
z
p roc es
� -x
ořezávání
�
z
z � -y
y
pak
může
U
x
být
z
�
vyj ádřen
O pomo c í
trans formace x'
=
U
-1
.
C l ip
při čemž operace změny měř í tka j e reprezentována mat i c í
=
U
kde
O O
O O
1
O
O
1
z
ur čuj e polohu promítací roviny na o s e z , r 2 a , 2 b j s ou pak rozměry okna .
- 100 -
U
t ak , ž e
IP
, 1;
-=
-
Zp
Obr . 6 . l 2 . 2 Ope r átor C l ip j e pak pop s án algor itmem 6 . 1 2 , 3 a j e vlas tně modifikac í Cohen- Suthe r l andova algor itmu , viz kap . 6 . 2 . B i ty kódovací oblas t i maj í nás leduj ící význam : bit O bit 1 b it 2 bit 3 -
Je
zře j mé ,
bod j e vlevo od pyr amidy , tj . x < - z bod j e vpravo o d pyr amidy , tj . x > z bod j e pod pyr amidou , tj . y < -z bod j e na d pyramidou , tj . y > z že na rozdíl
od algoritmu z kap . 6 . 2 mus í být
ur čena odpovídaj í c í hodnota s ouřadn ic y a z . . procedure CL I P 3 D ( x l , y l , x2 , y 2 ,
z l , z2 : r e a l ) ;
label 9 9 ; var x , y ,
z , t : rea l ;
c , c l , c 2 : integer ; - 101 -
též
procedure CODE 3 ( x ,
y , z : rea l i var c : integer ) i begin c : = O i { hodnoty 1 , 2 , 4 , 8 odpovídaj í p ř í s lušným kódům } i f x < -z then c : = l e l se i f x > z then c : = 2 i i f y < - z then c : =c+4 e l se i f y > z then c : = c + 8 i end { CODE 3 } i begin { z j i š tění s tavových s l ov } CODE 3 ( x l , y l , z l , c l ) i CODE 3 ( x2 , y 2 , z 2 , c 2 ) i i f ( c l l and c 2 ) = O then begin { ú s e čka může procháze t pyramidou } if ( c l lor c 2 )
< > O then
begin { ú s e čka neleží celá v pyramidě } r epeat if c l = O then c : = c 2 e l se c : = c l i i f ( c l and 1 )
< > O then
begin { bod j e vlevo }
t : = ( z l +x l ) / « x l -x 2 ) - ( z2 -z l » i z : = t * ( z 2 -z l ) +z l i X : =-Z i y : = t * ( y2 - y l ) +y l end e l se if ( c l and 2 ) < > O then begin { bod j e vpravo }
t : = ( z l -x I ) / « x 2 -x I ) - ( z2 -z l ) } i z : = t * ( z 2 - z l ) + z l i X : = Z i y : = t * ( y 2 -y l ) +y l end e l se if ( c land 4 ) < > O then begin { bod j e pod }
t : = ( z l +y l ) / « y l -y2 ) - ( z 2 - z 1 » i z : = t * ( z2- z 1 ) +Z l i x : = t * ( x2-x l ) +x l i
y : =-z
end e l s e if ( c land 8 )
< > O then
begin { bod j e nad }
t : = ( z l -y l ) / « y 2 -y l ) - ( z 2 - z 1 » i z : =t* ( z 2 -z 1 ) + z l i x : = t * ( x 2 -x l ) + z l i end i i f c=c l then begin x l : =X i y l : =Y i
z l : =Zi
CODE 3 ( x I , y l , z l , c l ) end
, - 102 -
y : �z
e l se begin x 2 : =X i y 2 : =Y i
z2 : =Zi
CODE 3 ( x 2 , y 2 , z 2 , c 2 ) end i i f ( c l land c 2 ) < > 0 then goto 9 9 { ú s e čka l e ž í vně }
unt i l ( C l lor c 2 ) end i
{ nyní j e nutné úse čku zobr azit } L INE 3 D ( x 1 , y 1 , z l , x 2 , y 2 , z 2 ) end i 99: end { CL I P 3D } Al gor i tmus 6 . 1 2 . 1 Příklad Uvažme
p ř íklad z kap . 5 . 3 pro př ípady , kdy j e nutné použ í t II pyramidální II o ř e z ávání . P ř e dpokláde j me , že výs tup bude p r ováděn na s
výs tupním
zaří zení
počátkem v
vzdáleno s t i Pak
na
s
r o z l i š ovací
l evém dolním r ohu .
1 0 0 0 mm ,
v š e chny
body
s chopno s t í
Na výs tup
se
budeme
p ř i čemž veliko s t výs tupu s cény
je
nutné
1024 x 1 024
je
\
apl ikovat
d ívat
a ze
5 0 0 x 5 0 0 mm .
j e dno t l ivé
j iž
uvedené
t r an s formace kromě p e r s pektivní t r ans forma c e , k t e r á j e nahr azena II pyramidálním ll oře záváním a nás l e dnou p e r s p ekt ivní pr o j ekc í . W
=
Ce lková t r ans forma ce může být vyj ádř ena t akto
Per sp
U
Pak mat i c e 4
U
O
=
O
O
Ope r átor
u- 1
a
oře záván í .
O
4 O
1
O
O
. R
(�) z y e e
O O
O O
o značuj e
. R
(�) x z e e
.
T
Z .
0. 25
U- 1
O
=
O O
ope r a c i
O
0 . 25 O
O
O
1
O
O O
O
O
O
pyramidálního
t ř í r o změ rného
souřadnice kon cových bodů j e obe cně -1 nutné p r oná s o bi t mat i c í u . Z í skané body x j s ou uvn i t ř n e bo na c povr chu p oh l e dové pyr amidy . Nyní j e nezby tné apl ikovat oper átor Per sp ,
Takto
U
. C l ip .
maj í v naš em p ř ípadě tvar O
o
C l ip
U- 1
tj .
pr o j ek c i .
z í skané
ur č i t
s ouř adni ce
bodů
po
j e j i ch
p e r s pekt ivní
Pro s ouřadn i c e bodů na promí t a c í r ovině l z e p s á t - 103 -
-------
-
-
x
p
z
=
a
x c z c
r
z
Yp
=
kde
(x ' Y ) O O zařízení
Yc
r b je
z
c
r
r
x
Y
+
X
+
Yo
požadovaná
o
poloha
p o čátku
v
s ouř adném
sys tému
r e s p . 2r , j e rozl i š ení v e směru osy x , r e sp . o s y y x ' y -1 a Persp l ze výhodně s louč i t , n e b o ť Lze ukáza t , ž e oper a c i u z z b r r , resp . zlomek , v ope r a c i Per sp a ' resp . z b a r -1 v mat i c i u s e kr á t í . Pak l ze p s át 2r
x
y
p
p
=
=
x 'y 'Z získaných j ako p ř ímý výs tup j s ou s ouřadnice bodů X c c c c -1 . V našem tř írozměrného oře závání , t j . bez pronásobení mat i c í u
kde
př ípadě dos t áváme x
y
p
p
=
511. 5
+
511. 5
511 . 5 + 511 . 5
=
Celý pos tup ř e š ení obe cného pohle du v t ř í r ozměrném p r o s toru l z e znázornit obr . 6 . 1 2 . 3 .
3 D r e pr e z en t a c e _______ __________________�) _ _
t r an s formace v E
3
... -
pyramidální
I
2 D r e pr e z en t a c e __________ ____ _
(___ �
prespektivní
o ř e z ávání
proj ekce
Obr . 6 . 1 2 . 3 - 1 04 -
gene r a c e výs l e dn é s cény
7.
El iminace nevidi telných hran a povrchů P r o b l ém
ř e š ení
vidi t e lno s t i
probl émů v p o č í ta čové grafice .
je
j edním
z
n e j o b t í žně j š í ch
V zásadě j de o ur čení bodů ,
čás tí
hran a povr chů , které j s ou neviditelné ( zakryté j inými p l o chami ) z dané p o z i c e pozorovate l e . je
z ř e j má
z
obr . 7 . 1 ,
drátěného mode l u ,
Potřeba vypuš tění nevi d i t e lných hran
kde
je
uve dena
typ i cká
ukázka
t zv .
j ehož interpretace není j edno značná .
Obr . 7 . 1 Složitos t
p r o b l ému
e l imina ce
nevidite lných
vyús t i l a v nepřeberné množ s tví algo r i tmů , princ ipy
a
algor i tmus . je
j e j i ch kombinace .
a
povr chů
které použ ívaj í různé
Pravděpodobně neex i s tuj e
nej lepš í
U algori tmů použ ívaných v apl ikac í ch r e álného
neúp r o s ným
nebo
hr an
p ožadavkem
1 / 30 sec . ,
např .
poskytnout
ř e š ení
u s imul átorů pi lotáže
vždy
v
l e tade l .
času
r ám c i
1 /50
Budeme - l i
v š ak po žadovat r e a l i s t i č tě j š í výs tup s v í ce podr o bno s tmi v č e tně s t ínování ,
průhl e dno s t i
a
budou algor i tmy pomal e j š í , k
ř e š ení
daného
problému .
průsvitno s t i
obj ektů
s
odrazy
a td . ,
často vyžaduj í c í mnoho minut a ž hodin Exi s tuj í c í
pos tupy
využívaj í
dal š ích dos tupných informa cí k pods tatnému zrychl en í , animac i a s imul a c i l z e s výhodou využ í t toho , po s obě nás l e duj í c í j s ou s i ve lmi podobné ,
- 105 -
nap ř .
též při
že zobrazené s cény
apod .
7 . 1 Zobrazování exp l i c i tních funkc í dvou pr oměnných
Výs l e dkem ř e š en í mnoha probl émů j e
často
exp l i c i tn í
funkc e
dvou pr oměnných ve tvaru : y = f ( x ,
X E
z )
< a
,
x
b
x
a
>
která bývá z adána buď p ř ímo analyt i ckým p o p i s em n e bo funkčními hodno t ami
v
exp l i c i tní ch prin c ipu
bode ch funkc í
t zv .
s ít ě dvou
v
r ovině
pr oměnných
p l ovoucího
hor i zontu
zx . j sou
Me tody
zobrazován í
větš inou
[ 39 ] , [ 11 6 ] ,
z a l o ženy
neboť
na
použ i t í
obe cných me tod vede k pods tatnému pr odloužení doby výp o č t u . El iminace nev i d i te lných hran Pro
mnoho
proměnných s o s ou
y,
ap l ika c í
p omo c í
ř e zů
p ř i čemž
obdélníkovou s íť ,
je
pos tačuj í c í
ve dených ř e zy
zobrazení
rovnobě žně
vytvář e j í
viz obr . 7 . 1 . 1 .
Obr . 7 . 1 . 1 - 106 -
s
o b�cně
funkc e
o s ou
x,
dvou resp .
n e p r avide lnou
Chceme t e dy zobr a z i t kř ivky : y
f ( X ,
X E
< a
z.
1
b > x
x
i
)
=
f ( x. , J
z E < a
= b
z
j = l, . . . , m
z )
b > z
z '
l, . . . ,n
a
a kř ivky : y
=
a
Princip ř e š ení v i d i t e lnos t i j e ve lmi j ednoduchý .
P ř e dpokláde j me ,
že ř e zy j s ou r ovnoběžné s o s ou x , p ř i čemž j s ou kr e s l eny p o s tupně od
pozorovate l e
( ozn .
směrem
dozadu .
Nakr e s l ením
prvn í ch
dvou
ř e zů
f
a f ) j e zobrazena část p l o chy , k t e r á j e ohran i č ena 2 l právě prvním ř e zem vpř e du a druhým ř e zem vzadu , v i z obr . 7 . 1 . 2 .
hova'
M l"
m aska
�,�,h'
�_
-
- � ..
.....
,
fz
f..
po,'s �vicJ;t�/hosti I,
I
Obr . 7 . 1 . 2 Bude - l i nyní kr e s len t ř e t í ř e z ( o zn . kr e s l ena obrys em
j en j iž
ta
čás t ,
zobr azené
která čás t i
horním a dolním obrysem,
je
je
f ) , pak j e z ř e j mé , ž e bude 3 pod do lním nebo nad horním
p l o chy .
Čás t
ř e zu ,
která
je
mezi
zakryta tou čás t í k r e s l ené p l o chy ,
kter á j e vymezena prvním a druhým ř e zem . Ozna č íme - l i př ičemž
budeme
algo r i tmus
pro
horní
obrys
prozatím
j ako
MT
p ř e dpokl ádat ,
a
dolní že
kr e s lení' ř e zů r ovnobě žných
algo r i tmem 7 . 1 . 1 . - 1 07 -
j de s
obrys o
j ako
funk c e ,
o s ou x
MB , lze
r e a l i zovat
MT : = -OO i MB
OO i
: =
for k : = l t o p o č e t ř e zů do begin Kr e s l i funkc i f ( x , z ) s r e s pektováním k v i d i t e lno s t i Vx E < a , b > i x x Vx E < a , b > MT : = max { MT , f ( x , z ) } k x x Vx E < a , b > MB : = min { MB , f ( x , z ) } k x x { max , min j s ou funkce , j e j i chž argumenty j s ou } funkce a výs l e dkem j e opě t funkc e
{
}
end Algori tmus 7 . 1 . 1 Funkce
min
vektorů ,
a
max
viz
je
např .
možné
repre zentovat
pomo c í
repre zentuj í c í ch
[ 140 ] ,
maskova c í ch
v l as tně
hodno tu
funkce pro danou hodnotu x . Vzhledem p o s l oupno s t použ í t Aby
tomu ,
modifikovat
že
l ineárn í ch
B r e s enhamův
nebyly
body ,
k
úseků
pro
kr e s lení
nevidite lné
p ř íkaz DRAW j s ou
f ( x, z ) bude kr e s l ena j ako k vzhledem k p r oměnné x , j e možné
algoritmus
kr e s l eny
které
funkce
nad
STEP
nebo
tak ,
pod
body
ús e čky ,
dané
aby byly
j iž
č áry ,
viz
kap . 3 .
je
nutné
zobrazovány
nakr e s l enou
čás t í
j en
ty
p l o chy .
Př íkaz DRAW STEP může být nyní reali zován ' ( z j e dnoduš eně ) ,
např .
algo r i tmem 7 . 1 . 2 . procedure DRAW STEP i begin i f yp < MB [ xp ] then begin MB [ xp ]
: = YP i
PLOT ( xp ,
yp ) i
end i
PLOT ( xp , yp ) i
end ;
i f yp > MT [ xp ] then begin MT [ xp ]
: =
YP i
end ; Al gor i tmus 7 . 1 . 2 Pro
použ i t í
ve
s kute čných ap l ikac ích,
téměř svis l é ús e čky , M1T a M 1 B , vektory
MT
kdy
se
j e nutné zavé s t pomo cné maskova c í vektory
které r e p r e z entuj í aktuální s t av , a
MB
ř e zu .
Po
obsah
doč asných
v l a s tně
nakr e s l ení
vektorů MT a MB .
mohou vyskytnout
repre zentuj í
j ednoho
maskovacích
s t av
ce l ého
ř e zu
vektorů
MlT
je a
p ř i čemž maskov a c í z
p ř e d cháze j í c ího
pak M1B
nutné do
p ř e p s at
maskova c í ch
Celý pos tup kr e s l ení funkce dvou p roměnných j e
znázorněn na obr . 7 . 1 . 3 . - 108 -
re l
a______----7) f---________ spe c ifikace uživa t e l s ké funkce
i n t e ge r
II
rotace a p r o j ekce
uživa t e l ská úroveň
(__________....'� . _______---7
kr e s l i kr ok Kr e s l i ús e čku B r e s enhamovým � vzhl e dem k v i d i t e lnos t i algoritmem úroveň grafi ckého sys tému
II
�------7)
� ( --------�--------�-------7
Obr . 7 . 1 . 3 Uživat e l em
s p e c i f ikovanou
předpisem nebo daty , že
průmě t
svi s l ý ,
vektoru
tj .
l ze
v uve deném p e r s p e k t ivní v pros t oru
apl ikovat
E
byl a
chyby ,
které
půs obí
vhodné
použ í t
o s ou t zv .
okol o
rotace
měř í tka .
parale lní níž
při
ř e zů z.
viz
" Z ig-zag "
y
ana l y t i ckým
Vzhl e dem
metodu
Z
osy
nebo
" s l abou " p ř ímka
p l o chu dvou x
v š ak
toho to
pos tupného
x
p r in c ipu
o s ou
superpo z i c i
obr . 7 . 1 . 4 .
a
s vi s l á
sup e r p o z i c e s
y k
zobr azenou
\
zůs ta t
mus í
osy
l i bovo lná
rovnobě žných prosté
o s ou
proj ekci
protíná
Při
ruš ivě ,
které chyby nevznikaj í . za p ř e dpokladu ,
pouze
p ř e dpokl ádána
kr e s l ením s
zadanou
s
průmě tně
rovnobě žných
už
rovnobě žného
změnu
použí t
na
dosud
vzniklých
a
p r o j ekc i ,
3 v j e dnom bodě . Až
původně
l ze
ať
j e možné otáčet v pros toru s t ím ome zením,
poř adí
zobrazování
funkci ,
pouze o b r ázků
a
ř e zů
vznikaj í důvodu
kre s l en í ,
je př i
Na obr . 7 . 1 . 5 j e nazna čen pos tup kre s l en í
že b o d q j e nej b l í že pozorovate l i .
Celý p o s tup
kr e s lení funkc í dvou pr oměnných s e l iminací nev i d i t e lných č á s t í lze popsat algo r i tmem 7 . 1 . 3 . program HIDDEN ; const n m
=
45;
{ P o č e t ř e zů v os e x }
30;
{ v o s e y - o s a z j e s v i s l á v t omto programu
r s ty
=
199;
{ r o z l i šení průmě tny na o s e y }
r s tx
=
639;
{ na o s e x }
type mat
a r r ay [ 1 . . n , 1 . . m ] of r ea l ;
=
vectx vecty rot ma sk
ar ray [ 1 . . n ] of real ;
=
=
array [ 1 . . m ] of rea l ;
a r ray [ 1 . . 3 , 1 . . 3 ] o f real ;
=
=
intmat
ar ray [ O . . r s tx ] of integer ; =
ar ray [ 1 . . n , l . . m ] of integer ; - 109 -
}
var xp , yp : fz :
intege r ;
mat ;
{ p o l e funkčních hodnot }
x:
vectx ;
{ p o l e hodnot x }
y:
vecty ;
{ p o l e hodno t y }
MT , MB , MT 1 , MB 1 : r:
ma sk ;
rot ;
xs c , ys c :
intma t ;
ax , bx , ay , by : alfa , b e t a :
r ea l ;
r ea l ;
s x , s y , i sx , i s y :
intege r ; real ) :
funct ion EXP MY ( x :
real ;
begin i f x < - 1 0 then EXP MY : = O e l s e EXP MY : � exp ( x ) { t o t o j e nezbytné z důvodů možného podte čení } { end { EXP MY } ; funct ion FCE ( px , py : begin
}
funkce EXP v Tur bo- Pas calu real ) :
r ea l ;
FCE : = 8 * EXP MY ( - 4 0 * ( s q r ( px- 0 . 6 ) + s q r ( py- 0 . 3 » 6 * EXP MY ( - 3 5 * ( 2 * s q r ( px- 0 . 7 ) + s q r ( py+ 0 . 1 »
)+
8 . 5 * EXP MY ( - 1 5 * ( s q r ( px+ 0 . 5 ) + s q r ( py+ 0 . 3 »
)+
5 * EXP MY ( - 5 0 * ( s q r ( px- 0 . 1 ) +s q r ( py- 0 . 8 »
)-
2 * EXP MY ( - 9 0 * ( s q r ( px+ 0 . 6 ) +s q r ( py - 0 . 4 » 5 * EXP MY ( - 0 . 2 5 * s q r ( px+ 4*py - 1 » -
)+
)+
4 * EXP MY ( - 0 . 6 * s q r ( 4*px-py- 1 » + 0 . 4 * cos ( 1 2 * px ) 2 * s in ( py ) + 1 5 end { FCE } ; funct ion S I GN ( s :
integer ) :
integer ;
begin i f s > O then S I GN : = l e l s e i f s < O then S I GN : =- l e l s e S I GN : = O end { S I GN } ; func ti on M I N ( aa ,
bb :
integer ) :
integer ;
begin i f aa < =bb then MIN : =aa e l se MIN: =bb end { MIN } ; funct ion MIN REAL ( aa ,
bb :
real ) :
real ;
begin i f aa < =bb then MIN REAL : =aa e l s e MIN REAL : =bb end { MIN REAL } ; function MAX REAL ( aa ,
bb :
real ) :
real ;
begin i f aa > =bb then MAX REAL : =aa e l se MAX REAL : =bb end { MAX REAL } ; - 1 10 -
procedure INIT MASKi var k:
intege r i
begin for k : = O to r s tx do begin MT 1 [ k ] : = -maxint i MB 1 [ k ] : = maxint end end { INIT MASK } i procedure SET MASKi var k:
intege r i
begin MT : =MT 1 i
MB : =MB 1
end { SET MASK } i procedure DRAW TO ( x , y : var u , v , i x , iy :
integer ) i
intege r i
procedure DRAW STEP i begin i f ( yp < MB [ xp ]
) or ( yp > MT [ xp ]
) then
begin p l o t ( xp , yp , l ) i if yp > MT 1 [ xp ] then MT 1 [ xp ] : = Y P i i f yp < MB 1 [ xp ] then MB 1 [ xp ] : =y P { nas t avení mas ek } end end { DRAW STEP } i procedure BRE SENHAM i var a , b , j , d :
intege r i
begin i f u > v then begin {
1 . , 4. , 5. , 8 .
oktant }
a : = 2 *v i d : =a-u i b : =d-U i for j : = l to u do begin i f d < O then d : =d+a e l s e begin yp : =yp+ iY i d : =d+b end i xp : =X P +iX i DRAW STEP end end e l se begin { 2 . , 3 . , 6 . , 7 .
oktant }
a : = 2 *Ui d : =a-v i b : =d-V i - 111 -
•
f o r j : = l to v do begin i f d < O then d : =d+a e l se begin xp : =X P + i X i
d : = d + b end i
yp : =yp+i Y i DRAW STEP end end end { BRE SENHAM } i iy : = S I GN ( Y - Y P ) i
begin ix : = S I GN ( x -X P ) i
v : =abs ( Y - YP ) i
u : =abs ( x-xp ) i BRESENHAM end { DRAW TO } i
procedure SET TRANSFORMAT ION ( alfa , beta : var c o s a , s ina , cos b , s inb :
rea l i var r :
rot ) i
rea l i
begin c o s a : = cos ( a l fa ) i cos b : = c o s ( be t a ) ;
s ina : = s in ( alfa ) ;
s inb : = s in ( b e t a ) ;
r [ 1 , 1 ] : =cosa;
r [ 1 , 2 ] : =-s ina;
r [ 1 , 3 ] : =O ;
r [ 2 , 1 ] : = s ina * co s b ;
r [ 2 , 2 ] : = cos a * co s b ;
r [ 2 , 3 ] : = - s in b i
r [ 3 , 1 ] : = s ina * s inb ;
r [ 3 , 2 ] : =co s a * s inb i
r [ 3 , 3 ] : =cosb
end { SET TRANSFORMATI ON } ; procedure TRANSFORM ; var i , j :
intege r i
xmin , xmax , zmin , zmax , qx , q z : pX , p z :
real i
ar ray [ 1 . . n , l . . m ] of real ;
begin for i : = l to n do for j : = l to m do begin px [ i , j ] : =r [ 1 , 1 ] *x [ i ] +r [ 1 , 2 ] *y [ j ] i p z [ i , j ] : =r [ 3 , 1 ] *x [ i ] +r [ 3 , 2 ] *y [ j ] + r [ 3 , 3 ] * f z [ i , j ] i end ; xmin : =px [ l , l ] ; xmax : =xmin ; zmin : =p z [ l , l ] ;
zmax : = zmin ;
for i : = l to n do f o r j : = l to m do begin xmax : = MAX REAL ( xmax , px [ i , j ]
)
;
xmin : = MIN REAL ( xmin , px [ i , j ]
);
zmax : = MAX REAL ( zmax , p z [ i , j ]
);
zmin : = MIN REAL ( zmin , p z [ i , j ]
)
end ; - 1 12 -
qx : = r s tx / ( xmax-xmin ) i q z : = r s ty / ( zmax- zmin ) i f o r i : = l to n do f o r j : = l to m do begin xs c [ i , j ] : =round « px [ i , j ] -xmin ) * qx ) i y s c [ i , j ] : =round « pz [ i , j ] - zmin ) * q z ) i end end { TRANSFORM } i procedure Z I G ZAG ( sx , sy , i sx , i sy , no l : var n 1 :
intege r ) i
integer i
begin xp : =x s c [ SX , S Y ] i yp : =ys c [ SX , S Y ] i for n 1 : = 1 to nol do begin sx : =sx+isX i DRAW TO ( xs c [ sx , sy ] , ys c [ sX , S Y ] ) i sy : = sy-is Y i DRAW TO ( xs c [ s x , sy ] , ys c [ sx , sy ] ) end end { Z I G ZAG } i procedure F I ND VERTEX ( r :
rot i
var isx , isy , s x , s y :
const xr
array [ 1 . . 4 ] of real = ( - 1 . , l . , l . , - l ) i
yr
array [ 1 . . 4 ] o f real = ( - 1 . , - 1 . , l . , l ) i
var a , b : k, l :
integer ) i
real i intege r i
begin a : = l e 2 0 i for 1 : = 1 to 4 do begin b : = r [ 2 , l ] *xr [ 1 ] +r [ 2 , 2 ] *yr [ 1 ] i i f b < a then begin a : = b i k : = l end end i ca s e k o f 1:
begin i sx : = l i
i sy : = l i
2:
begin i sx : =- l i
isy : = l i
3:
begin i sx : = - l i
i sy : =- l i
4:
begin isx : = l i
i sy : =- l i
sx : =n i
sy : = l end i
sx : = l i sx : = l i sx : =n i
sy : = l end i sy : =m end i sy : =m end i
end end { F I ND VERTEX } i
- 113 -
--- -------
procedure COMPUTE OR LOAD ( var x :
vectxi var y :
vect Y i
var fz : mat ) ; { p r o c e dura mus í být změněna v př ípadě čtení dat z d i s ku } var dx , dy : i, j :
real ;
intege r ;
begin dX : = ( bx - ax ) / ( n- 1 ) ; dy : = ( by-ay ) / ( m- 1 ) ; f o r i : = l to n do x [ i ] : =ax+dx * ( i- 1 ) ; f o r j : = l to m do y [ j ] : =ay+dy * ( j - 1 ) ; for i : = l to n do f o r j : = l to m do fz [ i , j ] : = FCE ( x [ i ]
,y[j ]
);
end { COMPUTE OR L OAD } ; procedure HI DDEN L INE ( i s x , i s y , sx , sy : xs c , ys c : var i , j , no l , s xx , syy :
integer ;
intma t ) ;
intege r ;
begin INIT MASK; xp : =xs c [ sx , sy ] ; yp : =ys c [ sx , sy ] ; SET MASK; for i : = 2 to n do begin sx : =sx-isx ; DRAW TO ( xs c [ sx , sy ] , ys c [ sx , sy ]
)
end ; s xx : = s x ; syy : = s y ; f o r j : = 2 to m do begin sy : =sy+isy ; DRAW TO ( xs c [ sx , sy ] , ys c [ sx , sy ] end ; for j : = 2 to m do begin syy : =syy+isy ; no l : = MIN ( j - 1 , n- 1 ) ; SET MASK; Z I G ZAG ( sxx , syy , i s x , isy , nol ) end ; - 1 14 -
)
f o r i : = 3 to n do begin sxx : = s xx+ isx ; no l : = MIN ( n- i + 1 , m- 1 ) ; SET MASK; Z IG ZAG ( sxx , syy , i s x , i s y , nol ) end end { HI DDEN L I NE } ; begin HiRe s ; go t oxy ( 1 0 , 1 0 ) ; wr i t e ln ( ' Výp o č e t funkční ch hodno t ' ) ; ax : = - l ;
bX : = l ;
ay : =- l ;
by : = l ;
{ imp l i c i tní r o z s ah pro x a y s ouřadn i c e } COMPUTE OR LOAD ( x , y , fz ) ; go toxy ( 1 0 , 1 2 ) ; wr i t e ln ( '
{ alfa - oko lo osy z ;
b e t a - okol o o s y x }
Zadej úhe l alfa a beta ve s tupní ch ' ) ;
r e adln ( al fa , b e ta ) ;
alfa : =alfa/ 5 7 . 2 9 6 ;
be t a : =be t a / 5 7 . 2 9 6 ;
SET TRANSFORMATI ON ( alfa , b e t a , r ) ; wr i t e ln ( '
Trans forma ce souřadnic ' ) ;
TRANSFORM ; F IND VERTEX ( r , isx , isy , sx , sy ) ; HiRe s ; HI DDEN L I NE ( i sx , i s y , s x , sy , xs c , ys c ) end . Algori tmus 7 . 1 . 3
•
•
ÝLZY parQ/eln/ S
OSOU
X
•
•
řeZY
pa"" le/,,/
.s (JSO u
Y
Obr . 7 . 1 . 4 - 115 -
s loženy ob,..cfzek. ,.
2 Obr . 7 . 1 . 5
El iminace nev i d i t e lných povrchů P r o b l ém může
být
e l imina ce ř e š en
př edpokláda t , p ř i čemž
nevidite lných
mnoha
způsoby .
povr chů ,
Pro
kr omě
j ednoducho s t
funkční ch bode ch
hodnot
budou
( intenzitu
l ze
zadány ur č i t
úhlu m e z i normálou p l o chy a pozorovat e l em ) , budou opě t
kr e s l i t
Kr omě
funkc í
MT
nutné
zavé s t
funkc i
a MB
pos tupně
od
lze
opět
průběhu
j ako
a
p r ávě
směrem dolní
e l iminace
nevidite lných
povr chů
lze
j as u
funkc i
v i z obr . 7 . 1 . 7 .
pozorov a t e l e
intenzity
int e n z i ty
např .
repre zentuj í c í ch horní
IC
i
Ř e zy
dozadu . obrys
je
zpr a c ovávaného
ř e zu a funkc i průběhu intenz i ty pře dcho zího ř e zu I P . probl ému
o br . 7 . 1 . 6 . ,
že budou kr e s l eny ř e zy funkc e p a r a l e l n í s o s ou x ,
v j e dn o t l ivých se
viz
,
Pak ř e š ení
popsat
např .
algo r i tmem 7 . 1 . 4 . Nutným p ř e dpokladem k ce lkové r e a l i z a c i uve deného a l g o r i tmu je,
že
a l go r i tmus
s ouř adn i c e bodů,
pro
gene raci
úse čky
které s e maj í akt ivovat ,
mus í
ne j en
p o s ky tovat
ale též i j e j i ch j as .
Je z ř e j mé ,
že j e nutné změnit odpovídaj í c ím způs obem podprogram
DRAW STEP ,
v i z a l go r i tmus 7 . 1 . 5 .
- 116 -
Obr . 7 . 1 . 6
přfl dch OZ / mos ko
-
/
SOUC QS na
ma s ka Me
pas ,
"
Obr . 7 . 1 . 7 - 117 -
MT : =
-
00 i MB : = OO i
f o r k : = l to po č e t ř e zů do begin Kr e s l i funkc i f ( x , z ) s r e s p ektováním v i d i t e l no s t i k V x E < a , b > a V x kr e s l i úse čku z ( x , MC [ x ] , I C [ x ] ) x x do ( x , MP [ x ] , I P [ x ] ) vzhledem k vidite lnos t i , p ř i čemž int e r p o luj intenzitu l ine árně z I C [ x ] do I P [ X ] i Vx E < a , b > f(x, z ) } k x x Vx E < a , b > MB : = min { MB , f ( x , z ) } k x x { max , min j s ou funkce , j e j i chž argumenty j s ou }
MT : = max { MT ,
{ funkce a výs l e dkem j e opě t funkce } Vx E < a , b > MP : = f ( x , z ) k x x { nas t avení mas ek na kon c i ř e zu }
IP : = ICi end
Algori tmus 7 . 1 . 4 Na
rozdíl
od
vě t š iny
publ ikovaných
algori tmů
je
uve dený
algo r i tmus j e dnodu chý a poměrně snadno r e a l i zova t e lný . Je
vhodné
po znamenat ,
Bres enhamův a l go r i tmus , yp ur č í hodno ty bod .
MP
a
IP,
pro cedur a
F ILL
c e l ého
se
kterou s e
�kt ivuj e
ř e zu j e nyní nutné
kterými
j s ou
repre zentovány
procedure DRAW STE P i begin i f y p < M 1B [ xp ] then M 1 B [ xp ] : =YP i i f yp > M 1T [ xp ] then M 1 T [ xp ] : =yp i f ( yp < MB [ xp ] ) or ( yp > MT [ xp ] ) then F I LL ( xp , yp , MP [ xp ] , i , I P [ x P ] ) i { z ( xp , yp ) do ( xp , MP [ xp ] ) akt ivuj body } { s intenzi tou i do intenz i ty I P [ xp ]
}
{ p okud s ouř adni ce yp j e nad nebo pod } { j iž nakr e s l enou plo chou viz obr . 7 . 1 . 8 } I C [ xp ]
v l a s tně
YP i := i
end i Algor i tmus 7 . 1 . 5 - 118 -
odpovídaj í c í
t é ž aktual i zovat
funkce .
MC [ xp ]
je
který pro dané xp a j edno t l iv é hodnoty
intenz i ty ,
P o nakr e s lení
vektory
že
odpovídaj í c í
viOl/te/ne" čos," plněni ;'
p"'O
Me
MP , I P
MT
MS
I
,
x.,
.
1'05
nl.vid/ttllnosti "
Obr . 7 . 1 . 8 El iminace neviditelných vr stevnic Řešení
probl ému
( i zolini í )
e l iminace
zobrazovaných
nevidite lných
niko l iv
j ako
repre zentovanou s ous tavou vr s tevnic , v l i t e r atuře p op s áno j en zř ídka , ř e š en í v í c e úloh naj e dnou . s amotných ,
tj .
viz např .
kde
c
tj .
ur čení bodu,
shora
na
funkc i
[ 20 ] ,
je
neboť z ahrnuj e
Prvním problémem j e ř e š en í v r s t e vn i c
p = l , . . . ,
P
v r s tevn i c
ale p o d něj akým úhl e m ,
hledání kř ivek takových ,
f ( x, z ) = c
pohled
čás t í
že : r
j e zvolená hodno t a ur čuj í c í vlas tně " výšku " vr s tevn i c e . p Druhým probl émem j e pak ř e š ení problému vid i t e lno s t i v r s t evni c , kde vrs tevnice
p ř e s t ává být vidite lná . ( obrysu ) v p ř ípadě ,
" zachází za ' obrys p l o chy " ,
tj .
T ř e t ím problémem j e pak kr e s l en í s i luety
že není kr e s l ena s í ť ,
která s iluetu vytvář í ,
viz obr . 7 . 1 . 9 . Z
důvodů
j ednoduchos t i
algor i tmu
budeme
p ř e dpokládat ,
každá vr s tevni ce může mít j en dva průs e č íky s hran i c í sítě ,
která
kr e s l i t Dál e
je
pomo c í
opět
v
metody
p ak ,
že
hodnoty
vzes tupně ,
tj .
p l at í :
r ovině
zx .
" Z ig-zag " ,
Předpokl áde j me , a
j edno t l ivých
- 1 19 -
to
odp ř e du
vrs tevn i c
" po l í čka "
že
směrem j s ou
že
se
bude
d o zadu .
us p o ř ádány
p = 1 , . . . ,
r-1
Ce lý pos tup může být r eprezentován algoritmem 7 . 1 . 7 . MT : = -00 ;
MB : = 00 ;
for k : = 1 t o p o č e t p o l í ček s í tě do begin for p : = l to p o č e t vrs tevnic do begin Vyp o č t i průs e č íky p-té v r s t evni ce s hran i c í k- tého po l í čka s ít ě ; Kr e s l i spoj nice průs e č íků s r e s pektováním v i d i t e l no s t i ; end ; Kr e s l i zadní hran i ce zpracovávaného po l í čka s í t ě s r e s pektován ím v i d i t e lnos t i ; nas t av MT a MB t ak ,
aby vyj adřovaly horní a dolní obrys
end ; Algor i tmus 7 . 1 . 7 Z
uve deného
je
z ř e j mé ,
že
se
opě t
s
kr e s l ení ús e čky vzhledem k viditelnos t i . Uve dené
algor i tmy
troj úhe lníkovou s í ť ,
je
možné
poměrně
k t e r á vznikne
výhodou \
snadno
p ř íkazu
modifikova t
pro
diagonálním půlením p o l í ček
dř íve uva ž ované nepravide lné obdé lníkové s í tě .
Obr . 7 . 1 . 9 - 120 -
používá
V p ř ípadě obe cné nepravide lné s í tě j e pak nutné p r ové s t vhodné uspoř ádán í hran , problémů .
což pods tatně zpomaluj e ry chl os t ř e š en í daných
Ni cméně i p ř e s toto zpomalení j e ř e š ení rychl e j š í n e ž
př i použ i t í obe cně j š í ch algoritmů . Zobrazování pr i zma t ických diagramů P r i zmat i cké diagramy j s ou spe ciálním př ípadem s l oupe čkových diagr amů ,
kdy půdorys
nekonvexním
s l oupe čku není obdélníke m ,
n-úhe lníkem .
P r i zmati cké
diagramy
ale
obe cně
ve lmi
často
používaj í v e s p o j i t o s t i s kartografi ckými č i j inými údaj i ,
např .
výška ukazuj e hus t o tu obyvatels tva apod . , nazývaj í pr izmati ckými mapami ,
avš ak
j e dno t l ivé
kr i té r i a .
s l o ž i to s t í o ( n ) , s l o ž i tě j š ímu , zvýšení
hr any
mus e j í
být
že
od
s l ožitos t i
se je
možné
uspoř ádány
kde n je počet hran ,
obe cně
algor i tmu
ur č i t
dop ř e du ,
podle
ur č i t ého
s
o ( n . log n ) . I 2 výhodně j š í odvod i t
algo r i tmus ,
neboť
l ineární
s e dos t áváme k al gor i tmu
s lo ž i t o s t í s tále
t é ž někdy
j iž poněkud s lo ž i tě j š í ,
j e dno t l ivých ús e ček není znamená ,
To
a proto s e
viz obr . 7 . 1 . 1 0 .
Ře š ení uve deného problému j e pořadí kr e s lení
se
je
přes
toto
s p e ciální
neboť obe cný algor i tmus pro e l imina c i nevidite lných 2 hran j e s l ož i t o s t i o ( n ) , což při 1 0 0 0 0 p r a c ovávaných hranách
�
j iž není zane dbate lné .
Obr . 7 . 1 . 1 0 - 121 -
7 . 2 Rob e r t sův a lgor i tmus
Ře š e n í v obe cném hran
a
p ř ípadě
povr chů
pomě rně j ako
probl ému
ve lmi
u
ohr ani čuj í c í e l iminace
neboť v těleso .
nevidite lných
těles
tomto
p o l opros torů , dané
nevidite lných
kompl ikované .
konvexních
j ednoduché ,
průn ik
t ě l e sy ,
e l imina ce
př ípadě
Robe r t sův
e l egantním
lze
algori tmus u
rovinami
těleso
hran i c í
a povr chů
povr chů
s cén
je
nevi d i t e lných
ohrani čených
j e j i chž p l o chy j s ou p l anární .
real izováno
a
El iminace
j e j i chž
hran
hran
je
vyj ádř i t
j s ou
r ov iny
řeší
p r o b l ém
s
konvexními
Řeš ení t oho t o p r o b l ému j e
matemati ckým
pos tupem
pomo c í
p o s tupů
l ineárního programování . Každý p o l o p r o s t o r j e obe cně dán nerovn i c í [ a ,
b ,
tj . v kde :
c , T
d ]
[ x , y ,
.
z ,
l
]
T
�
O
x > - O
•
v j e vektor koe f i c ientů [ a ,
b ,
c ,
d ]
T
Konvexní t ě l e s o j e pak dáno j ako průnik polopr o s t o r ů , psát
vT . x � O
kde v
je
mat i c í ,
ohr ani čuj í c í
[
�1 a
n
'
�1 ' �1
,
b
j e j íž dané
n '
c
těleso .
roviny j s ou o r ientovány tak , T v. x
3i
T v . Xo < O
1
3i kde x
I
s
d
n
1 [ :n
ř ádka V
reprezentuj e
dalš ím
budeme
p ř e dpokláda t ,
s
=
O
'v' j
&
'*
T v. X > O s J
i
l i bovolný bod vně t ě le s a ,
j e l i bovo lný bod na povr chu tě le s a .
Pokud není or ientace r ovin ( t edy i polopros torů ) je
že
že
1
1
rovinu
> O
I
T v. X
j e dnu
j e l i bovo lný bod uvnitř t ě le s a ,
Xo j e
X
l
=
n '
každá
Vi
' �
a l z e t e dy
nutné
vyb r a t
bod
x,
který
je
j e-li :
- 122 -
uvnitř ,
a
p ř e dem ur čena ,
p r ové s t
kon t r o l u ,
T
x > O
v. l
V př ípadě ,
'V i
že T
v. l
< O
X
j e nutné nahr adit vektor
v
�l
vektorem
T
-
V. , l
tj .
změni t znaménka
u koe f i c ie n tů a , b , c . , d . . Ur čení vnitřního bodu j e v c e lku i i l l j ednodu ché vzhle dem ke konvexnos t i . J s ou- l i x . a x . vr cho ly l J konvexního t ě l e s a , které n e l e ž í na s t e j né rovině , pak bod x
( x. +
=
l
) / 2
X .
J
j e vni třním bodem t ě l e s a . Na základě p ř e dcho z í ch vztahů j e pak mo žné p ř ímo e l iminovat ty
r oviny ,
které
ohrani čuj í
polopr os tory
a
které
j s ou
" odvr ác ené " od pozor ovate l e . Uvážíme - l i v nekone čnu ,
parale lní
proj ekc i ,
tj .
p o zo r ova t e l
je
l z e p o z i c i repre zentovat pomo c í vektoru : x
P
[ O ,
=
O,
-1 ,
O ]
T
který zároveň ur čuj e p o z i c i t e s tova cího bodu . Vektor x
repre zentuj e po přepočtu z homogenn í ch s ouřadn i c p l i bovolný b o d n a r ovině z = - 00 , t j . l i bovolný b o d ( x , y , -oo ) . P ak p r o r ov iny ,
r ep r e z en tované vektorem
od pozorova t e l e , T J
v .
platí : x
p
Z r ovn i c e vyp l ývá ,
které
V . ,
J
j s ou
" odvr ácené "
< O že uve dená podmínka j e ekv ivalentní p o dmín c e :
c. > O J Uve dený pos tup j e patrně ne j j e dnoduš š ím algo r i tmem p r o e l imina c i nevidite lných p l o ch a j s ou- I i p l o chy obe cně nekonvexního t ě l e s a orientovány , Tímto
l ze
způsobem
konvexního
j ej l ze
těles a .
nevidite lných p l o ch ,
využ í t k pods t atnému zrychlení e l iminovat
Hr any ,
kte r é
vše chny j sou
a l go r i tmu .
nevidit e lné
tvoř eny
p l o chy
průs e čn i c í
dvou
j e mo žné ods tranit j e dnoduchým p o s tupem .
I když j e po chop i t e lně nutné ur č i t vr cho ly daného konvexního tělesa,
je
vhodné
s po lu
s
mat i c í - 123 -
mít
zaznamenány
informa c e ,
které hr any a které body l e ž í na které p l o š e . P2 ' x,
P 3 r e p r e zentované vektory v l '
v
pak mus í p l a t i t : T
vl
.
x = O
v
T . 2
'
2
Pokud roviny P l ' v 3 s e p r o t ína j í v bodě T
v3
x = O
x
.
O
=
P ř e p s áním do mat i cového tvaru p ř i použi t í homogenn í ch s ouřadn i c lze p s á t B
x = r
•
kde s
=
[ O ,
O
r = [ O ,
O ,
O,
d ]
T
p ř i čemž d > O j e měř í tkový faktor . Vynás o bením r ovn i c e mat i c í inver zn í , x = B
-1
Z analýzy rovn i c e vyp lývá , -1 s loup cem mat i ce B . Nyní
je
n e z bytné
B
-1
obdr ž íme
,
r
•
že vr cho l j e vlas tně ur čen p o s l e dn ím
zj istit ,
zakryty j iným t ě l e s e m .
tj .
zdali
To znamen á ,
že
j edno t l ivé
hr any
ne j s ou
j e nutné porovnat každou
hr anu vůči os tatním těm t ě l e sům na s céně , ' ke kte rým t a t o hr ana nepat ř í .
Ke
a t e s ty
zrychlení
typu
z j i š ťování ,
toho to procesu které
minmax ,
lze
použí t
pod s t a tně
t zv .
" z- s or t " proces
urychluj í
z d a l i hrana může být zakryta j iným t ě l e s em .
Hr anu t ě l e s a l ze vyj ád ř i t pomo c í parame t r i cké rovn i c e v = s + d . kde :
v
j e vektor
bodu na p ř ímce ,
a d j e směr ový vektor p ř ímky . nezbytné
ur č i t
Vyj ád ř íme - l i
ty
t
hodno ty
svazek
s
j e vektor
J e - l i tato hrana z akry t a ,
parametru
p ř ímek
p o č á t e čního
mezi
t,
pro · které
pozorova t e l em
je a
bodu
p ak j e
zakryta .
body
x(t)
l e ž í c ími na ús e č ce x x pomo c í parame t r i cké r ovn i c e s p a r am e t r em 1 2 a , pak ( vi z obr . 7 . 2 . 1 . a ) Q(a, t) kde
= v
+ 9
.
a = s + d .
t + 9
.
t E ( O ,
a
9 j e směr ový vektor me z i bodem na ús e č ce a pozorovat e lem
v j e vektor bodu na ús e č ce x x
1 2
.
Vzhledem k použ i t í parale lní proj ekce plat í , g = [ O ,
0 ,
1 ,
O ]
T
- 124 -
že :
l >
To znamená , a a t
ž e Q ( a , t ) repre zentuj e čás t r oviny v E 3 a p a r am e t ry j e dno značně ur čuj í p o z i c i bodu na t é t o p l oš e . Chc eme - l i
ur č i t
čás t
ú s e čky ,
která
je
zakryta
j iným
tělesem,
pak
lze
využ í t s výhodou opě t skal árního souč inu . Ozna č íme - l i h = B pak
h = B
Q(a, t)
s + t
d + a
B
a označ íme - l i •
s
•
1 > & a � O
t E < O
p = B
B
B
q
.
9
w = B
d
l ze p s á t : h = P + t .
q + a . w
t E < O ,
Je-li h. J pak
=
mat i c í B .
bod
je
zakryt
Vzhledem
k
1 > & a � O
t E < O ,· 1 > & a � O
p . + t. p . + a. w . > O J J J
daný
9
•
t ě l e s em , že
tomu ,
je
které
r e p r e z en továno
hodnoty
hle dáme \
p a r ame trů
> , pro které j e zkoumaná úse čka zakr y t a t 2 l ' j e nutné ř e š i t s ous tavu nerovnic : t E < t
h. > O J
h.
1
do s táváme
= O
me z i
tj .
vid i telno s t í
h. = O J n ( n- 1 ) / 2
vzhledem k pr oměnným t a a , 1 >
a nevidite lno s t í
bod l e ž í na rovině .
&
s ous t avu
t E < O ,
t ě l e s em ,
'V j
Hrani čním p ř ípadem př ípad , kdy h = O , j
'V j
'V i , j rovnic ,
P o l o ž íme - l i &
které
i
*
je
j řešit
p ř i čemž j e nezbytné t e s t ova t ,
zdal i :
'V k
&
*
i, j
Ap l ikací uvedeného pos tupu na vše chny p l o chy h . int e rval hodnot parametru t , j e z akryta daným t ě l e s em .
je
nutné
a � O
&
bodu
a h . obdr ž íme J který ur čuj e tu čás t ús e čky , k t e r á 1
Pos tup lze zap s a t algor i tmem 7 . 2 . 1 .
- 125 -
procedure TEST ( i , j :
intege r i
t:
real ) i
, { kon t r o l a podmínek h > O , nas t avení t min k begin f o r k : = l to n do var k :
intege r i if ( k
*
i ) and ( k
*
if t < t . then t . mln mln
end { TEST } i t . : = 1 '· t mln max
t
max }
j ) then i f h < O then EX1T i k if t > t then t ti max max
t
- 1 ,·
for i : = l to n - 1 do for j : = i + 1 to n do
j } SOLVE ( h . = O , h . = O , t , a ) i 1 J { ř e š ení s ous t avy dvou rovnic o ne známých t a a } i f ( a � O ) and ( t E < 0 , 1 » then TE ST ( i , j , t )
begin { p l at í ,
že i
*
end i Algor itmus 7 . 2 . 1 Z dosud uve deného vyp lýv á , výp o č t ové náro čnos t i . znamená
naj í t
př ípady ,
kdy
[ 94 ] , [ 1 09 ] ,
Je t e dy nanej výš žádou c í j e j ury chl i t ,
t aková
je
že p r o c e s j e ve lmi s l o ž i tý z h l e d i ska
úse čka
kr i t é r ia ,
která
z c e l a vidi t e lná .
umo žní
d e tekovat
4ze ukázat ,
nap ř .
což ty viz
že j s ou- l i p r o něj aké j sp lněny p odmínky
w. � o J
pak daná ús e čka relace
p. � o J
& je
p. + q. � o J J
&
z c e l a viditelná .
Tyto podmínky
h. � O J
nemůže být s p lněna pro žádné t E < O ,
1
zaj i s t í ,
> a a � O.
že
T e dy žádná
čás t ús e čky nemůže být zakryta a tudíž celá ús e čka j e v i d i t e lná . Te s t
na
z j i š t ění ,
zda
úse čka
je
zcela
nevid i t e ln á ,
není
j iž
do
tří
t r iviální a j e nutné apl ikovat výš e uve dený pos tup . Robe r t sův čás t í ,
algori tmus
může
být
r ozdě l en
v
zás adě
a to :
o d s t r anění nevidite lných hran a povr chů p ř i uvažování pouze s amotného konvexního t ě le s a , - por ovnání hr any a os tatní ch t ě l e s a nal e z ení zakrytých č ás t í , - nale zení hr an vznikaj í c í ch v př ípadě , tj .
ž e s e t ě l e s a p r o t ínaj í ,
nal e z en í průs e čnic dvou t ě l e s . - 126 -
------- ------- ---
-- ---
Algo r i tmus p ř e dpokl ádá , která
j s ou
hranami ,
tvořena
které
algor i tmus
p l anárními
j s ou
s těnami .
definovány
pr lmo
Každá
koncovými
s těna
je
body .
ur č ena
Robe r t s ův
pro komp l ikovan ě j š í s cény , 2 neboť j eho výpo č tová s ložitos t j e o ( n ) , a p r o t o byly vyvinuty různé
není
že s céna obsahuj e pouze konvexní t ě l e s a ,
modifika ce ,
použi t e lný
které
apl ikuj í
rozdělení
s c ény
do
men š í ch
čás t í a tím snižuj í výpo č e tní s l ožitos t na téměř l ine ární , [ 88 ] , [ 1 09 ] . těle s a .
Zás adní
Nicméně
nevýhodou
Robe r t sův
je
v š ak
algor i tmus
ome zení
názorně
na
viz
konvexní
uka zuj e ,
j aké
matema t i cké p r o s t ř e dky mohou být použi ty i v j iných a l gor i tme ch . Př íklad1 P ř e dpokláde j me ,
že
je
dáno
6
rovin
popisuj í c í ch
krychl i ,
a to : =
Pl :
x
P3 :
y
P5 :
z·
=
=
'
Rovni c e r ov iny P l
2 x - I
1 /2
P2 :
x
=
-1/2
1 /2
P4 :
y
=
-1/2
1 /2
P6 :
z
=
- 1 /2
v i z obr . 7 . 2 . 1 . b ,
j e pak :
O
=
Ce lková mat i ce V definuj í c í konvexní t ě l e s o má p ak tvar 2
2
O
O
O
O
O
O
2
2
O
O
O
O
O
O
2
2
-1
1
-1
1
-1
1
=
V
Vybe reme - l i vni t řní bod
=
x
T
za t e s t ova c í
( 0. 25, 0. 25, 0. 25)
p ak v homogenní ch s ouřadn i c í ch j e ur čen pomo c í vektoru : x
=
[
1 ,
1 ,
1 ,
4 ]
T
Nyní j e nutné ur č i t orientaci j e dno t l ivých p l o c h ,
V
.
x
=
=
T
a to :
2
2
O
O
O
O
O
O
2
2
O
O
1
O
O
O
O
2
2
1
-1
1
-1
1
-1
1
4
6 ,
-2
[ -2 ,
,
6
- 127
, -
-2 ,
6 ]
T
1
bod ,
y
r :; ' =. ' ,
x ")
b)
Obr . 7 . 2 . 1 Je t e dy nutné vynás obit I . , tj .
3. ,
5.
ř ádek mat i c e V kons t antou
obr á t i t or ientaci dané p l o chy .
-
I,
Takto modifikovaná mat i c e V
pak r ep r e zentuj e konvexní t ě l e s o . -2 =
V
2
O
O
O
O
O
O -2
2
O
O
O
O
O
O -2
2
1
1
1
1
1
,
6 ,
1
T
Nyní V Je
•
z ř e j mé ,
geome t r i cké
x = [
2
že
př íp adě
v
t r ans forma ce
2 ,
6 ,
2 ,
6 ]
geome t r i ckých
T t r an s forma c í
apl ikovat ne j en na
je
j e dno t l ivé
nutné
r ov iny ,
ale i na body . P ř e dpokláde j me , směru
osy
x,
tj .
že
chceme posunout danou krychli v kl adném
mat i ce
T
vyj adřuj í c í
homogenn í ch s ouřadn i c tvar : - 128 -
posuv
má
při
p ouž i t í
T Pak
=
mat i c e
1
O
O
3
O
1
O
O
O
O
1
O
O
O
O
1
definuj í c í
V'
konvexní
těleso
je
posunut í
po
definována j ako :
V'
=
V
T- 1
.
V'
J e s t l iž e
=
O
O
1
O
O
-2
2
O
O
1
O
1
1
O
O
O
1
O
O
O
O
-2
2
O
O
O
O
O
1
1
1
1
O
O
O
O
O
O
-2
2
O
O
O
O
O
O
-2
2
7
-5
1
1
1
1
použ i j eme
T
bod
původní
pak do s táváme :
[ 26 ,
=
2 ,
-18 ,
T 6,]
2 ,
6 ,
ž e bod ( 0 . 2 5 , 0 . 2 5 , 0 . 2 5 ) l e ž í vně daného n -úhe lníka .
V p ř ípadě , x'
-3
O
k t e s tování or ientace ,
To znamená ,
O
O
2
nyní
V' . x
O
2
-2 =
T
1
-2
=
T
že i na bod x apl ikuj eme ope r a c i posuvu , x
•
=
[
13 ,
1 ,
1 ,
4 ]
6 ,
2 ,
6 ,
2 ,
T
pak V' což
je
.
x'
=
výs l e dek
[ 2 ,
o čekávaný ,
�eboť
tj .
6 ]
T
x'
bod
je
uvni t ř
daného
konvexního t ě l e s a . Analogi cky rotace . y,
je
možné
pos tupovat
i
v
př ípadě
Budeme - l i danou kry chl i otáčet o úhe l �
pak t r ans formační mat i c e má tvar : cos �
O
s in �
O
O
1
O
O
O
cos �
O
O
O
1
- s in � O
- 129 -
=
t r an s formace rr / 4 oko l o osy
R
cos
o
s in
O
{2 / 2
O
{2 / 2
O
O
O
{2 / 2
O
{2 / 2
O
O
-1 zx (
=
R
zx
=
=
V
=
•
R
-1 zx
{2 / 2
O
O
1
- {2 / 2
O
O
O
O
{2 / 2
O 1
O
=
2
O
O
O
O
O
O
-2
2
O
O
O
O
O
O
-2
2
1
1
1
1
1
1
- {2
{2
{2
- {2
O
1
O
O
-2
O
{2 / 2
reprezentuj í c í konvexní t ě l e s o p o r o t a c i má tvar
Pak mat i c e V " V"
1
O
1
O
O
O
1
O
-1 ( rr / 4 ) zx
O
cos
O
O
( rr / 4 )
O
O
1
O
R
- s in
T
O
{2 / 2
O
- 2
2
O
O
1
1
- {2
{2
- {2
{2
x
[ O ,
=
a t e dy : V" To znamená , Je
x
.
že 1 .
z ř e j mé ,
že
=
O ,
=
00 ,
-1 ,
[ - {2 ,
a 6.
O
{2 / 2
=
O 1
O
T
O
O
1
1
Uvážíme - l i nyní p o z i c i pozorova t e l e v bodě pozorovate l j e v poloze z
O
O
O
O
O
- {2 / 2
1
O
O
1
{2 / 2
[
O ,
O ,
1
,
O
]
T
,
j e tes tova c í bod ur čen j ako O
{2 ,
]
T
O ,
O ,
{2 ,
- {2 ]
T
rovina j s ou nevidite lné .
místo
t r ans forma ce
mat i c e
V
dané t ě l e s o j e možné t r ansformovat tes tuj í c í bod , - 130 -
r e p r e zentuj í c í a t e dy :
tj .
x' ,
R
-1 zx
O
{2 / 2
O
O
x"
{2 / 2 .
=
Pak v
x"
.
=
1 ,
[
O
{2 / 2
O
O ,
[ - {2 ,
- {2 / 2
1
O
x =
.
{2 / 2
O ]
-1 ,
{2 ,
T
O ,
O
{2 ,
O ,
O
O
O
O
O
-1
1
O
T
- {2 ]
což j e výs l e dek o č ekávaný . Je
t e dy
z ř e j mé ,
nemus í
plo chy ,
průs e čn i c e
že
být
hrana ,
která
tes tována
dvou neviditelných
je
zdali
průs e čn i c í je
( zakrytých )
1.
a
neboť
vidi t e lná ,
p l o ch
6.
je
nev i d i t e lná
z
p ř e d choz ího
též .
Př íklad
2
P ř e dpokláde j me ,
že
je
opě t
př íkladu v z ákl adní poloze , body x
a x a l 2 tedy dáno : x
= [ -2 ,
l
V =
p ř i čemž
O
O
O
O
O
-2
2
O
O
O
O
O
O
-2
2
1
1
1
1
1
1
že O ,
1 ,
a =
[ -2 ,
x
O
g = [ O , s
T
2
že
O ,
1
-2 ,
pozorova t e l O ]
]
a ú s e čka s koncovými
která čás t �se čky j e
-2
p ř e dpokl ádáme ,
lze p s á t ,
]
1
-2 ,
kry chle
viz obr . 7 . 2 . 2 . ,
chceme ur č i t ,
O ,
dána
T
2
je
zakryt a .
=
[ 2 ,
O ,
v
bodě
( x , y , -oo ) .
-2 ,
Je
]
1
T
P ak
T
T
d = [ 4 ,
O ,
O ,
O ]
T
Pak j e dno t l ivé koe f i c ienty ur čuj í c í výr az pro h . l z e ur č i t j ako : J T -3 ] 5 1 5 , -3 1 s = p = V q = V w
= V
d =
-8 ,
g = [ O ,
8
O
O
O ,
O ,
O ,
O -2
- 131 -
O ] 2 ]
T T
Ner ovno s t i h . > O l ze vyj ád ř i t rozepsáním takto : J - 8t > O 5 - 3
> O
+ 8t
1
> O
1
> O
5
- 2a
> O
- 3
+ 2a
> O
>I."
zokryt a' část
I I
>k2.
�--��-----------V I (2 , 2) �3 1
(-2, -2.)
------
I
I
I I
I
x
o
Obr . 7 . 2 . 2 Uve denou
s ou s t avu
nerovni c
lze
řešit
graficky ,
viz
obr . 7 . 2 . 3 ,
v pros toru a a t . J e z ř e j mé ,
že nerovni ce h > O
j s ou s p lněny pouze uvnitř oblas t i dané kar té zským souč inem : t E < 3/8 , To
znamená ,
že
5/8 >
daná
x
a E
ús e čka
pozorova t e l e p r o t E < 3 / 8 , pro t E < O ,
< 3/2 ,
je
nevidite lná
5/8 >
3/8 > a t E < 5 /8 ,
5/2 >
a vidite lné 1 >.
x
3 4
=
=
=
[ -1/2
O
-2
1
]
s + d. t =
1/2
O
-2
1
]
s + d. t
- 132 -
dané
části
pozice
j s ou t e dy
Pak l z e ur č i t j e dno t l ivé
koncové body ús eků takto : x
z
T T
t
� tt " -1é
,
.f. ne rovnIce
Obr . 7 . 2 . 3
b. netro.,,,ic e
t. narovnice
Př íklad 3 Uvažme nyní opět s te j nou kry chl i v zákl adní p o l oz e ús e čku , Xl
k t e r á j e opět dána svými koncovými body , [
=
1 ,
,
O
T 1 ]
-1 ,
a j inou
a to : O ,
-1 ,
1
v i z o br . 7 . 2 . 4 . Pak vektory s a d j s ou dány : s
=
[
1,
O
d
=
[ -1 ,
O ,
O ,
T O ]
p ř i čemž vektor 9 reprezentuj í c í polohu pozorova t e l e j e opě t : 9
=
Vektory p , p
=
q w
=
[
O
q ,
O , w
1 ,
T O ]
j s ou ur čeny takto :
,
3
1
1
3
[ 2
-2
O
O
O
[ O
O ,
O ,
O ,
V
s
=
[ -1
V
d
=
V
9
=
-2
T -1 ] T O ] T 2 ]
Ro zep s án ím vektorové ne rovn i ce h > O do s ložek dos t áváme : - 1
+ 2t
> O
3
- 2t
> O
-
1
> O
1
> O
3
2a
> O
1
+ 2a
> O - 133 -
]
T
Gr afi ckým ř e š ením opě t dos t áváme obl a s t hodnot p a r ame t r ů t a a , nhr
7
?
"
- fl
-t
�
�I
«,
lit
� ne. viditelno
i
�
J
I
. '"
1z
l'ost
r
cI. := 1jz
přidane.'
"�rovr/lÚ
1.
1�
�
��"""""'"
I� � .
��
�
hodnoty
�
1
t
tJ :: 'Iz.
-1
-
Obr . 7 . 2 . 5
hodno ta
parametru
nerov n lu
�
h
'Yz
s. nq.rov n ict.
� .
�
)(
že
2 . ne rovmúz
�""��''''�T a � � � ��,������,���,� _......-- 6 . �
t., =
z ř e j mé ,
omez�n/
t�1
Obr . 7 . 2 . 4 Je
=
t
l mus í
t
3/2
mus í
plat i t ,
být
že
odmítnut a ,
t E < O ,
neboť
1 >.
P ak
pro t e dy
vid i t e lná
část
t E < 1/2 ,
1 > a nevidite lná část j e ur čena hodno t ami p a r am e t ru
t t ak ,
viz
ús e čky
že t E < O
1/2 > .
x = s + d. t
Bod x
což j e výs l e dek o čekávaný ,
3
O ,
[ 1 /2 ,
=
ur čena
je
p a r am e t ru
hodnotami
j e pak ur čen takto : -1 ,
1 ]
T
viz obr . 7 . 2 . 4 .
Př íklad 4 P ř e dpokláde j me , a ús e čka , př ímka
která
p r o t íná
je
že
je
dána
dána
opě t
kry chle
svými koncovými
krychli
( j de
tedy
o
v
body x
př ípad ,
j edno t l ivých t ě l e s protínaj í , viz obr . 7 . 2 . 6 . ) , X
l
=
[
1 ,
2 ,
O ,
1
]
T
x
2
=
základní
poloze
tak, ž e a x l 2 kdy s e p l o chy
p ř i č emž : [ -1 ,
O ,
-2 ,
1
Pak vektory s a d j s ou dány : s
=
[
1 ,
0 ,
2 ,
1 ]
d = [
T
-
2 ,
O ,
-4 ,
O ]
p ř i čemž vektor 9 r e p r e z entuj í c í pol ohu pozorova t e l e j e opě t : 9 = [ O ,
O ,
1 ,
O ]
T
- 1 34 -
T
]
T
Vektory p , p q w
= =
=
q ,
w
j s ou ur čeny takto : 3
1
1
-3 ,
[ 4
-4
O
O
8
[ O
O
V
s
=
[ -1 ,
V
d
=
V
9
=
,
O
O
,
,
T 5 ] T -8 ] T 2 ]
-2
Ro z e p s áním vektor ové ne r ovnice h > O do s l ožek dos t áváme : - 1 3
-
+ 4t
> O
4t
> O
-
1
> O
1
> O
3
+ 8t
5
-
2a
> O
+ 2a
> O
-
8t
xz------t - 1
čóst n e v i ti,te /no" ( % tt /o-y t tt
čos t
'
tě/e �em)
procha'zej'G/ '
těkz sa,m
2 1------.....
Jt "
Obr . 7 . 2 . 6 Ře š e n í uve dené s oustavy nerovni c j iž není tak t r iviáln í , hodnoty par ame trů t a a j s ou m e z i s ebou svázány .
neboť
Gr a f i cké ř e š ení
j e uve deno na o br . 7 . 2 . 7 . Je úse čka
zř e j mé ,
že r o z s ah hodnot par ametrů t ,
nev i d i t e lná ,
je
ur čen
j ako
pro které
t E < 3/8 ,
vidite lné č ás t i j s ou ur čeny parame trem t takt o :
- 135 -
3 /4 >
j e daná a
ús eky
t E < 3 /4 ,
t E < o , 3/8 >
1 >
1
pfiolrl".' Itran ice o(
�O
t
Obr . 7 . 2 . 7 Př íklad
S
Uvažme opět danou kry chli a dvě ús e čky dané kon covými body x x a x 3x ' 1 2 4
Xl
kde [ -2
O
2
T 1 ]
x
x3 = [ - 1
1
1
T 1 ]
x
=
2 4
[
2
O
2 ,
= [
1
1
-1
]T
1 ,
T 1 ]
viz obr . 7 . 2 . 8 . Pak p r o ú s e čku x x j s ou vektory s a d dány 1 2 s
=
[ -2
,
O
,
2 ,
T 1 ]
d = [ 4
,
O ,
O
,
T O ]
p ř i č emž vektor 9 r epre zentuj í c í polohu pozorova t e l e j e opě t : 9 = [ O ,
O
I
1
,
T O ]
- 136 -
Vektory p , p = V q
=
V
w = V
q,
s = [ d
s
=
, -3
S
[ -8 ,
9 = [ O ,
Poznamene j me , W
w j s ou ur čeny takto :
� O
,
1 ,
8 ,
O
O
,
�
O
O
1 , O
, O
,
-3
S
O
O
, ,
]T ]T
T 2 ]
-2
že &
P
s
&
P
+ q
s
s
� O
a t e dy daná ús e čka j e z c e l a viditelná .
x
z.
Obr . 7 . 2 . 8 Uvážíme - l i ús e čku x 3 x4 , s = [ -1,
1 ,
1 ,
pak dos táváme pro vektory s a d :
]T
1
d = [ 2 ,
O
,
-2 ,
O
]T
p ř i čemž vektor 9 reprezentuj í c í polohu pozorova t e l e j e o pě t :
Vektory p , p = V q
V
w = V .
O
O
1 ,
]T
9
[ O ,
q ,
w j s ou ur čeny takto :
s = [ d
=
9
=
3
[ -
[ O ,
4
, O
3
-1 ,
-1
, 4
,
O
, ,
O
O
, ,
O
,
, ,
T 3 ]
.. 1 , 4
-2 ,
- 1 37 -
-
4
]T
T 2 ]
Nyní p l at í ,
že : &
&
a t edy zkoumaná ú s e čka j e t aké z ce l a vidi t e lná . Příklad 6 Pro s cénu
demon s t r a c i
Robe r t s ova
s e s távaj í c í
[ 109 ]
algor i tmu
se
pouze
uvažuj me
ze
dvou
j e dnoduchou kvádrů ,
obr . 7 . 2 . 9 . a .
8
10
12 4
I I
,�
�
:1
J. _ _ _ �
II
2
a
=
--
b
c
Obr . 7 . 2 . 9 1
2
3
4
5
6
7
8
x
O
2
2
O
O
2
2
O
Y
O
O
O
O
6
6
6
6
z
1
1
3
3
1
1
3
3
vr chol
s ouřadnice vr cholů t ě l e s a
1
9
10
11
12
13
14
15
16
x
1
3
3
1
1
3
3
1
Y
2
2
2
2
4
4
4
4
z
O
O
4
4
O
O
4
4
vr cho l
s ouř adnice vr cho lů t ě l e s a Tabulka 7 . 2 . 1 - 138 -
2
viz
hr ana vr cho l vr cho l
1 2
vrcho l
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
1
2
3
4
2
3
4
1
6
7
8
5
5
6
7
8
hr any t ě l e s a
hrana vr cho l
1
1 2
1
13
14
15
15
17
18
19
20
21
22
23
24
9
10
11
12
13
14
15
16
9
10
11
12
10
11
12
9
14
15
16
13
13
14
15
16
hr any t ě l e s a
2
Tabulka 7 . 2 . 2
n-úhe lník
hr any
n-úhe lník
hr any
1
2,
11,
6,
10
7
14,
23,
18,
22
2
4,
12,
8,
9
8
21,
20,
24,
16
3
5,
6,
7,
8
9
17,
18,
19,
20
4
1,
2,
3,
4
10
13,
14,
15,
16
5
3,
12,
7,
11
11
15,
24,
19,
23
6
1,
10,
5,
9
12
13,
22,
17,
21
t abulka n-úhe lníků ( s těn ) Tabulka 7 . 2 . 3
Předpokláde j me nyní , okol o osy y .
R
zx
že
danou s cénu oto č íme · ne j dř íve
M a t i c e rotace má tvar :
( »
cos >
O
- s in >
O
O
=
1
O
O
s in >
O
cos >
O
O O
Poté o t o č íme s cénu o úhe l ť} okol o o s y x .
yz
( ť} )
=
O
1 Tato
O
1
O
O
cos ť}
- s in ť}
O
O
s in ť}
cos ť}
O
O
O
O
1
- 139 -
>
O
pak r e p r e z entována mat i c í :
R
o úhe l
t r an s forma c e
je
cos 4>
s in 'lJ s in 4>
(j>
P o l o ž íme - l i např .
O
-rr / 6 a 'lJ
=
=
R ( rr / 1 2 , -rr / 6 )
o
Trans formuj eme - l i
O
- 0. 5
0. 966
- 0 . 224
0 . 483
0. 259
0. 837
O
1
pak dos t áváme :
- 0. 129 =
O
O
rr / 1 2 ,
0. 866
O
cos 'lJ cos (j>
s in 'lJ
O
O
- s in 'lJ c o s (j>
cos 'lJ
- cos 'lJ s in 4>
R ( 'lJ , (j»
s in 4>
o
O O
O
O
1
nyní
souřadnice bodů každého t ě l e s a , (l) (2) j s ou repre zentovány pomo cí mat i c x a x , dos t áváme :
které
R . Po pronásobení p ak -0 . 5
1 . 232
-0. 5
0. 232 - 1 . 5
1 . 232
0. 232 -1 . 5
- 0 . 224 -0 . 483 -0 . 933 -0. 672
5 . 57 1
5. 313
4. 864
5. 123
0 . 837
1 . 802
3 . 47 5
2. 510
2 . 389
3 . 355
5 . 028
4 . 062
1
1
1
1
1
1
1
1
0. 866
2 . 598
0 . 598 -1 . 134
0. 866
2 . 598
0 . 5 9 8 - 1 . 1 34
1 . 802
1 . 544
0 . 647
0 . 906
3 . 734
3 . 475
2 . 579
2. 838
1 . 001
1 . 967
5. 313
4 . 347
1 . 518
2 . 484
5 . 830
4 . 8 64
1
1
1
1
1
1
1
1
Nyní j e n e z bytné ur č i t r ovnice j edno t l ivých r ovin ohr ani čuj í c í ch daná
konvexní
tělesa,
která
j s ou
repre zentována
pomo c í
mat i c
( l )v a ( 2)v. Rovn i c e r oviny definované t ř emi body x , x , x j e dána výr azem : 3 1 2 y
z
l
Y1
z
2
Y2
3
Y3
x det
x x x
Je-li
pak
ax
+
by
z z +
1 1
l
=
1
2
O
1
3 cz
+
d
j edno t l ivé koe f i c ienty p l at í :
- 140 -
O
r ovnice
r ov iny ,
pak
pro
a = det
c = det
[ [
z
Y1
z
Y2
z
x
l
Y1
2
Y2
3
Y3
x
] ]
1
2
Y3
x
1
l
1
3
1 1 1
Definuj eme - l i vektory r ,
[ [
b = - det
d = - det
x x x x x x
s v pros toru E
s ouřadn i c í ch ) j ako
z
l
z
2
z
3
1
l
1
2
1
3
l
Y1
2
Y2
3
Y3
z z z
l 2 3
] ]
( niko l iv v homo genn í ch
3
a pak l z e ur č i t normálu p l o chy j ako
[
n = r x s = det
i r s
[
n = det
kde
i,
j,
s
x
i x x
2 3
Y Y
r s
z Y
k
j
- x - x
Y2 - Y 1 Y3 - Y1
1 1
z z
- z
1 - z ' 3 l
2
]
k j s ou j e dno tkové vektory ve směru osy x ,
s ' resp . s ' S ' x z y vektoru s , r e s p . r . Lze ukáza t ,
r
x
]
k
j
r , y
r ' x
r
z
j s ou
y,
z
j e dno t l ivé
s l o žky
že p r o normálu platí
n = a i + b j + C k p ř i čemž hodno t a d může být zí skána prostým dosazením l ibovo lného bodu x l e ž í c ího na r ovině do r ovnice roviny , ax + by + c z + d kde pouze d j e ne známá , d
- n
T
Ve zmeme- l i např . r = [ 0. 232, [ -1,
.
=
neboť
O
a l z e j i tedy vyj ádř i t j ako :
x
vr choly 2 ,
-0 . 9 3 3 , -0 . 45 ,
3,
3 . 475 ]
1 . 673 ]
7 po t r ans forma c i , T
- [
T
- 141 -
1. 232,
- 0 . 48 3 ,
p ak : 1 . 802
]
T
=
s = [ 0. 232, [-1 ,
4 . 864,
5 . 028 ]
5 . 347 , 3 . 226 ]
T
- [
1 . 232,
- 0 . 48 3 ,
1 . 802 ]
T
=
T
Pak pro normál ový vektor n do s táváme :
n � det
[
k
i
]
k
j - 0. 45
1 . 673 3. 226
5 . 347 Po vyč í s l ení n = [ -10. 3967 , Nyní
je
ne zbytné
druhého vr cholu .
1 . 553 ,
-5 . 797
]
ur č i t hodnotu koefi c ientu d ,
1 . 553,
-5 . 7 97 ]
- ( - 1 2 . 809 - 0 . 7 5 - 1 0 . 45
[
)
=
1 . 232,
- 1 0 . 3 9 67 x
+
r oviny
rotace
vyj adřuj í c í danou r ovinu , - 0. 866 x Lze nahl é dnout , rovinu .
+
byla
by
3. ,
byla
-0 . 483 ,
T 1 . 802 ] =
7 . m á p ak tvar :
5 . 7 97 z
1.. 5 5 3 Y
r ovn i c e
a t r ans formace
d o s a z ením
2 4 . 009
Výs l edná r ovn i c e r oviny ur čené body 2 . ,
by
např .
Pak
d = - [ -10. 3967 ,
Pokud
T
24 . 009
+
ur čena
před
apl ikována
na
=
O
p o o t o č en ím koe f i c ie nty
pak by rovnice r oviny m ě l a tvar :
0. 129 Y
- 0 . 48 3 z + 2
O
=
že obě výš e uvedené rovnice repre zentuj í s t e j nou
Mat i c e
reprezentuj í c í
daná
tělesa
po
a p l ikaci
t r an s forma c e maj í tvar :
(
1
)v' = (
1
) v . R- l ( � , 4»
Po p r onásobení do s táváme
(1
)v' =
0. 866
0. 129
-0. 129
-0. 966
-0. 483
0 . 483
-0. 259
2
(
2
)v' =
O
-0. 866
O
0. 5
-0. 5
0. 966
0 . 224
-0. 224
0. 259
-0 . 8 37
0 . 8 37
O
6
O
3
-1
O
O
0. 5
-0. 5
-0 . 86 6
0. 866
0. 129
-0. 129
-0. 966
0. 966
0 . 224
-0. 224
-0 . 483
0 . 483
-0. 259
0. 259
-0 . 8 37
0. 837
3
-1
4
- 1 42 -
-2
4
O
T
T
p ř i čemž p l o chy j s ou J 1 Z správně orientovány . ( Tuto o r i e n t a c i mus í zaj i s t i t
řeš itel . )
Nyní
je
t ř e ba
nal é z t
zakryty j inými p l o chami tého ž t ě le s a , T [ O , O , 1 , O ] . Pro tes tova cí bod x
= [ O ,
p
O ,
-1 ,
O ]
p l o chy ,
kte r é
j s ou
j e - l i " pozorovat e l v bodě
T
do s táváme : x (2)
V'
. X
[ 0 . 48 3 ,
- 0 . 483 ,
0. 259,
-0. 259,
0. 837,
-0. 837 ]
= [ 0 . 48 3 ,
- 0 . 48 3 ,
0. 259,
-0. 259,
0. 837,
-0. 8 37 ]
p
p
Je t e dy z ř e j mé , 10,
že p l o chy 2 ,
4,
hr any ,
které
nevi d i t e lné . ur č i t ,
j s ou
záporné .
Z
neboť koe f i c i enty v e
tab . 7 . 2 . 3
lze
j s ou průs e čni cemi nevidite lných p l o ch P l o chy 2 a 4 maj í spole čnou hr anu 4 .
ž e hr any 1 ,
tornu ,
9,
že
13,
16,
nalézt a
j s ou
ty též
Ana l o g i cky l z e
j s ou nevidite lné . Výs l e dek " po ods t r anění nev idite lných hran je znázorněn na obr . 7 . 2 . 9 . b . Vzh l e dem k
4,
T
6 z prvního t ě l e s a a p l o chy 8 ,
1 2 z druhého t ě l e s a j s ou nevidite lné ,
vyp o č tených vekt o r e ch
T
p l o chy
21
tělesa
se
p r o t ína j í ,
k os tatním p odmínkám př idána podmínka a � O . \
budou t e s továny hr any prvního
vyber eme hr anu druhou ,
tj .
t ě l e s a vůč i
mus í
být
P ř e dpokl ád e j me ,
že
t ě l e s u druhému a
že
s p o j n i c i vr cholu 2 a 3 .
Lze ukáza t ,
že x = s + d. t = [
1 . 232,
- 0 . 483 ,
T
- [ -1,
1 . 802,
1 ]
1
1
4
-2 ,
[ O
O
O
O ,
-0. 45,
1 . 673,
O ]
T
.t
Pak s = [ d Vzhledem k tornu ,
3 -2
že pozorovate l j e v bodě
pohl e du j e 9 = [ O ,
O ,
1 ,
O ]
( x , y , oo )
a t e dy vektor
T
pak 9 = [ -0 . 483 , Tes t ,
0 . 483 ,
-0. 259 ,
0. 259 ,
zda daná ú s e čka j e z c e l a viditelná ,
W .
J
:5
O
&
p . :5 O J
&
- 1 43 -
p.
J
-0 . 8 37 ,
0. 837
daný podmínkami : +
q . J
:5
O
]
T
není
s p lněn
čás t i .
pro
žádnou
Roze p s áním
rovinu .
vektorové
Je
t e dy
nerovnice
nutné h
>
nalé z t
zakryté
dos t áváme
O
pro
j e dnot l ivé s l o žky vztahy : 1
- 0 . 483 a > O
1
+ 0 . 483 a > O
4
- 0 . 259 a > O
- 2
+ 0 . 259 a > O
3
- 2t
- 0 . 837 a > O
1
+ 2t
+ 0 . 837 a > O
Řešení t é to s ous t avy neexistuj e , viditelná,
neboť
neexis tuj e
zakryta druhým t ě l e s em . vůč i
tělesu
druhému
Poznamene j me j e š tě , 4,
a t e dy zvo l ená ús e čka j e z c e l a
žádná
část
ús e čky ,
která
by
byl a
Výs l e dky t e s tů pro hr any prvního t ě l e s a j s ou
uvedeny
v
tab . 7 . 2 . 4
a
tab . 7 . 2 . 5
že vektory g a w j s ou kons tantní a hr any 1 ,
9 j s ou j i ž vyne chány , neboť j s ou z c e l a nevidite lné . Hrana
1 0 j e neviditelná pro t E < 0 . 2 4 4 , 0 . 6 6 7 > ,
( 1 . 232, 0. 815, 2 . 150) zakryta p r o
do
bodu
( 1 . 232, 3 . 381, 2 . 837 ) .
t E < 0 . 282, 0 . 6 67 > ,
tj .
od bodu
tj .
o d bodu
Hr ana
11
je
( 0. 232, O. 703, 3 . 913 )
do bodu ( 0 . 2 3 2 , 2 . 9 3 3 , 4 . 5 1 0 ) . Hodno t a
a = O
ur čuj e
body ,
odpovídá hodno t ě parametru t Tyto
hodno ty
t
a ( 1 . 232, 3 . 381 , 2 . 837 )
=
kde
hrana\ t ě l e s o
0. 333 a t
odpovídaj í pro hr anu
10
a ( 0 . 2 3 2 , 2 . 9 3 3 , 4 . 5 1 0 ) pro hr anu 1 1 .
=
p r o t íná ,
což
0 . 6 6 7 p r o o b ě hr any .
bodům
( 1 . 2 3 2 , 1 . 44 9 , 2 . 3 2 0 )
a bodům
( 0 . 2 3 2 , 1 . 00 1 , 3 . 993 )
Vše chny čtyři body j e nutné
uložit j ako body ur čuj í c í protnut í druhého t ě l e s a hr anami t ě l e s a prvního . hrana vr choly
s
T
d
T
2
2 - 3
[ 1 . 2 3 2 , - 0 . 48 3 , 1 . 8 0 2 , 1 ]
[ - 1 , -0 . 45, 1 . 67 3 , 0 ]
3
3 - 4
[ 0. 232, -0. 931, 3 . 46, 1 ]
5
5 - 6
[ - O . S , 5 . 57 1 , 2 . 389, 1 ]
[ - 1 . 732, 0 . 259, -0. 966, 0 ]
6
6 - 7
[ 1 . 232, 5 . 313, 3 . 355, 1 ]
[ - 1 , - O . 448 , 1 . 6 7 3 , O ]
7
7 - 8
[ 0 . 2 3 2 , 4 . 8 6 4 , 5 . 02 8 , 1 ]
8
8 - 5
[ - 1 . S, 5 . 123, 4. 062, 1 ]
[-1 . 732, O. 2?9, -0. 966, O ] [ 1 , 0 . 44 8 , - 1 . 6 7 3 , 0 ]
10
2 - 6
[ 1 . 2 32 , - 0 . 483 , 1 . 802, 1 ]
[ 0, 5 . 796, 1 . 553, O ]
11
3 - 7
[ 0 . 2 3 2 , -0 . 9 3 1 , 3 . 47 5 , 1 ]
[ 0, 5 . 796, 1 . 553, O ]
12
4 - 8
[ - 1 . 5 , -0 . 672, 2 . 5 1 0 , 1 ]
[ 0, 5 . 7 9 6 , 1 . 5 5 3 , O ]
Tabulka 7 . 2 . 4 - 1 44 -
[ 1 . 7 3 2 , -0 . 2 5 9 , 0 . 9 6 6 , O ]
hrana vr cho ly
p
T
q
T
p o známka
2
2 - 3
[
1 , 1 , 4, -2, 3, 1 ]
[ 0, 0 , 0 , 0 , -2 , 2 ]
(1)
3
3 - 4
[
1 , 1 , 4, -2, 1 , 3 ]
(1)
5
5 - 6
[
3, -I, -2, 4, 3, 1 ]
[ 2 , -2 , 0, 0, 0, 0 ] [ -2, 2, 0, 0, 0, 0 ]
(2)
6
6 - 7
[
1 , 1 , -2 , 4, 3 , 1 ]
[ 0, 0 , 0 , 0 , -2 , 2 ]
(2)
7
7
[
1 , 1 , -2 , 4, 1 , 3 ]
(2)
8
8 - 5
[ 3 , - I , -2, 4, I , 3 ]
[ 2 , - 2 , O ., O , O , O ] [ 0, 0 , 0 , 0 , -2 , 2 ]
(2)
10
2 - 6
[
1 , 1 , 4, -2, 3, 1 ]
[ 0, 0, -6, 6 , 0, 0 ]
(3)
11
3 - 7
[
1 , 1 , 4, -2, 1 , 3 ]
[ 0, 0, -6, 6 , 0, 0 ]
( 4)
12
4 - 8
[ 3 , - 1 , 4 -2, 1 , 3 ]
[ 0, 0, -6, 6 , 0, 0 ]
(1)
8
-
(1)
úp lně vidite lná - úplným ř e š ením
(2)
úp lně vidite lná
( 3)
P3 + q3 < O hrana j e zakryta pro t E < 0 . 2 4 4 , 0 . 6 6 7 > , obr . 7 . 2 . 9 . a .
(4)
hrana j e zakryta pro t E < 0 . 2 8 2 , 0 . 6 6 7 > ,
w
3
< O
P3 < O
obr . 7 . 2 . 9 . b .
Tabulka 7 . 2 . 5 Por ovnáme - l i prvému ,
analogi cky
pak pouze
hr ana
17
hr any je
druhého
čás te čně
tělesa
\
vůč i
nevidi t e lná .
t ě l e su
Tab . 7 . 2 . 6
a tab . 7 . 2 . 7 ukazuj í výs l e dky j e dno t l ivých kroků . hr any
T
T
vr cho ly
s
14
10 - 11
[ 2 . 5 9 8 , 1 . 544, 1 . 967, 1 ]
[ -2 . 0, -0. 897 , 3 . 346, 0 ]
15
11
12
[ 0 . 5 9 8 , O . 647 , 5 . 3 1 3 , 1 ]
[-1. 732, 0. 259, -0. 966, 0]
17
13 - 14
[ 0 . 8 6 6 , 3 . 7 34, 1 . 5 1 8 , 1 ]
[ 1 . 7 32 , -0 . 2 5 9 , 0 . 9 6 6 , 0 ]
18
14 - 15
[ 2 . 5 9 8 , 3 . 47 5 , 2 . 4 8 4 , 1 ]
[ - 2 . 0 , �0 . 8 9 7 , 3 . 346, O ]
19
15 - 16
[ 0 . 598, 2 . 579, 5 . 830, 1 ]
[ - 1 . 7 3 2 , 0 . 2 5 9 , -0 . 9 6 6 , 0 ]
20
16 - 13
[ - 1 . 1 34, 2 . 8 3 8 , 4 . 864, 1 ]
[ 2 . 0, 0 . 897 , - 3 . 346 , 0 ]
22
10 - 14
[ 2 . 5 9 8 , 1 . 544, 1 . 967, 1 ]
[ 0, 1 . 932 , 0 . 5 1 8 , 0 ]
23
11 - 15
[ 0 . 5 9 8 , O . 647 , 5 . 3 1 3 , 1 ]
[ 0, 1 . 932, 0. 518, 0 ]
24
12 - 1 6
[ - 1 . 1 34 , 0 . 90 6 , 4 . 347 , 1 ]
[0, 1 . 932, 0. 518, O ]
-
d
Tabulka 7 . 2 . 6
- 1 45 -
T
T q
p o zn .
hr any
vr cho ly
14
10 - 1 1
[ -1 , 3 , 4, 2, 3, -1 ]
[ 0, 0, 0, 0, -4, 4 ]
(1)
15
11 - 12
[ - 1 , 3 , 4, 2 , - 1 , 3 ]
[ 2, -2, 0, 0, 0, 0 ]
(2)
17
13 - 14
[
[ -2 , 2 , 0 , 0 , 0 , 0 ]
( 3)
18
14 - 15
[ -1 , 3 , 2, 4, 3, -1 ]
[ 0, 0, 0, 0, -4, 4 ]
(1)
19
15 - 16
[ -1 , 3 , 2, 4, -1, 3 ]
[ 2, -2, 0, 0, 0, 0 ]
(2)
20
16 - 13
[
1 , 1 , 2, 4, -1, 3 ]
[ 0 , 0 , 0 , 0 , 4 , -4 ]
( 4)
22
10 - 14
[ - 1 , 3 , 4, 2, 3, -1 ]
[ 0, 0, -2, 2, 0, 0 ]
( 1)
23
11 - 1 5
[ - 1 , 3 , 4, 2, -1 , 3 ]
0, 0, -2, 2, 0, 0 ]
( 1)
24
12 - 16
[
[ O , O ·, - 2 , 2 , O , O ]
(2)
P
1 , 1 , 2, 4, 3, -1 ]
1 , 1 , 4, 2, -1 , 3 ]
( 1 ) z c e l a vidite lná
w
( 2 ) z c e l a vidite lná
w
< O
1
< O
5
P5 < O
t E < O ,
( 3 ) č á s t e čně zakrytá
P l + q1 < O P 5 + q5 < O
Pl < O
0. 211 >
( 4 ) p r o t ínaj í c í hrana zakryta t E ( 0 . 2 5 ,
1. 0 >
Tabulka 7 . 2 . 7 z
tab . 7 . 2 . 7
t E <0, 0. 211>,
vyp lýv á ,
že
což
pro
odpovídá
Hrana
t = 0. 25. ús e č ce
Je
z
( 0 . 8 6 6 , 3 . 7 34 , 1 . 5 1 8 ) ,
bod ,
dané
kde
pro
hodno ty
( 0 . 866, 3 . 734, 1 . 518) p ř e dní
s těnu
p rvého
t E <0. 25, 1 . O> ,
pro
( - 0 . 6 3 4 , 3 . 00 2 , 4 . 0 2 8 )
viz obr . 7 . 2 . 1 0 . b .
Bod
do
což bodu
( -0 . 6 34 , 3 . 0 6 2 , 4 . 028 )
v ni chž hr ana p r o t íná n ě j akou s těnu .
dos t áváme
protíná
z akryt a
protíná
zakryta
bodu
s ous t avy
hr ana
je
bodům
20
t e dy
j e uložen do s e znamu bodů , Řeš ením
17
odpovídá
a ( 1 . 232, 3 . 679, 1 . 722 ) . tě l e s a
hrana
j e š tě
p l o chu
pro
a
t=O . 7 5
který
a
a=O
má
dal š í
s ouřadn i c e
( 0 . 366, 3 . 5 1 1 , 2 . 355 ) . Vyp o č t ené
kde
body ,
repre zentovat p omo c í mat i c e
=
x
1 . 232
0 . 232
0. 232
-0. 634
0. 366
1 . 449
3 . 381
1 . 001
2. 933
3 . 062
3. 511
2 . 320
2 . 837
3 . 993
4. 510
4 . 028
2 . 355
Nal e zení hr an ,
1
1
způs obem
ur č i t
t ak ,
s každým ( takto z ískáme 1 5 hran ) , j ako
t e s tu
( ř e š ení
na
1
1
1
které v znikaj í j ako průs e čn i c e rovin dvou p l o ch ,
j ednodu chým
pos tup
lze
x.
1 . 232
1
lze
p l o chu ,
protínaj í
hr any
hr any je
dané
při
pone cháno
že
každý
bod
S p O ] lme
př i čemž apl ikuj eme anal o g i cký
zadání na
obr . 7 . 2 . 1 0 . c . - 1 46 -
těles .
č tenář i )
Výs l e dek je
úplného
uve deno
na
OL
2
�
®
O(
2
CD
, CD @
oblost zakryt,'
A
o
t
�šen( p"o hro.,u -Itl
fe�m' FfT) hranu 11
ex
2.
oblast zakryt/'
1
t
o
t
Obr . 7 . 2 . 1 0
- 147 -
------- -�
--
7. 3 Z
buf fer
-
J e dn ím z n e j j ednoduš š í ch algor i tmů pro j e t zv .
ř e š ení v i d i t e lno s t i
z-buffer algoritmus , někdy t é ž nazývaný hloubkový buffer
( dep th-buffer ) . frame - buffe r u ,
Jde
v
pods tatě
o
zobe cnění
p r in c ipu
neboť kromě vlas tní repre zentace obrazu j e nav í c
použ íváno j e dno p o l e ,
j ehož obsah ur čuj e vzdáleno s t n e j b l i ž š ího
bodu v
p r o s t oru ,
který
roviny ,
v i z o br . 7 . 3 . 1 .
se
promítne
na
danou
po z i c i
p r omí t a c í
rro�íta c\'" rO Vlha
.--1f. -z
Obr . 7 . 3 . 1 Zaznamenává s e pixe lů
dané
t e dy ne j en intenzita ,
s cény ,
pozorova t e l e .
Obrovskou
j ednoducho s t , ( s l o ž i té k p o č tu
která
tvary
j ednoduš e ,
ale
p l o ch
výp o č tová
ke
způs obu
každého
n-úhe lníka
dos ažená
a
j e j i ch
s l ožitos t však
zpracování neúměrně
je
je tj .
ve lká čas
ve lký
j e dno t l ivých
v z d á l en o s t
algori tmu
vše chny
n-úhe lníků , je
barva ,
toho to
do tyky
algor i tmu
Vzhle dem
výhodou
ř e š it
zpracovávaných
j e dnoduchos t
ne j menš í
umožňuj e
p l o ch ,
p r l cemž
též
resp .
mo žné
je
l ineární o(n) .
p o t ř e bný při
j eho
komp l ikace
průs e č íky )
paměťová
od
velmi
vzhl e dem Cenou
za
nár o čno s t .
ke
použ i t í
z p r a c ování bě žných
hardwar ových p r o s t ř edků . Označ íme - l i I ( x , y ) intenzitu či barvu pixelu na p o z i c i ( x , y ) a
Z ( x, y )
vzdáleno s t
pozorovate l e ,
který
nej bližš ího se
algo r i tmus zap s at např .
promítne
bodu do
pomo cí alg . 7 . 3 . 1 . - 1 48 -
zpracované bodu
( x, y) ,
s cé ny lze
od celý
1.
Nas tav
I (x, y)
frame -buffer
Vx, y na barvu pozadí obrazovky )
a
Vx, y
( I (x, y )
nas t av
může
Z ( x, y )
být p ř ímo
na
ne j vě t š í
možnou vzdáleno s t . 2.
P r o v š e chny p ixe ly , na které s e zobrazí daný n-úhe lník : a ) vypo č t i z-ovou s ouřadn i c i , b)
j e - l i hodnota z
<
Z (x, y ) ,
pak nas tav Z ( x , y )
na hodnotu
z a nas t av p ixe l I ( x , y ) na hodnotu odpovída j í c ího j as u či barvy bodu ( x , y ) . Algor i tmus 7 . 3 . 1 Ne spornou výhodou algoritmu j e , s truktury
pro
ukl ádání
že nepo t ř e buj e
dat .
Potřebuj e
o zpr acovávaném n-úhe lníku . T o znamená, být v zásadě l ibovo lný .
žádné
pouze
dodate čné informa c e
že p o č e t n-úhelníků může
Na druhé s t r aně j e v š ak do s ud nutné m í t
n a z ř e t e l i vys oké pamě ťové nár oky . Označíme - l i : r
1
n.
r , r o z l i š ovací s chopno s t na výs tupu ve směru o s y y resp . y,
resp .
x '
x,
p o č e t bytů nutných k reprezentaci j e dné hodnoty barvy č i intenzity počet
nutných
bytů
k
repre zent a c i
j e dné
hodnoty
pak ce lková požadovaná kap a c i t a pamě t i j e
v Z - buffe ru, dána vztahem : M Pro r
x
r
=
M Je
t e dy
y =
r
=
r
x
1 024 , n .
1
=
1024
1
1
=
1 024
z ř e j mé ,
že
(
n
n
+
r
)
r 5
=
1 + 5 )
uvedené
obrazu
k s e gmen t a c i
( n.
y
dos t áváme : 6 MB
=
paměťové
nebo
použ i t í
nár oky vně j š í
pove dou
p r o z a t ím
p amě t i .
Ni cméně
har dwarová r e a l izace j e ve lmi j ednoduchá . Vzhledem ke
způs obu
pro danou hodnotu
(x, y )
zpracování
je
nezby tné
ur č i t z-ovou s ouřadni c i .
j e p r o každý n-úhe lník k dispo z i c i r ovnice ve tvaru : n
T .
x
-
d
=
O
tj . a x
+
b Y
+ c z
+
-
d
=
149 -
O
co
ne j rychl e j i
V p ř ípadě ,
že
odpov ídaj í c í r oviny
pak p r o c * O l z e p s á t : z Použ i j eme - l i kons t antní níž
- ( a x
=
+
myš l enky
pro
b Y
řádkové
daný ř ádek,
z p r a c ovávaný
+
) /
c
konve r z e ,
l ze
n-úhe lník
d
ze
le ž í ,
tj .
znalos t i a
hodno t a
r ovn i c e
s ouřadn i c e
y
je
roviny ,
na
p rvního
p ixelu
( x ' Y , z ) určit s ouřadnici z takto : 1 l 1 z J e - l i 6x
- {
=
1 ,
=
a
( X
uve deného
6x )
+
b .
+
Y
d )
/ c
pak po dosazení a úpravě dos t áváme : z
Z
+
l
z
=
vyp l ývá ,
- a / c
1
že
výpo č e t
z-ové
s ouřadn i c e
je
velmi
j ednoduchý . Příkladl Ap l ikuj t e uve dený pos tup na kvadr a t i cké p l o chy x
T
O
x
A
Rozeps áním do s l ožek dos t áváme : a
11
x
2
+ a
22
y
2
+ a
33
z
2
+ 2a
+ 2a Pro kouli obe cně p l a t í : { x - X Vzhledem
k
)
s
2
+ { y - Y ) s
tomu ,
že
14 2
hodno ta
12
xy + 2a
x + 2a
24
23
y + 2a
+ { z - z ) s y
se
yz + 2 a
pro
2
+ a
34
- r
daný
13
2
=
xz 44
=
O
O
ř ádek
nemění ,
lze
psát :
kde k
y - Y j e kons tanta pro daný ř ádek . s Pak pro body X a x l z e p s á t : o l 2 2 2 2 - r = O + k + ( z - z ) { X o - Xs ) s O 2 2 - r = O - z ) s Je- l i 6x
=
1,
tj . z
x
l
- X = 1, o
pak ode č tením r ovni c do s t aneme ,
že :
2 2 = Z o + 2 Xo - 1 l
Analogi cky pro krok n+ 1 dos t áváme : z Vzhle dem
k
vzdáleno s t
2 n+ 1
=
z
2 + 2 x - 1 n n
monotónno s t i j inou
lze
me t r ikou
a
v
někt erých
vyhnout
odmo cniny . - 1 50 -
se
p ř ípade ch t ak
nahr a d i t
použ i t í
funkce
7 . 4 A l go r i tmus ma l í ř e Pamě ťové zredukovat ,
nár oky
p ř e dcháze j í cího
algor i tmu
lze
pods t a tně
pokud by bylo možné ur č i t vhodné pořadí vyk r e s l ování
j e dno t l ivých
p l o ch
t akové ,
aby
pos tupným
p ř ekr e s l ováním
vzdáleně j š í ch p l o ch p l o chami b l i ž š ími k pozorovate l i byl z í s kán výs l e dný
o čekávaný
výs tup .
Tento
pos tup
resp .
l i s t pr ior i ty ) .
mal í ř e ( painter ' s a lgor i thm , tento
a l g o r i tmus
obr azu ,
která
z-bufferu . určení plo chy
vyžaduj e
je
pods t atně
Snížení
s p r ávného p r o t ínaj í
( obr . 7 . 4 . 1 . b ) ,
je
pouze
menš í ,
požadavků
pořadí
na
paměť
v
v š ak
k
se
a l go r i tmus
Je z ř e j mé ,
k
vede V
a l go r i tmu
k
p o žadavku
p ř ípadě ,
zakrývaj í
dělení
že
r e p r e z en t a c i
p ř ípadě
p l o ch .
nebo
p ř i s toup i t
nazývá
ur čenou
než
zobrazování
( obr . 7 . 1 . 4 . a ) nutné
pamě ť
se
p l o ch ,
že
se
navzáj em což
vede
k j i s té komp l ikaci j inak j e dnoduchého algoritmu .
b
a Obr . 7 . 4 . 1 Pokud
není
nutné
p ř i s toup i t
k
dělení
p l o ch ,
v zás adě s e tř í d i t podle z-ových s ouř adni c ,
p ak
lze
p l o chy
p ř i čemž kr i t é r iem p r o
tř ídění j e por ovnání z-ových s ouř adnic a výs l e dek t e s tu p ř ekry t í ( t zv .
ove r l ap t e s t ) . - 151 -
P r o b l ém
lze
pak
v uve deném poř adí
rozdě l i t
na
( v obr . 7 . 4 . 2
nás leduj í c í
p ř e dpokládáme
kr oky p l o chy
p r ováděné r ovnobě žné
s rovinou xy ) : 1.
Por ovne j p l o chy P . a P . . J e - l i z . < z. , pak p l o cha P . s e 1 1 l J min J max bude kr e s l i t p ř e d p l o chou P ' viz obr . 7 . 4 . 2 . a . j
2 . V p ř ípadě ,
že p l o chy P . a P . s e nepř ekrývaj í v průmě tně ( xy ) , 1 J p ak j e j i ch pořadí j e l ibovolné .
3.
J s ou- l i v š e chny vr cho ly p l o ch P . ve k t e r é
l e ží p l o cha P . , J v i z o br . 7 . 4 . 2 . c a 7 . 4 . 2 . d . 4.
V
p ř ípadě ,
j e dnoznačně
že
výš e
pořadí ,
pak
na j e dné s tr aně od roviny ,
lze ur č i t pořadí kr e s lení p l o ch ,
uvedené
daných p l o ch v průmě tně mimobě žkami )
1
je
t e s ty
nezbytné
nedovoluj í nalézt
r o zhodnout
průs e č ík
( hrany v pros toru mohou
obe cně
hr an být
a pomo c í s ouřadnic z zdánl ivého průs e č íku ur č i t
poř adí k r e s lení p l o ch .
y+-------.
x
x
b
a
� .......-----+
� +-------� l'
\ 1'WIG\ l(,
'1. .J Mi "
lj
"'t:I�
x
��
-
� -� -
c
d Obr . 7 . 4 . 2 - 152 -
Ke zry chl ení zpracování l z e využít t e s tů č i informa c í , - konvexní n-úhe lníky ,
které maj í spole čnou hr anu ,
např . : se
nemohou
p r o t ínat ap l ikací
min - max
t e s tu ,
který
n-úhe lník ohr ani č íme obdé lníke m , s
o s ami
s ouř adného
ohr ani čuj í c ími
sys tému .
obdélníky
a
spočívá
t om ,
že
daný
j ehož hrany j s ou r ovnoběžné
Te s ty v
v
provádíme
př ípadě ,
že
ne j dř íve se
nad
p r o t ínaj í ,
t e s tuj eme v l as tní n-úhe lníky .
Ukázka výs l e dku algoritmu a použitím t e chniky vzorů ( kap . B . 1 ) Obr . 7 . 4 . 2
- 153 -
7 . 5 Algo r i tmy řádkové konverze Al gor i tmy zal ožené na řádkové konver z i ope ruj í v obrazovém pros toru a [ 139] .
j e j i ch různé modifikace
byly pops ány nap ř .
V pods t a t ě používaj í r e p r e zentace n-úhe lníků ,
j iž nyní kap . 3 ,
obe cně v pros toru ,
p ř i č emž
obsahovaly s céně
též
j s ou
je
nutné
t r o j úhelníkových
t zv .
modifikovat
informa ce
o bvykle
pomo cí
o
datové
s ouřadn i c i
reprezentovány
p l o ch .
V
zás adě
ř á dkové
z.
konve r z e ,
J e dno t l ivé
možné
konvexní c h , a l go r i tmy
Z hledi ska nár oků na pamě ť a tř ídění l z e ř í c i , konv e r z e
j s ou
j i s tým
t ak , p l o chy
konverze modifikovat i pro obe cné par ame t r i cké p l o chy , řádkové
kompromi s e m
[ 19] ,
k t e r é j s ou
s truktury
pomo c í
je
v
viz aby ve
resp . ř ádkové
viz [ 1 6 ] .
ž e a l g o r i tmy
me z i
a l go r i tmem
z-buffe ru a algo r i tmem malíř e . Algor i tmy založené na ř ádkové konverzi používaj í obvyk l e p r o tabulku hran ( tabulka ET ) datovou s trukturu obsahuj í c í : - s ouřadn i c i x vr cho lu s ne j menš í s ouřadn i c í y - s ouřadn i c i y druhého vr cho lu hr any - inv e r zní smě r n i c i ( př evrácená hodnota ) dané hr any - o dkaz na n-úhelník , ke kter ému hrana p ř inále ží .
a
b Obr . 7 . S . 1
Kromě
t abulky
hran
je
pak
j eště
nutná
t a bulka
n-úhe lníků
PT
obs ahuj í c í : koe f i c ienty r ovni c e r oviny , v níž n-úhe lník l e ž í informace
o
barvě ,
resp .
j asu
intenz i ty - 1 S4 -
pro
výpo č e t
barvy ,
resp .
informa c i
udáva j í c í ,
zda
daný
n-úhe lník
je
aktivní
při
kr e s l en í čás t i daného ř ádku . Je z ř e j mé ,
ž e p ř i kr e s lení ř ádku a žádné komp l ikace nena s t áva j í
a práce
tabulkou hran
s
a
s e znamem
akt ivn í ch hran
je
obdobná
pos tupu v kap . 3 .
V p ř ípadě zobrazování ř ádku � vš ak j i ž p ř ímé
použ i t í
j is tým
vede
kon t r o l ována byly
úse čky
k
p ř í s lušno s t PQ
a
uvažování barvy , Je
t e dy
naj í t
RS ,
resp .
nutné ,
dal š í
komp l ikacím ,
aby
hr anu
hrany
což
ne odpovídá
v
rámci
dané
p ř í s luš e j í c í resp .
p ř i čemž
p ixelů
daného
hrana
by
n e by l a
p ak b y výs l e dkem
skute čnos t i ,
p ř i č emž
při
intenzity by výs l e dky byly z c e l a matouc í .
barvu ,
neboť
pokud
k n-úhe lníku ,
ur č i t ús e čku PR, aktiva c i
neboť
p r o cháze j í c í
datové
k
s truktury
danému
byl o
n-úhe lníku .
mo žné
P ak
lze
intenz i tu odpovídaj í c í ch p ix e l ů ,
bodem
n-úhe lníka Q
není
ukonč íme
s oučás t í
v
bodě
Q,
zobrazovaného
n-úhe lníka . Je dnoduchou dos t áváme
t zv .
vidite lnou
modifika c í
řádkový z -buf fer
čás t
z-buffe ru .
n-úhelníků
Datová
v
s truktur a
a
s truktur
datových
algor i tmus daném
[ 1 09 ] ,
ř ádku
obsahuj e
pak
který ur čuj e
pomo c í
pro
algor i tmu
každý
a l go r i tmu pár
hran
n-úhe lníka informace : x x
levý průs e č ík n-úhe lníka s daným ř ádkem
l
r �x
�x z
pr avý průs e č ík n-úhe lníka s daným ř ádkem p ř írůs tek v o s e x pro l evý průs e čík p r o nás l e duj í c í ř ádek
I
p ř írůs tek v o s e x pro pr avý průs e č ík pro· nás l e duj í c í ř ádek
r
hl oubka n-úhe lníka ve s tř e du pixelu odpovídaj í c ího bodu x
l �z
c*O �z = - a / c x x � Z p ř írůs tek z p ř i p ř e chodu n a nás leduj í c í ř á dku y
Pro
p ř írůs tek z v r ámci řádky
z j e dnoduš ení
ř ádek ,
ope rac í ,
které
je
nutno
r e a l i zovat
j e vhodné daný n-úhe lník ro zdě l i t t ak ,
protínaj í c í kon cové
ur č i tou
ř ádky ,
viz
množ inu
ř ádků
obr . 7 . s . l . b .
Pak
měly je
p o č á t e čn í
udr žovat
akt ivní ch hr an uspoř ádaný j en vzhl edem k hodno t ě x . l Výhodou uvedeného pos tupu j e pak menš í nár o čnos t neboť
je
nutné
repre zentovat
z-buffer
pouze
každý
aby dvoj i ce hran
s t e j né nutné
pro
l
pro
a
s e znam
na p amě ť ,
j e den
ř ádek .
Jis tou výhodou a l gor i tmu založeného na ř ádkové konv e r z i j e j eho možná modifika c e pro př ípad ř e šení problému zakrytých hr an .
Lze
j e j t aké modif ikovat pro př ípad parame t r i cky zadaných p l o ch ,
tj .
- 155 -
x = x ( u ,
v )
y = y ( u ,
v )
z = z ( u , v ) Pro daný ř ádek y = kons t l z e ur č i t ř e š ením rovn i c hodnoty u a v , neboť p l at í ,
že : u = u ( x ,
y )
v = v ( x ,
y )
př i čemž hl oubku z l ze obdr žet vyhodno cením r ovn i c e z = z ( u ,
=
v )
konsL
Obr . 7 . 5 . 2 J i s tou
nevýhodou
nume r i cky ,
viz
je,
[ 16 ] ,
že
uvedené
[ 143 ] ,
rovnice
p ř i čemž
je
je
nutné
volit opatrně vzhl e dem ke s tabilitě ř e š ení .
ne zbytné nume r i cké
Algor i tmus
řešit m e t ody
l z e pak
hrubě zap s a t t akto : pro každý ř ádek y pro každý p ixe l x na řádku p r o každou p l o chu protínaj í c í ř ádek v x : Řeš r ovn i ce : u = u ( x , y )
v = v ( x ,
y )
Vyp o č t i hloubku pomo c í : z = z ( u , v ) Ur č i v i d i t e ln o s t p l o chy v bodě ( x , y ) a zobraz j e j Algor i tmus 7 . 5 . 1 Řeš ení uve deného problému j e možné i pomo c í j iných p r i n c ip ů ,
viz
[ 1 5 0 ] , k t e r é s e ví ceméně b l í ž í te chnice pos tupného d ě l en í p l o chy vy cháze j í c ího z vlas tnos t í Warno ckova algoritmu . - 156 -
7 . 6 Warnockův a l go r i tmus Warno ckův
a l go r i tmus ,
viz
s t r a tegii
r ozdě l
a
p r in c ipem
mnoha
algor i tmů ,
[ 94 ] ,
( divide
panuj
viz
and
[ 138 ] ,
je
con quer )
a
[ 150 ] ,
[ 142 ]
z a l ožen je
na
z ákladním
atd .
Algor i tmus
kl ade důr a z na výs l e dné zobrazení s cény m í s t o na p ř e sné ur čení vztahů
na
s céně ,
zobr azování
je
a
operuj e
t e dy
v
pros toru
chápán j ako r ekur z ivn í ,
č tyř i základní s tavy ,
p ř i čemž
se
Proces
r o zp o znáva j í
a to :
1 ) pokud v š e chny n-úhelníky j s ou z c e l a vně ( di s j o in t ) , pak
obr a zu .
zobr azovaná
oblast
je
zobrazované
pr ázdná
a
oblas t i
zobrazí
se
s barvou pozadí b e z dalš ího dělen í , v i z obr . 7 . 6 . 1 . a 2 ) pokud oblas t obsahuj e právě j e den celý n-úhe lník ( containe d ) , pak
se
oblas t
zobr azí
s
barvou
pozadí ,
daný
n-úhe lník
se
zobrazí a vyp lní odpovídaj í c í barvou , v i z obr . 7 . 6 . 1 . b 3 ) pokud
hrani c i
oblas t i pak
( in t e r s e c t ing ) , a p ř í s lušná oblas t i ,
čás t
se
oblas t
n-úhe lníka ,
zobr azí
která
je
( surr ounding ) ,
tj .
není
žádný
uvnitř zobr azované oblas t i , barvou n-úhe lníka ,
s danou
uvn i t ř
oblas t í ,
pak
ze se
zobr a z ované
j ednoho n-úhe lníka který
by
byl
viz obr . 7 . 6 . 1 . d
" obklopuj í c í "
vš e ch
n-úhe lník a j e
n-úhe lníků
zobrazovaná
obl as t
in c i duj í c í ch vyp ln í
toho t o n-úhe lníka 6 ) v os t a t n í ch p ř ípade ch se zobr azovaná oblast r o z dě l í .
a
p o zadí
viz obr . 7 . 6 . 1 . c
j iný n-úhe lník ,
který j e j " obklopuj e " ,
pozorova t e l i
barvou
pak s e zobrazovaná o b la s t vyp lní
5 ) pokud j e nale zen ale spoň j e den ne j bl í ž e
s
se vykr e s l í s odpovídaj í c í barvou ,
4 ) pokud zobr azovaná oblast j e uvnitř právě
n -úhe lník
j e den
právě
protíná
b
c Obr . 7 . 6 . 1 - 157 -
barvou
Je
z ř e j mé ,
mo žnou
že
uvedený
hl oubku
r ekur z e ,
Max imální
po č e t
obrazovky ,
tj .
10,
algor i tmus tj .
d ě l ení pro
je
mus í
možný
počet
větš inou
r o z l i š ovací
mít
dán
u r čenou
d ě l ení
dané
r o z l i š ov a c í
s chopnos t
maximální o b l as t i .
s chopno s t í
1024 x 1 024
je
r oven
p okud o b l a s t bude d ě l ena na č tyř i s t e j ně velké podoblas t i ,
v i z obr . 7 . 6 . 2 .
( Je možné snadno r e a l i zovat ant i a l i a s ing výp o č t em
obrazu ve vě t š ím adr e s ovate lném pros toru a p o t é apl ikovat d ř íve uve dené t e chniky ant ial ias ingu . )
f\.
/ ; \�
/ /
t
!I
��
lrH �
Obr . 7 . 6 . 2
Za
p ř e dpokl adu ,
že
zobrazovací
p l o cha
je
č tv e r cová ,
lze
Warno ckův a l go r i tmus p op s at algor i tmem 7 . 6 . 1 . " Zobrazova c í p l o cha j e pak repre zentována troj i c í hodnot < x , y , V > , x , V Na
y
j e s ouř adni ce počátku
j e v e l ikos t oblas t i
obr . 7 . 6 . 3
mohou nas t a t
j s ou při
uvedeny zkoumání
t e s ty
pro
vzáj emné
P ř ípady obr . 7 . 6 . 3 . a ,
j ednodu ché ,
s ta č í vyhodnotit
obr . 7 . 6 . 3 . c , Je
neboť
obr . 7 . 6 . 3 . d možné
je
ne l z e
rozlišit
zákl adní
polohy
a zkoumané p l o chy .
způs obem .
kde :
zobrazované
které o bl a s t i
obr . 7 . 6 . 3 . b j s ou pomě rně
přís lušné j iž
pouze
p ř íp ady ,
podmínky .
rozhodnout t ak ,
že
se
P ř ípady
j e dnoduchým ur č í
r ovni ce
př ímky P P ve tvaru : 1 2 A x + B Y + C = O tj .
ve vektorovém tvaru x
T
.
a = O
kde
x
= [ x ,
y ,
- 158 -
1 ]
T
a = [ A ,
B ,
C ]
T
Pak p r o v š e chny vr cho ly de finuj í c í zobrazovanou oblas t mus í m í t
výr az xT .
s t e j né znaménko ,
a
j de - l i o př ípad a d d .
y
� ""q X
h
YT
y
� m i l'\
o b la st X
YPJ
X
X
L
. h W\
&. Y 8 � Y 1Yl i n
y",; 1"\ Ya
Y Yr
X "" 4
X
'tl X
>< R
�
X rna x
<
y \...
R
� WI� X
� KR �
Jr
X
- -
I �--------�� I
--
t"II Q l(' < X L
><
R
)( L � X l'h i l'\
X tn i n
) X R.
R. Y m i n '1 � " y m � x
V
)( M a x
ymq'l.
XL
Xm i n
I
:
Yr
I
----+
t- + - -
- - - - --
- - - -
--t I
I
I I I -+
T---;-----��� X
Obr . 7 . 6 . 3
P r in c ip Warno ckova algor i tmu ,
viz alg . 7 . 6 . 1 ,
pro použi t í neplanární ch p l o ch ,
viz např .
byl t é ž mod if ikován
[ 23 ] .
Dosud uve dené zákl adní algor itmy byly v dos tupné l i t e r atuře pops ány v různých modi fika c í ch při využití s truktur . vys oká
Důvodem
c ena
V s oučasné
odvození
pamě ťových
době ,
různých
prvků
kdy hus tota
a
modifika c í
rychl o s t
integr ace
- 159 -
r o z l i čných d a t ových
je
by l a
výpo č e t n í ch nepoměrně
p ř e devš ím sys t émů . vy š š í
než
před
10
l e ty
vys tupuj í
do
a
je
možné
popředí
r e a l i zovat
t e chniky
s p e c iální
založené
na
vy cház e j í c í v l a s tně z myš l enky z-bufferu . růs tu
požadavků
na
t e chniky z a l o žené na
věrno s t
" brutální
síle " ,
Vzhledem k neus t á l ému
zobrazované
" s l e dování paprsku "
p r o c e s ory ,
s cény
se
vyví j e j í
a te chniky z a l ožené na
radiačním výp o č tu vyzař ovaných ene rgií . { pro j e dnoducho s t algor i tmu nej s ou zahrnuty případy { ad 2 ) , X: =Oi
ad 3 ) a ad 4 ) ,
y: =Oi
PUSH W ( x ,
V: = 1024i y ,
}
neboť pouze výp o č e t urychluj í }
{ N počet n-úhe lníků }
V )i
{ ulož do zásobníku ve l iko s t zpracovávané p l o chy }
repeat
POP W ( x ,
y ,
V )i
{ vyber ze zás obníku v e l iko s t zpracovávané p l o chy }
flag : = t rue i
i: =li
whi le ( i < = N ) and flag do 1
begin i f n-úhe lník . není z c e l a vně zkoumané oblas t i { t e s t vůč i obdélníku - neúplný t e s t } then flag : = f a l s e i i := i + 1 end i i f f l ag then { v š e chny n-úhelníky j s ou vně zkoumané oblas t i } zobr a z oblas t s barvou ,
resp .
intenz itou pozadí
else if V > 1 then { ve l ikos t oblas t i j e vě t š í než 1 } begin V : = V div 2 i
PUSH W ( x , y , V ) i PUSH W
X
I
PUSH W ( x+V ,
y+V , V ) i PUSH W ( x+V ,
y ,
V )i
y+V ,
V )i
end e l se { v e l ikos t zobrazované p l o chy j e r ovna 1 } i f p ixe l není s oučás t í žádného n-úhelníka then zobraz p ixel s barvou ,
resp .
j as em pozadí
else zobraz p ixel s barvou ,
resp .
j as em odpovídaj í c í
ne j bl i ž š ímu n-úhe lníku unt i l zás obník prázdný Algori tmus 7 . 6 . 1 - 1 60 -
7 . 7 Algo r i tmy s ledování papr sku P r in c ip algor i tmu s l e dování paprsku ( Ray- t r a c ing ) j e zal ožen na myš l ence h l e dání t akového průs e č íku paprsku s t ě l e s em , je
ne j bl í ž e
P ixe l ,
k
průmě tně ,
resp .
k t e rým pap r s ek p r o chází ,
p ř í s lušné p l o chy ,
resp .
pozorovat e l i ,
viz
který
obr . 7 . 7 . 1 .
j e pak aktivován podle a t r i butů
pozadí .
Obr . 7 . 7 . 1 Tento
pos tup
je
nutné
opakovat
pro
v š e chny
pap r s ky ,
tj .
pro
vše chny p ixe ly průmě tny .
V př ípadě ,
vzdálenos t i od průmě tny ,
j e ur čení p ř í s lušných průs e č íků t r o chu
s l o ž i tě j š í ,
neboť
transforma c e . algor i tmu
je
Je
je
nutné
t e dy
ur č ení
apl ikovat
z ř e j mé ,
průs e č íků
j e j i ch uspoř ádání ,
neboť ve
které
ohr ani čeny
mohou
být
parame t r i ckými
p l o chami .
s p o t ř ebováno ur čováním , papr skem , by
dané
ohran i čuj í c í zave dení
způsobem
paprsku
je
t ě l e s em
k
různé
a
m í s tem p ř ípadné
typy
těles ,
kvadr a t i ckými
tomu ,
že
až
9 5%
nebo
času
je
zda t ě l e s o má nebo nemá průs e č ík s daným
těleso .
ry chlé
s
rovinnými ,
Vzhledem
p e r s pekt ivní
ne j kr i t i č tě j š ím
s céně mohou být
ur č i l y ,
tělesa,
pr in c ipy
že
a j eho p ř ípadným ur čením ,
rychlým
protínat
že pozorova t e l j e v kone čné
Z
zda
ur čení
ani tento hrani ční obj e m ,
daný
tohoto
větš inou
j s ou nezbytné
kvádr
papr s ek
důvodu či
t ě ch př ípadů ,
se
koul e . kdy
t e s ty ,
můž e
či
které nemůže
zavádě j í Důvodem
t zv . j e j i ch
papr s ek nepr o t íná
aby byl o možné se vyhnout s l o ž i tě j š ím
tes tům nutným k ur č ení průs e č íků papr sku s vlas tním t ě l e s e m . - 161 -
,,- - - - - -�'I /I
'' I I 1
/'
/ 1
� I I I
{-+I
I I I I I II " 'L
/
I \
/
\
/
\
__ _
kou l e
j ako
ope r ac ím r o t a c e . vés t
k
j eho
ohr ani čuj í c ího
-
.......
"'-
"-
\
\
\ I
\.
"' ,---
---- - -
tělesa
je
/./
/
/
I
/
invar i an c e
vůč i
Použ i t í kvádru j ako ohr an i čuj í c ího t ě l e s a může
zvě t š ování ,
př irozeně j š ím
-
/
Obr . 7 . 7 . 2 Výhodou
�
resp .
ohr an i čuj í c ím
zmenš ování .
t ě l e s em p r o
Koul e
t ě le s a ,
je
která
nav í c
j s ou
jí
tvar ově b l í zká , v i z obr . 7 . 7 . 2 . V
p ř ípadě ,
že
ohr ani čuj í c í
těleso
je
koul e ,
test ,
zda
pap r s e k p r o t íná č i neprotíná danou koul i ,
l ze r e a l i zovat poměrně
j ednoduš e .
pro chá z í
J s ou- l i
x
a l pap r s ek j e ur čen rovn i c í
x
body ,
2
j imiž
s
kde
s
j e směr ový vektor .
x
,
s
y
,
s
z
p ak
,
=
kde
pap r s e k ,
S. t
Rozepsáním do s ložek do s táváme
j s ou j e dno t l ivé s l o žky vektoru
Označ íme - l i Xo s t ř e d ohr ani čuj í c í koule ,
s.
pak vzdáleno s t bodu Xo
a l ibovolného bodu x l e ž í c ího na paprsku x ( t ) j e ur č ena : d
2
=
( x - x
=
( x - x
Odpovída j í c í
O O
) )
T
( x - x
.
2
hodnota
+
O
)
) ( Y - Y O par ametru
2
+
t
( z pro
Z
o
bod
)
2
x( t)
s
minimální
vzdáleno s t í o d bodu Xo j e ur čena výr azem ( vi z po známka ) :
- 162 -
t
T s .
=
( x T s .
- X ) o
l s
Roze p s áním : t
Je-li
=
nyní
v bodě x ' o
d
větší
než
pol omě r
ohrani čuj í c í
koule
se
s tř e dem
pak pap r s ek nemůže protínat dané t ě l e s o .
J e - l i použi t o par a l e lní promí tání a ohr ani čuj í c ím t ě l e s em j e kvádr ,
j ehož hr any j s ou r ovnobě žné
pak j e t e s t velmi j e dnoduchý , x . :S X :S X mln max p ř i čemž
nezáleží
p e r s p ekt ivní
na
s ouř adného
neboť mus í p l at i t ,
a
Ymin
hodno tě
p r o j ekce
s o s ami
z.
do chází
Je
:S
Y
:S
že :
Ymax
zře j mé ,
j is tému
k
s y s t ému ,
že
v
zvýš ení
p ř ípadě výp o č e tn í
s l o ž i tos t i . Uve dené
výp o č ty
lze
pods tatně
zrychl i t ,
směr ový vektor s pro každý pap r s ek tak , 1\ s =
I\
- sT ( x
=
Je
t e dy
2
že :
s I
a d
znormuj eme
s
pak t
p okud
=
z ř e j mé ,
1
- x
( x(t) - x že
je
)
O
)
O T
( x ( t ) - Xo )
.
pos tačuj í c í
pouze
p r o c e s or
pro
výp o č e t
skal árního s ou č inu . V p ř ípadě , p l o chy ,
že uvedený pos tup bude apl ikován na kvadr a t i cké
které l z e vyj ádř i t pomo cí kvadrati cké formy x
( ma t i c e
A
syme t r i cká ) , výp o č e t
T
.
A
O
x
•
r e p r e zen tuj í c í je
nutné
průs e č íku
danou
uvedený
papr sku
kvadr a t i ckou
pos tup s
danou
z j e dnoduš i t p l o chou .
transformace r o t a c e ( ma t i ce R ) l ze do c í l i t t oho , rovnobě žný
např .
s
o s ou
z.
V
tomto
p l o chu
př ípadě
pro
je
r y chlý
Ap l ikováním
aby p ap r s e k byl ( př i
p ouž i t í
- 163 -
------- -
-
-
-
paralelní
p r o j ekce )
je
hodno ta
s ouřadn i c e
x
a
y
kon s t antní
a dos azením do r ovn i c e p l o chy dostáváme : x
T
T R
.
A
.
.
R
.
x = O
tj . x
T
B
.
x = O
Ro zep s áním do s táváme : b
11
x
2
+ b
22
y
2
+ b
z
33
2
+ 2b 2 xy + 2b 2 3 yz + 2 b 1 3 xz + 1
Pak l ze ur č i t s ouřadnice průs e č íků j ako : - s
Ý s2
±
- 4 r w
2 r kde
r = b
33
s = ( 2b w = b
11
x
13
x + 2b y + 2 b ) 23 34
2
+ b
22
y
2
+ 2b
12
xy + 2 b
14
x + 2b
24
y + b
44
Nebo l z e daný pap r s ek z to tožnit s osou z 'pomo c í o p e r a c e r o t a c e a posuvu ( ma t i c e X
T
tj .
T
obsahuj e obě t r ans forma ce ) .
TT
A
.
x
T
•
.
Q
T .
.
Pak l z e p s át :
x = O
x = O
Roze p s án ím pak p o dos azení x = O a Y = O dos t áváme :
Průs e č íky pap r s ku pak získáme opět ř e š ením kvad r a t i cké rovn i c e . Je
zře j mé ,
komp l exnímu k tomu ,
že
pokud
ř e š en í ,
ř e š ení
papr sek
kvadr a t i cké
danou
p l o chu
r ovni c e nep r o t íná .
vede
ke
Vzh l e dem
že j e nutné počítat i j iné v e l i činy n e ž průs e čík papr sku
s danou p l o chou ,
j e větš inou výhodně j š í zvo l i t druhý p o s tup .
- 1 64 -
Poznámka P r o výpo č e t p ar ametru t l ze využ í t toho , p l a t i t nutná podmínka :
d ----crt
( x(t)
T 2 . ( s .
=
-
Xo
)
t
+
s .
T
( x( t)
•
s
T
. x
l
-
-
Xo
T s .
Nyní lze vyj ádř i t hodnotu t t akto :
t
=
T s .
( x T s .
l
-
Xo
)
s
- 165 -
)
že p r o minimum mus í
5.
Literatura
[ 1 ] Akimot o , T . ,
Mas e , K . ,
S e l e c ted Ray Tracing , [ 2 ] Acland, B . , We s t , N. : Display 1980,
System,
in [ 6 4 ] ,
Re al
Computer
Anima tion
Graphics
on
a
Frame
( S I GGRAPH ' 8 0 ) ,
S tore
Vol . 1 4 ,
The Edge F lag AIgor ithm - A Me thod for
Ras ter S can Displays ,
IEEE Tr ans .
on Computers ,
Vol .
C30,
pp . 4 1 - 4 8 .
[ 4 ] ACM Computer Phi lade lphia , [ 5 ] Angel l , I . O . : Gr aphi c s ,
1 984,
ACM 1 9 8 4 . A
Practical
Cas ciol a , G . :
Pract ice ,
Proceedings o f the
S c ience Conference ,
MacMil l an Pres s ,
[ 6 ] Alvis i , L . , in
pp . 2 9 - s 0 .
pp . 1 8 2 - 1 8 8 .
[ 3 ] Ackl and , B . , We s t , N . : 1981,
Time
1989,
Pixel
Suenaga , Y . :
Hashimoto , A . ,
TR
Intr oduct ion
to
Computer
198 5 .
Two and Four Ar ray Mask AIgor i thms
Dep t .
of
Mathematics ,
Univ .
of
Bologna ,
1 988 . [ 7 ] Alvi s i , L . ,
Cas ciol a , G . :
TAM
r ivisi tato :
un
me t odo
rapido
ed a s t to per la rappr e s entazione prospe t t i c a di supe r fi c e , P IXEL No . 1 0 ,
1988,
pp . 1 5 - 2 4 .
[ 8 ] Baker , M . P . , Hearn , D . :
Computer
Internat ional Edit ion,
[ 1 0 ] Bar t s ch , H . J . : [ 1 1 ] Berge r , M . :
CACM ,
Computer
Vol . 1 7 ,
[ 1 4 ] Birren, F . : York,
Vo l . 1 6 ,
with
Menlo Park,
No . 3 ,
pp . 7 0-7 7 .
SNTL ,
1 97 1 . Benj amin
Pas cal , 1986 .
Confe rence
S I GGRAPH ' 8 2
Creative Color ,
P r o c e edings ,
July 1 9 8 2 . Van Nos trand Re inho l d Co . ,
New
1961 .
[ 1 5 ] B l inn , J . F . : Synthe s ized Vol . 1 1 ,
1977 ,
[ 1 6 ] B l inn , J . F . : The s is ,
Univ .
Models
Coor dinates ,
Light
Reflec tion
Computer
Graphics
of
Pictur e s ,
for
Comput er
( S I GGRAPH ' 7 7 ) ,
pp . 1 9 1 - 1 9 8 . Computer of Utah ,
[ 1 7 ] Blinn , J . F . , Newe l l , M . E . : 1 978,
1 974,
Graphi cs
Cummi ngs Publishing Comp . , ACM S I GGRAPH ,
Hall ,
A Cell Organized Ras t e r Display
Matemati cké vzor ce ,
[ 1 2 ] Bergeron , R . D . ( Ed . ) :
Pren t i ce
1986.
[ 9 ] Bar r e t t , R . C . , Jordan , B . W . : for L ine Drawings ,
Graphi cs ,
Computer
Display
of
Curved
Sur face s ,
PhD
197 8 . Cl ipping Graphics
pp . 2 4 5 - 2 5 1 . - 117 -
Us ing
Homogene ous
( S IGGRAPH ' 7 8 ) ,
Vol . 1 2 ,
GKS
[ 1 8 ] Bono , P . R . , He rman , I . ( Ed . ) : EUROGRAPHICS ,
1 987 .
[ 1 9 ] Bouknigh t , J . :
A
D imens ional CACM , Vo l . 1 3 , Vol . 1 1 ,
Procedure
Half-toned
[ 2 0 ] But l and , J . :
for
Gener a t ion
Computer
Graph i c s
of
Thre e
P r e s e n t a tion ,
1 9 7 0 , pp . 5 2 7 - 5 6 3 . Surface
1979,
[ 2 1 ] Cas c i o l a , G . :
Drawing
Made
S imp l e ,
CAD
J ourna l ,
pp . 1 9- 2 2 . B a s i c Concepts to A c c e l e r a t e L ine A l g o r i thms ,
Computer & Graphi c s , Vol . 1 2 ,
1 9 8 8 , pp . 4 8 9 - 5 0 2 .
[ 2 2 ] Cas t l e , C . M . A . , P i tteway , M . L . V . : Algor i thm
P r a c t i ce ,
and
The ory
to
Drawing
An App l i c a t ion o f Eukl i d ' s
S traight
Line s ,
in [ 3 9 ] "
1985,
pp . 1 3 5- 1 3 9 . [ 2 3 ] Catmul l , E . E . :
A Subdivis ion Algo r i thm for Comput e r D i s p l ay
o f Curved Sur fa c e s , [ 2 4 ] Catmul l , E . :
A
S I GGRAPH ' 7 9 ,
PhD The s is , Univ . Tutorial
on
Computer Graph i c s ,
o f U t ah ,
1974.
Comp e n s a tion Vol . 1 4 ,
No . 3 ,
Tabl e s , July
1 980,
pp . 2 7 9 - 2 8 5 . [ 2 5 ] Cheng , F . , Yen , Y . :
A
Paral l e l
Line
I t s Imp lementation,
in [ 4 1 ] ,
1989.
[ 2 6 ] Clark, J . H . : for 1982,
The
Graph i c s ,
Geome try
Cl ipping
Engine :
A VL S I
Algo r i thm
Geome try
Graph i c s ' ( S IGGRAPH ' 8 2 ) ,
Compute r
and
Sys tem Vol . 1 6 ,
pp . 1 2 7 - 1 3 3 .
[ 2 7 ] Claus s en , U . : in [ 6 4 ] ,
On
1989,
[ 2 8 ] Comput a tional
Synthe s is ,
Geome t r y ,
Phong
Shading
M e tho d ,
A
Proceed ings
Ref l e c tion
PhD .
of
the
F i f th
Annua l
Real i s t i c
Image
1 989 . The s is ,
[ 3 0 ] Cyrus , M . , Be ck , J . : Cl ipping ,
the
pp . 3 3 3 - 3 8 0 .
Conference , ACM , [ 2 9 ] Cook , R . L . :
Reducing
Mode l
Corne l l Univ . ,
Generalized
Computer s
for
&
Two
Graph i c s ,
1982 .
and
Thre e
Dimens ional No . I ,
Vo l . 3 ,
1979,
pp . 2 3 - 2 8 . [ 3 1 ] D ev i l l e r s , O . : Subdivi s ion
The
Macro
S tructure
for
Regions : Ray
An
Tr a c ing
Effic ient
Space
in [ 6 4 ] ,
1989,
pp . 2 7 - 3 8 . [ 3 2 ] Dr s , L . , Vš e t e čka , J . :
Obj ektivem p o č í t a če ,
[ 3 3 ] Duc e , D . A . , J ancene , P . ( Ed . ) :
EUROGRAPHI C S ' 8 9 ,
P r o c e ed ings , Nor th Hol l and Publ .
- 118 -
---
- - --- �--
------
SNTL ,
----�- - - -----
Comp . ,
1989 .
1 98 1 . Confe r ence
[ 3 4 ] Dun lave y , M . R . : Ras ter
Efficient
Polygon on
Tr ans .
D i s p l ay s ,
F i l l ing
A l g o r i thms
Graphi c s ,
Vol . 2 . ,
for
1983,
p p . 2 6 4- 2 7 3 . [ 3 5 ] El l is , T . M . R . , Semenkov , O . I . ( Ed . ) : Nor th Hol land Pub l .
Comp . ,
IFI P ,
1983.
[ 3 6 ] En carnac ao , J . , S chle chtendahl , E . G . : Fundamentals
and
Sys tem
CAD / CAM ,
in
Advan c e s
Computer Aided Des i gn -
Ar chi te c tures ,
Spr inger
Ver lag ,
1 98 3 . Programmin g ,
Gr aph i c s
Comput e r
[ 3 7 ] Ender le , G . , Kansy , K . , Pfaff , G . : S p r inger Ver l a g ,
1984.
[ 3 8 ] Ender le , G . , Gr av e , M . , L i l l enhagen , F . ( Ed . ) : Compute r Graphi c s I , [ 3 9 ] Earnshaw , R . A . ( Ed . ) : Graphi c s , Ver l ag ,
NATO
Springer Ver l a g , Fundamental
ASI
Serie s ,
Gr aphics
and
Theore ti cal
CAD ,
S p r inger Ver l ag ,
NATO
ASI
Graphi c s ,
Proceedings
S p r inger Ver lag,
F,
Computer
Vol . 1 7 . ,
S p r inger
Foundat ions
S e r ie s ,
Graphi c s
for
of
Series
of
New
Advances
Computer
Graph i c s
Computer Vol . 4 0 ,
F, in
Computer
International
1 98 9 .
[ 4 2 ] F i t zgeral d , W . , Grace r , F . , Wolfe , R . : Model ing
Solids ,
GRI N :
IBM
Re s . &
Inter a c t ive Dev e l . ,
Vol . 2 5 ,
July 1 9 8 1 , pp . 2 8 1 - 2 9 4 .
[ 4 3 ] F l oyd , R . , S t e inbe r g , L . : Gray
for
1987 .
[ 4 1 ] Earnshaw, R . A . , Wyvi l l , B . ( Ed . ) :
No . 4 . ,
1986.
Algor i thms
Ser ies
in
1 98 5 .
[ 40 ] Earnshaw , R . A . ( Ed . ) :
89,
Advan c e s
S cale ,
SID
An Adapt ive
1975,
Int .
A l g o r ithm
Symp .
Dig .
for
S pa t i a l
Te chn . ,
1 97 5 ,
pp . 3 6- 3 7 . [ 44 ] Foley , J . D . , van
Dam , A . :
Fundamentals
Computer Graphi cs , Addison-Wes ley , [ 4 5 ] Foley , J . D . : Too l s ,
Nex t
in [ 6 4 ] ,
Generation
Data
Ope rates
in
by
Pr ism
An L inear
Pr o ce s s ing , Vol . 1 5 , [ 4 8 ] Fuchs , H . ( Ed . ) :
1984.
User
Interface
Devel opment
3 -D Gr aph i c D i s p l ay of D i s crete Maps ,
S I GGRAPH ' 7 8 ) , Vol . 1 2 , No . 3 , [ 47 ] F r ankl in , W . R . :
Inter a c t ive
1 9 8 9 , pp . 5 3 7 - 5 3 8 .
[ 4 6 ] F r ankl in , W . R . , Lewis , H . R . : Spatial
of
Exac t 1981,
Graph i c s
( ACM
Algor i thm
That
Augus t 1 9 7 8 . Hidden
Time ,
Comput e r S pher e
Computer
Graph i c s
and
Image
pp . 3 6 4- 3 7 9 .
S IGGRAPH ' 8 1
Conference
S I GGRAPH , Vol . 1 5 , No . 3 , Augus t 1 9 8 1 . - 119 -
P r o c e e d ings ,
ACM ,
[ 4 9 ] Gervan t z , M . , Pur gathofer , W . : Quan tization : Graph i c s
Octree
A
S imple
Quan tization ,
International ' 8 8 ,
Me thod
for
Proceedings
Spr inger
Color
Computer
Ver lag ,
1988,
pp . 2 1 9 - 2 3 1 . [ 5 0 ] Ge t t o , P . :
Fas t
Ray
Tracing
S o l i d Geome try Mode l s ,
of
in [ 4 1 ] ,
[ 5 1 ] Ghazanfarpour , D . , Peroche , B . : S teps with a Z -Buffer , We s ley ,
1989,
Cons t ruct ive
pp . 5 6 3 - 5 7 8 .
Ant i - a l ias ing by s u c ce s s ive
in [ 6 4 ] ,
[ 5 2 ] Gonzales , R . G . , Wint z , P . :
Unevaluated
1989,
pp . 2 3 5 - 2 4 4 .
Digital Image
P r o ce s s in g ,
Add i s on
1 97 7 .
[ 5 3 ] Gott l ie b , M :
Hidden L ine Subrout ines for Thre e D imen s ional
P l o t t in g , Byte , Vol . 3 , No . 5 , [ 5 4 ] Gore l ik , A . G . :
Logical
Ge ome t r i ca l Obj e c t s ,
Functions
in [ 3 5 ] ,
[ 5 5 ] Gr anát , L . , Se chovský , H . : [ 5 6 ] Graphical
Kerne l
1 9 7 8 , pp . 4 9 - 5 8 . as
a
Means
of
Mode l l ing
pp . 1 3 5- 1 5 1 .
Počítačová grafika ,
Sys tem for
Three
SNTL ,
D imens ions
1980.
( GKS- 3D )
-
Fun c tional Des cript ion , Norma I SO /TC9 7 / SC2 1 I S 7 9 4 2 . EUROGRAPH I CS ' 8 2
[ 5 7 ] Greenaway , D . S . , Warman , E . A . ( Ed . ) :
Confer ence Pro ceedings , Nor th Hol l and Publ . Comp . , [ 5 8 ] Greenber g , D . P . , Meyer , G . W . : Computer
-Graphi c s ,
Per cep tual
Computer
Color
Gr a.ph i c s ,
1982.
Spaces
Vol . 1 4 ,
for 1 980,
pp . 2 5 4 - 2 6 1 . The
[ 5 9 ] Gr eenber g , D . P . , Marcus , A . , S chmidt , A . , Gorter , V . : Comput e r Image-Applications of Computer Graph i c s , We s le y ,
Add i s on
1982.
[ 6 O ] Greenbe r g , D . P . , Meyer , G . W . : Synthe s is
in
Appl i c a t ion ,
Computer
Vol . 1 1 ,
Color
Educa t ion
Graphi c s ,
Color
John Wiley & Sons ,
and
Color
Re s e a r ch
Supp l ement
and 1986,
pp . S 3 9-44 . [ 6 1 ] Greenbe r g , D . P . : Algorithms , [ 6 2 ] ten
Advances
in [ 6 4 ] ,
in
Global
1 9 8 9 , pp . 40 1 - 4 0 2 .
Hagen , P . J . W . , Tomiyama , T . ( Ed . ) :
Sys t ems I , [ 6 3 ] Ham l in , G . ,
Spr inger Verlag,
1987 .
Gear , C . :
S c an Hidden
Te chni que s ,
I l luminat i on
Ras ter
Inte l l igent
CAD
Sur face Algorithm
Computer Graphi cs ( S IGGRAPH ' 7 7 ) ,
Vo l . 1 1 ,
1977,
pp . 2 0 6- 2 1 3 . [ 6 4 ] Hansmann , W . , Hopgood , F . R . A . , S tr a s s er , W . ( Ed . ) : EUROGRAPHI C S ' 8 9 Pub l .
Comp . ,
Conference
1 989 . - 120 -
Pro cee dings ,
Nor th
Hol l and
[ 65 ]
Har a l i ck , R . M . : Series F ,
[ 66 ]
Vo l . 4 . ,
Har r ington , S . : McGr aw Hi l l ,
[ 67 ]
Pi ctorial
Spr inger Ve r l ag ,
Computer
Graph i c s
NATO
Analy s i s ,
AS I ,
1983 .
- A P r ogr amming App r o a ch ,
1 987 .
He ckbe r t , P . : D i s p l ay ,
Data
Color
Image
Computer
Quan t i z a t ion
Gr aphi c s ,
for
Vo l . 1 6 ,
Fr ame
No . 3 ,
Buffer
July
1982,
pp . 2 9 7 - 3 0 5 . [ 68 ]
H i l b e r t , R . : Cons truction Po lygon
Hi s tograms ,
and
D i s p l ay
Computer
of
Thr e e
Graphi c s ,
Dimens ional
Vo l . 1 5 ,
No . 2 ,
July
1 98 1 . [ 69 ]
Hopgood , F . R . A . , Duce , D . A . , Ga l l op , J . R . , Sut c l iffe , D . C . : I n t r odu c t ion Academi c
[ 70]
[ 72 ]
Pres s ,
Ker n e l
Sys t e m
II,
Spr inger Ve r l a g , EUROGRAPH I C S ' 8 2 ,
EUROGRAPHI C S As s o s . ,
Geneva ,
Advan c e s
Cour s e
Ins e l be r g , A . : Visual
No te s ,
1986 . Tut o r i a l
No t e s ,
Univ .
of
Int e r a c t ive Manche s t e r ,
Comput e r Compute r
1 984. The
Comput e r ,
P l ane
Vo l . 1 ,
wi th
1985,
Para l l e l
Coor dinate s ,
Coor dina t e s ,
The
pp . 6 9 - 9 1 .
I ns e l be r g , A . , Comut , T . , Re i f , M . : P ar a l l e l
in
1 982 .
Hubbol t , R . J . , Arno l d , A . C . , Hewi t t , W . T . : -
( GK S ) ,
198 3 .
Gr aphi c s
Gr aphi c s Un i t ,
[ 74 ]
Graphical
HUbbo l t , R . J . ( Ed . ) :
Graph i c s
[73]
the
Hopgo o d , F . R . A . , Hubbol t , R . J . , Duce , D . A . ( Ed . ) : Compu t e r
[71]
to
JACM,
Convexity
Vol . 3 4 ,
A l gor i thms
No . 4 ,
Oc tober
in
1987 ,
pp . 7 6 5- 8 0 1 . [ 75 ]
I n s e l b e r g , A . , Dims dal e , B . : Visual i z ing
Mul t i-Dimens ional
for
C o o r d in a t e s
Par a l l e l
Geome try ,
in
[ 84 ] ,
1987,
pp . 2 5 - 4 4 . [76]
Jarvi s , J . F . , Judi ce , C . N . , Ninke , W . H . : for
the
D i s p l ay
D i s p l ay s , 1976, [ 77 ]
[78]
Computer
[ 41 ] ,
1989,
J o s eph, H . : State
Con t inues
Graphics
Tone
and
of
P i c tur e s
Image
Te chnique s on
B i l eve l
P r o c e s s ing ,
Vo l . 5 ,
pp . 1 3 - 4 0 .
Jevan s , D . A . J . : in
of
A Survey
of
Op t imi s t i c
Mul tipr o c e s s o r
Tr a c in g ,
pp . 5 0 7 - 5 2 2 .
Computer Graphics Hardware
the
Ray
Ar t ,
EUROGRAPHI C S ' 8 7
1987 .
-
121
-
-
I n t r oduc t ion
Tutor i a l ,
and
EUROGRAPH I C S ,
[ 7 9 ] Kay , D . S . :
Transparency ,
Computer
Synthe s ized
Refra c t ion
Image s ,
PhD
and
Ray
The s i s ,
T r a c ing
Corne l l
for
Univ . ,
1979. [ 8 0 ] K i lgour , A . C . : S can
Unifying
Conv e r s ion
and
Ve ctor
and
Cl ipping ,
P olygon
TR
A lgor i thm
C S C / 8 7 /R 7 ,
for
Univ .
of
Glas gow , May 1 9 8 7 . [ 8 1 ] Knuth , D . E . :
Digital Halftones by Dot D iffus ion ,
on Gr aphi c s , [ 8 2 ] Kubo , S . :
Vol . 6 , No . 4 ,
Cont inuous
I nk J e t P r in te r s , [ 8 3 ] Kun i i , T . L . ( Ed . ) : Ver lag ,
Color
pp . 2 4 5 - 2 7 3 .
P r e s entati on
U s ing
a
L ow
Co s t
in [ 8 4 ] , 1 9 8 7 , pp . 3 48 . Frontiers in Computer Gr aphi c s ,
Spr inger
1985.
[ 8 4 ] Kun i i , T . L . ( Ed . ) : the
O c tober 1 9 8 7 ,
ACM Tran s .
5 th
Computer
International
Spr inger Ver l a g ,
Conference
1 9 87 , on
P r o c e ed ings
Comput e r
of
Gr aphi c s ,
1 987 .
[ 8 5 ] L iang , Y . D . , Barsky , B . A . : P olygon Cl ipping ,
An
Analys i s
and
CACM , Vol . 2 6 , No . 1 1 ,
[ 8 6 ] L iang , Y . D . , Barsky , B . A . : C l ipping ,
Gr aphi c s
A lgor i thms
1 984,
for
pp . 8 6 8 - 8 7 6 .
A New Con cept and Me thod for L ine
ACM Tran s a c t ion on Graphi c s ,
Vol . 3 ,
No . 1 ,
1 984,
pp . 1 - 2 2 . [ 8 7 ] Lewe l l , J . :
Computer
Te chni que s
and
Graph i c s
App l i cations ,
- \A
Survey
Orb i s
of
Current
Publ .
Ltd . ,
L ondon ,
and
H idden
1985. [ 8 8 ] Mach , K . D . , Pe t ty , J . S . :
Contour ing
Algor i thms for Ve ctor Gr aphi c Display ,
Rep .
L ine
AFAPL-TR- 7 7 - 3 ,
1 97 7 . [ 8 9 ] Měření barev , [ 9 0 ] Meye r , G . W . : Gene r a tion ,
C SN 0 1 1 7 1 8 . Wavelength
[ 9 1 ] Meyer , G . W . : Computer , Tektr onix , [ 9 3 ] Mur c h , G . : 1989,
on
Color
Spr inger Ver la g ,
Human Oregon ,
for
Synthe t i c
Image
Graphi c s
and
Image
S c ience ,
The
Visual
1 9 8 8 , pp . 5 7 - 7 9 .
Tutorial
Vo l . 2 ,
[ 9 2 ] Mur ch , G. M . :
Vis ion ,
Computer
P r o ce s s ing , Vol . 4 1 ,
S e l e c t i on
Factors
of
pp . 2 7 8- 2 9 0 . Col o r
D i s p l ay s ,
TR ,
1 989 .
Color Mat ching of Display and P r inte r ,
in [ 6 4 ] ,
pp . 3 1 3- 3 1 4 .
[ 9 4 ] Newmann , W . M . , Sproul l , R . F . : Computer Gr aphi c s ,
Principles
2 n d ed . , McGr aw Hil l ,
- 122 -
of 1 98 1 .
I n t e r a ct ive
[ 9 5 ] Ni chol l , T . M . , Lee , D . T . , Ni chol l , R . A . : Algorithm
for
Ana ly s i s ,
2D
Line
An
Cl ipping :
ACM Computer Graphic s ,
Its
Vol . 2 1 ,
Effic ient
New
Devel opment
and
No . 4 ,
July
1 987,
pp . 2 5 3- 2 6 2 . [ 9 6 ] O ' Bar a , R . M . , Abi-Ezzi , S . : in [ 64 ] ,
1 98 9 ,
[ 9 7 ] P av l i d i s , T . : Ver lag ,
Analys i s
Mode l ing
C l ip ,
and
Image
P r o ce s s in g ,
S p r inger
1982.
Graphi c s ,
The Impact o f Frac tal Geome t r y for Compu t e r
in [ 6 4 ] ,
[ 9 9 ] P e r due , L . :
1 9 8 9 , pp . 3 1 5- 3 1 6 .
Super charging Your P C , McGraw Hil l ,
[ 1 0 0 ] Phil l ip s , R . L . ( Ed . ) : ACM S I GGRAPH ,
S I GGRAPH ' 7 8 ,
Conference
1 987 . P r o c e e dings ,
Vol . 1 2 , No . 3 , Augus t 1 9 7 8 .
[ 1 0 1 ] P in s , M . , Hi l d , H . :
Var iation
on
Di ther
Algor i thm ,
in [ 6 4 ] ,
pp . 3 8 1 - 3 9 2 .
[ 1 0 2 ] P i t t eway , M . L . V . :
The Alge br a o f Algor i thms - A New Toy for
the The o r e t i c i an ? ,
IUCC Bul l e t in , Vol . 1 ,
[ 1 0 3 ] P i t t eway , L . M . V . , Watkinson , D . J . : Gray S ca l e ,
CACM ,
Vol . 2 3 ,
[ 1 04 ] P l as t o ck , R . A . , Kaley , G . : Gr aphi c s ,
1 980,
Shading
and
in
a
P r o b l ems
of
Comput e r
1 98 6 .
S I GGRAPH ' 7 9
[ 1 0 6 ] Popse l , J . , Hornung , C . :
pp . 1 3 9 - 1 44 .
pp . 6 2 5- 6 2 6 .
Theory
S I GGRAPH , Vol . 1 3 . , No . 2 . ,
1979,
Bresenham ' s A l g o r i thm with
M cGr aw Hil l , New Yor k ,
[ 1 0 5 ] P o l l a c k , B . W . ( Ed . ) : ACM ,
of
pp . 3 6 7 - 3 8 0 . Graphics
[ 9 8 ] P e i tgen , H . O . :
1989,
An
Conference
P r o c e e d ings ,
Augus t 1 9 7 9 .
Highl ighting Shading - L ight ing and
PHIGS+ / PEX
Environment ,
in [ 6 4 ] ,
1989,
pp . 3 1 7 - 3 3 2 . [ 1 0 7 ] Preparata , F . P . , Shamos , M . I . : Introdu c t ion ,
Computat ional
Spr inger Ver lag ,
geome t r y
An
1985.
[ 1 0 8 ] Roger s , D . F . , Adams , J . A . : Mathemati cal El ement s for Compute r Graph i c s ,
McGraw Hil l , New Yor k ,
[ 1 0 9 ] Roger s , D . F . : McGraw H il l ,
P r o ce dural
Element s
[ 1 1 1 ] de
Spr inger Ver lag ,
Rui t e r , M . M . ( Ed . ) :
Spr inger Ve r lag , [ 1 1 2 ] S an t o , H . P . : Dinal ivro ,
for
2.
vydání 1 9 9 0 .
Comput e r
Graphi c s ,
1 985 .
[ 1 1 0 ] Roger s , D . F . , Earnshaw, R . A . ( Ed . ) : Gr aphi c s ,
1 97 6 ,
Te chni ques
for
Compute r
1 987 .
Advances
in
Compute r
Gr aph i c s
III,
1 98 8 .
Métodos Lis boa ,
Gráficos
1 985 .
- 123 -
e
Geome t r i a
Computa c ionai s ,
[ 1 1 3 ] Sheppard , J . :
Human Color Per cepti on - A C r i t i ca l S tudy o f
t h e Exper imental Foundation , E l s ev ier , New York , [ 1 1 4 ] Shi r ai , Y . : Ve r l a g ,
Three
Dimens ional
Computer
1968 .
Vis i on ,
Spr inger
1 987 .
[ 1 1 5 ] Ska l a , V . :
An
Interes t ing
Modifi cat ion
to
Algor i thm for Hidden-Line Problem Solution ,
the
B r e s enham
in [ 3 9 ] ,
1985,
pp . 5 9 3- 6 0 2 . [ 1 1 6 ] S ka l a , V . :
An
Al go r i thm ,
I n te r s e c t ing
Compute r
Modif i c a t i on
Graph i c s
Forum ,
to
the
Vo l . 6 ,
B r e s enham
No . 4 ,
1987,
pp . 3 4 3 - 3 4 7 . [ 1 1 7 ] Ska l a , V . :
Algor i thms for 2D Line Cl ipping ,
in [ 4 1 ] ,
1989,
in [ 6 4 ] ,
1989,
pp . 1 2 1 - 1 2 8 . [ 1 1 8 ] Ska l a , V . :
Algor i thms for 2D Line Cl ipping ,
pp . 3 5 5- 3 6 7 . [ 1 1 9 ] S l avkovský, P . :
Problém viditelno s t i v p o č í t ačové grafi ce ,
kandidá ts ká d i s e r tační práce , MFF [ 1 2 0 ] Smith , A . R . :
Color
Gamut
Vol . 1 3 ,
Tint
1979,
F il l ,
Computer
The
Se cond
and App l i cation s ,
Graph i c s
S IGGRAPH ' 7 8 pp . 1 2 .
( S I GGRAPH ' 7 9 ) ,
CSN ' 3 6 0 0 0 0 .
Chin a ,
Advances
Spr inger Ver lag ,
Gr aphi c s
Computer
International
B e i j ing ,
[ 1 2 4 ] S t r a s s e r , W . ( Ed . ) :
Conf .
on
Computers
1987 .
in
Graph i c s
Comput e r
1 987 .
[ 1 2 5 ] Suther l and , I . E . , Hodgman , G . W . : CACM , Vol .
1978,
1 987 .
pp . 2 7 6- 2 8 3 .
[ 1 2 3 ] S t audhammer , J . , Livadas , P . E . :
Hardware I ,
P a ir s ,
S I GGRAPH ,
[ 1 2 2 ] Svě t e lně-te chn i cké názvos loví , A Tuto r i a l ,
B r a t i s l av a ,
Trans form
Conference P r o ceedings , ACM , [ 1 2 1 ] Smi th , A . R . :
UK ,
Reentran t
1 7 . , No . 1 , January 1 9 7 4 ,
P o lygon C l ipping ,
pp . 3 2- 4 2 .
[ 1 2 6 ] Suthe r l an d , I . E . , Sproul , R . F . , S chumacker , R . A . : A Chara c te r i za tion
of
Ten
Comput ing Surveys , Vo l . 6 , [ 1 2 7 ] Tanner , P . ( Ed . ) :
Hidden- Sur fa c e
1974,
S I GGRAPH ' 8 3 ,
Algo r ithms ,
pp . 1 - 5 5 .
Conference
P r o c e e d ings ,
ACM ,
S I GGRAPH , Vol . 1 7 , No . 3 , July 1 9 8 3 . [ 1 2 8 ] Teun i s s e n , W . J . M . : HlRASP - A Hierar chi cal Mode l l in g Sys tem for Ras ter Graphi c s ,
PhD The s i s ,
[ 1 2 9 ] Thalmann , N . M . , Thalmann , D . ( Ed . ) : P r o ceed ings
of
Graphics
1 988 . Computer Gene r a t e d Image s ,
Interface ' 8 5 ,
1985.
- 124 -
S p r inger
Ver la g ,
[ 1 3 0 ] Thomas , J . J . ( Ed . ) : ACM ,
S I GGRAPH ' 8 0 , Vol . 1 4 "
[ 1 3 1 ] Toifl , J . : informa c í , [ 1 3 2 ] Toifl , J . :
No . 3 ,
Gr afi cké
vs tupní
č. 2,
1 97 3 .
SNTL ,
Grafi cké
informa c í ,
č. 4,
[ 1 3 3 ] UNlRAS
SNTL ,
July 1 9 8 0 . p o č í tače ,
Výb ě r
zař í zení
počítače ,
Výběr
1 97 3 . mater iály
firmy
Eur opean
S o f tware
1985 .
[ 1 3 4 ] UNlRAS - Univer s a l Ras ter Repo r t , [ 1 3 5 ] Vandoni , C . E . ( Ed . ) : P r o c e ed ings , [ 1 3 6 ] Ví t a kol . :
P r o c e e d ings ,
zařízení
výs tupní
F i r emní
Contr a c t o r s ,
Conference
S I GGRAPH ' 8 0 ,
Firemní mater iály ,
Conference
EUROGRAPHI CS ' 8 5 ,
Nor th Hol l and Pub l . Te l evizní te chnika ,
Comp . , SNTL ,
1 98 5 .
1985.
P r aha ,
1 97 9 .
[ 1 3 7 ] Warno c k , J . E . : A Hidden Line AIgo r ithm for Hal f t one P i c tur e Repr e s entat ion , TR 4- 5 ,
Univ .
Utah,
Comp . S c i . Dep t . ,
Repor t
May 1 9 6 8 .
[ 1 3 8 ] Warno ck , J . E . : Generated
A
Hidden
Surface
Halftone
Comp . S c i . Dept . , [ 1 3 9 ] Watkin s , G . S . : of
of
U t ah ,
AIgor i thm
P i c tur e s ,
for
Univ .
Comput e r
of
U t ah ,
TR 4- 1 5 , June 1 9 6 9 .
A Real Time Vis ible
Comp . S ci . Dept . ,
Surface
Repo r t
P r o g r am ,
Univ .
UTEC-CSC- 7 0- 1 0 1 ,
June
1970. [ 1 4 0 ] Wa tkins , S . L . :
Masked Three Dimens ional
Rot a t ion , AIgor i thm 4 8 3 , CACM , Vol . 1 7 , [ 1 4 1 ] Wat te r s , G . , Wi l l is , P . : Ultra
High
S can
Defin i tion ,
Plot 1 97 4 ,
Conver t ing
Computer
P r og r am wi th pp . 5 2 0- 5 2 3 .
Extruded
Graph i c s
L in e s
Forum ,
at
Vol . 6 ,
No . 2 , May 1 9 8 7 , pp . 1 3 3- 1 40 . [ 1 4 2 ] We i l er , K . , Athe r ton , P . : Polygon
Ar ea
Vol . 1 1 ,
1 977 ,
[ 1 4 3 ] Whi t t ed , T . : D i s p l ay ,
Vol . 1 5 ,
[ 1 4 5 ] Wr i ght , T . J . : P roblem Trans .
for
An
Computer
Improved Vol .
1972, A
U s ing
( S I GGRAPH ' 7 7 ) ,
Mod e l
Shaded
AIgor i thm 4 2 0 ,
pp . 1 0 0- 1 0 3 .
P l o t t ing
in [ 4 1 ] ,
for
pp . 3 4 3- 3 4 9 .
Solution
Fun c tions
Vol . C- 2 2 , Fas t
1 989 ,
of
1973,
to Two
pp . 5 7 9- 5 9 0 .
the
Hidden
L ine
Var i ab l e s ,
IEEE
pp . 2 8 - 3 3 .
Ant i a l i a s ing
- 125 -
-- ---
Graph i c s
I l lumination
23, 1980,
Two-Space
[ 1 4 6 ] Wyvil l , G . , Shar p , P . :
-
Removal
Hidden-Line P l o t t ing Program ,
on Compute r s ,
Image s ,
Sur face
pp . 2 1 4- 2 2 2 .
CACM,
[ 1 4 4 ] W i l l i ams , H . : CACM ,
S o r t ing ,
Hidden
of
Ray
Traced
[ 1 4 7 ] Xu , H . , Peng , Q . S . , Liang , Y . D . : for Computer Environment , [ 1 4 8 ] Zhang , J . : 1898,
Accelerated
in [ 6 4 ] ,
Radi o s i ty
1989,
pp . 5 1 - 6 2 .
A Fas t Hidden-Line Removal A l go r i thm ,
in [ 4 1 ] ,
pp . 5 9 1 - 6 0 2 .
[ 1 4 9 ] B l inn , J . F . , Carpenter , L . C . , Lane , J . M . , Wh i t t ed , T . : Me thods CACM ,
for
D i s p l aying
Vo l . 2 3 , pp . 2 3 - 3 4 ,
[ 1 5 0 ] Phong , B . T . :
Parame t r i ca l ly
Univ .
for
of Utah,
for
the
Defined Surfac e s , Vol . 1 1 , The s is ,
Computer
Gene r a t e d
Gene r al i z e d
A
Computer
I mage s ,
Display
of
L ine
S c an
P ar ame t r i ca l ly
Computer Graph i c s and I mage P r o ce s s ing ,
Computer
Univ .
[ 1 5 3 ] Kay , Douglas Tr a c ing
S co t t :
for
of
Curved
Transparency ,
Ref r a c tion
Synthe s ized
PhD
Image s ,
and
MSc
Ray
The s i s ,
1 97 9 . S c ot t ,
Greenber g , D . :
Synthe s i zed
Image s ,
T r ansparency Compu t e r
( S I GGRAPH ' 7 9 P r o ceedings ) , Vol . 1 3 , 'pp . [ 1 5 5 ] Be ckmann , P . , Spi z z i chiono , A . : from
Surfa c e s ,
1 97 1 .
Computer
Douglas
Compu t e r
Display
of Utah,
Corne l l Univ . ,
Wav e s
Sur face s ,
pp . 2 9 0 - 2 9 7 , 1 9 7 9 .
[ 1 5 2 ] Gour aud , H . :
[ 1 5 4 ] Kay ,
Defined
L ine
1973.
[ 1 5 1 ] Carpenter , L . C . , Lane , J . M . : Algori thm
S c an
1980.
I l lumination
PhD The s is ,
1963,
Me thod
Rough
for
Gr aphi c s
1 58 - 1 64 ,
1 97 9 .
S ca t t e r ing of E l e c t r omagne t i c
Sur face s ,
MacMil l an
Pres s ,
New
York ,
pp . 1 - 3 3 , 7 0- 9 8 .
[ 1 5 6 ] Cook , R . L . , Tor r ance , K . E . : Gr aphi c s ,
A Refle c t ance Mode l for Compu t e r
ACM on Gr aphi c s , Vol . 1 . ,
[ 1 5 7 ] Tor r an ce , K . E . , d i s t r i bution ,
Spar r ow , E . M . : and
pp . 7 - 2 4 ,
1982.
Polarization,
off- spe cular
peak
r e f l e c t e d from r oughened surface s ,
d i r e c t ional
phenomena
in
l ight
J ourna l of the Op t i cal
S o c ie ty of Ame r i c a , Vol . 5 7 , 7 ( July 1 9 6 6 ) , 9 1 6- 9 2 5 . [ 1 5 8 ] Tor r an ce , K . E . ,
Sparrow , E . M . :
Theory
off - s p e cular
for
r e f l e c t iom from r oughened surface s ,
Journal of the Opt i cal
S o c ie ty of Amer i c a , Vol . 5 7 , 9 ( S ept .
1 9 6 7 ) , 1 1 0 5- 1 1 1 4 .
[ 1 5 9 ] Trowbridge , T . S . , r e pr e s entat ion
Re i t z , K . P . : of
r oughened
i r r e gu l a r i ty
Ave r age
surface
for
Journal of the Op t i cal S o c i e ty of Ame r i c a ,
r ay
r e fl e c t ion ,
Vo l . 6 5 ,
5
( May
1975 ) , 531-536. [ 1 6 0 ] Agos ton , G . A . : De s i gn ,
Color Theory and I t s App l i c aton in Ar t
Springe r Ver l ag 1 9 8 7 - 126 -
and
[ 1 6 1 ] B a l dwin , L . :
Col o r
Cons ideration ,
BYTE
1 984,
S e p tember
pp . 2 2 7 - 2 4 6 [ 1 6 2 ] Cahil l , B . :
on
Dr awing
the
BYTE
8 5 1 4 /A ,
1 990,
Mar ch
pp . 2 7 9 - 2 8 9 [ 1 6 3 ] Dr s , L . : SNTL ,
P l o chy ve výpo č e tní t e chni c e ,
Mat ema t i cký s eminář
SNTL 1 9 8 4
[ 1 6 4 ] Ska l a , V . : Are a s
F i l l ing and Hat ching Ope r a tions
with
Coni c
ACM - S I GGRAPH
Workshop
Por tugal ,
1 988
[ 1 6 5 ] S ame t , H . :
The
S tructur e s ,
Edge s
for L i s boa
Quadt r e e
Computing
the
and
Ras t e r
Vol . 1 6 ,
Envi r o nme n t , L i s bo a ,
Gr oup ,
Local
Re l a t e d
Surveys ,
for Non- Convex
Hie r ar chi c a l No . 2 ,
Data
June
1 9 84 ,
pp . 1 8 7 - 2 6 0 [ 1 6 6 ] S ame t , H . ,
Webbe r , R . E . :
U s ing Quad t r e e s , July 1 9 8 5 ,
pp .
ACM Trans .
for
[ 1 6 8 ] B aumgar t , B . G . :
Ras t e r
A
Graphi c s ,
Vol .
P o lygons
4,
No .
3,
for
Mode l l ing
Cranfie l d
1986 for
Compu t e r
and
D i s p l ay ing
of
3D
1986
T e chni cal Repor t ,
Ins t .
of
pp . 5 8 9 - 5 9 6
of Glasgow ,
Typ e s of Mode l l e r ,
Data
p r o c ee dings
Repre s en t a t ion
Te chn i c a l Repor t , Univ .
Mathema t i c s ,
of
Springe r Ve r lag ,
Polyhedron
Te chni ques
[ 1 7 0 ] P ra t t , M . J . : U. K. ,
on Graphi c s ,
P ro c . Nat . Comp . Conf . , AF I P S 1 9 7 5 ,
[ 1 6 9 ] Ki l gour , A . : S cene s ,
Col l e c t ion
P e t er s , F . J . , van L i e r op , M . L . P . ( Ed . ) :
a Workshop he l d a t S t e ens e l , Vi s ion ,
a
1 82-222
[ 1 6 7 ] Ke s s ener , L . R . A . , S tructur e s
S to r ing
Te chno l o gy ,
Dep t .
of
Cranf i e l d
September 1 9 8 2
[ 1 7 1 ] Thalmann , N . M . , Thalmann , D . ( Ed . ) : and P r a ct i c e ,
Springer Ver l ag ,
Comput e r Animat i on ,
Theory
1985.
[ 1 7 2 ] Greenber g , D . P . :
Ray Tracing and Radios i t y , S ta t e o f Ar t in Image Synthe s is , cour s e not e s , S I GGRAPH ' 8 6 , ACM , 1 9 8 6 Rad i o s i ty :
[ 1 7 3 ] Gre enber g , D . P . , Cohe n , M . F . , Torran ce , K . E . : A Me thods
for
Computing
Global
I l l iminat i on ,
The
V i sual
Compu te r , Vol . 2 . , No . 5 . , September 1 9 8 6 . [ 1 7 3 ] Bur goon , D . A . : Rad i o s i t y ,
Global Hewl e t t
I l lumination
Packard
Mode l ing
J ournal ,
D e c ember
U s ing 1989,
pp . 7 8 - 8 8 . [ 1 7 4 ] Goral , C . M . , Tor r an ce , K . E . , Gr e enbe r g , D . P . , B a t t a il e , B : Mode l l ing Surf ac e s ,
the
Interaction of S IGGRAPH ' 8 4 , ACM , 1 9 8 4 .
Ligh t
be twe en
D i ffus e
- 127 -
-----�-.- ---- - - - - - - -,--- ------� -- �
�----- -------- --------
[ 1 7 5 ] Cohen , M . F . , Greenberg, D . P . :
The
Hemi-Cube :
So lut ion for Complex Envir onmen ts , [ 1 7 6 ] Gr aphi es
Dat abook,
fir emní
Radi o s i ty
S I GGRAPH ' 8 5 ,
mate riály
INMO S
ACM ,
1985 .
SGS-Thomp s on ,
1990. [ 177 ]
Sys tems Solut ions ,
[ 1 7 8 ] Jarvi s , J . F . ,
fir emní mate r iály IChips Eur ope ,
Robe r t s , C . S . :
Continuous
Tone
Images
Communi e . ,
Vol . 2 4 ,
A New Te ehnique for D i s p l aying
on a Bilivel
pp . 8 9 1- 8 9 8 ,
Display ,
I EEE Trans .
1976. Improper
[ 1 7 9 ] Abhyankar , S . S . , Chandras ekar , S . , Chandru, V . : Inte r s e e t ion of Algebraie Curves , vo l . 9 ,
No . 2 ,
1990,
[ 1 8 0 ] Andreev , R . D . :
Computer Gr aphies Forum , [ 1 8 1 ] Brune t , P . , Navazo , I . : Extended
No . 2 ,
19 90,
[ 1 8 2 ] Day , A . M . : Convex Trans .
ACM Trans .
on Gr aphi es ,
pp . 1 4 7- 1 5 9 .
Al gorithm
Us ing
for
Cl ipping Arbi trary
Vo l . 7 ,
Solid
Oetrees ,
No . 3 ,
1988,
pp . 1 8 3 - 1 9 2 .
Repres entat ion
ACM
Tra:ns .
on
Po lygons ,
and
Ope r a t ion
Graphi e s ,
vol . 9 ,
pp . 1 7 0- 1 9 7 .
The
Hul I
Implementat ion of an Algo r i thm
of
a
Set
of
on Gr aphies , vo l . 9 ,
Thr ee No . 1 ,
to
Dimens ional
find
Poin ts ,
1990,
pp . 1 0 5 - 1 3 2 .
[ 1 8 3 ] Dobkin , D . P . , Levy , S . L . F . , Thurs ton , W . P . ,
Wilks , A . R . :
Traeing by Pie eewise Linear Appr oximations , Gr aphi es ,
1 9 90 .
vo l . 9 ,
No . 4 ,
1990,
to
Algori thms ,
ACM
Cope
with
Trans .
S imul at ion
Cont our
ACM Trans .
of
Degenerate
Cas e s
Graphi es ,
vol . 9 ,
on
ACM
on
pp . 38 9-42 3 .
[ 1 84 ] Ede l s brunner , H . , Mueke , E . P . : A Te ehnique
the
S imp l ie i ty : in
Geome t r i e
No . 1 ,
1990,
pp . 6 6 - 1 0 4 . [ 1 8 5 ] Fal eidieno , B . , Floriani , L . : for
S o l id Obj e e t
vo l . 7 ,
No . 1 ,
Hierar ehi eal
Representation ,
1988,
Boundary
ACM Trans .
On
on Graphies ,
the
Power
of
the
Gr aphi es , [ 1 8 8 ] Heal , B . :
vo l . 7 ,
No . 2 ,
1988,
Vo l . 7 ,
for
High
Speed
vo l . 7 ,
No . 3 ,
1 98 8 ,
Hidden
No . 3 ,
Oetree
1988,
Comput er
Ray
Tr aeing
Buffe r ,
pp . 1 0 3 - 1 2 8 . Mul tip r o e e s s or ACM
Trans .
on
pp . 1 5 1 - 1 7 9 .
Removal ,
Computer
Graph i e s
Forum ,
pp . 1 9 9- 2 0 6 .
[ 1 8 9 ] Herman , I . , Reviezky , J . : Problem,
Gr aphies ,
Frame
[ 1 8 7 ] Gaude , S . , Hobs on , R . , Chilka , P . , Calver t , T . : Exper iments
on
Mode l
pp . 42- 6 0 .
[ 1 8 6 ] Fournie r , A . , Fus s e l , D . : ACM Tr ans .
A
Some Remarks
Graphies
pp . 2 6 5 - 2 7 2 . - 128 -
Forum,
on the Mode l l ing Clip Vo l . 7 ,
No . 4 ,
1 988,
[ 1 9 0 ] Herman , I . : Computer 1990,
On
The
Proj e c t ive
Graphi c s ,
Computer
Invar iant
Graphi cs
of
Forum ,
Coni c s
Vol . 8 ,
in
No . 4 ,
pp . 3 0 1 - 3 1 4 .
[ 1 9 1 ] Hobby , J . D . : Trans .
Ras terizat ion
of
on Gr aphi cs , vo l . 9 ,
[ 1 9 2 ] Kui j k , A . A . M . , B lake , E . H . : Interpola ti on ,
Nonparame tr i c
No . 3 ,
1990,
Fas ter
Curve s ,
ACM
pp . 3 2 6 2 - 2 7 7 .
Phong
Shading via Angular
Comput er Graphics. Forum ,
Vol . 8 ,
No . 4 ,
1990,
pp . 3 1 5 - 3 2 5 . [ 1 9 3 ] Lamming , L . , Rhode s , W . L . :
A S imple Me thod for Improved Color
Pr inting of Monitor Image s , No . 4 ,
19 90,
[ 1 9 4 ] Levoy , M . : Trans .
Efficient
[ 1 9 5 ] Nichol l , R . A . ,
Ray
Tracing
vo l . 9 ,
No . 3 ,
by
vo l . 9 ,
of
1 9 90,
Ni chol l , T . M . :
Trans formations
of
Axial
View
Trans .
on Graphics ,
Vo l . 9 ,
1 9 90,
a
Set
No . 3 ,
1 9 90,
Un ifi cation? ,
1990,
vo l . 9 ,
Interference Det e c tion ,
No . 4 ,
1990,
Active
vol . 8 , No . 1 ,
Include ACM
of
Par a l le lopides ,
on the ACM
pp . 2 7 8 - 3 00 . Gr aphi c s
Forum ,
1989,
Spe cularly
Trans .
on
ACM
pp . 3 7 6 - 3 8 8 . Zones
in
CSG
for
Redundan cy E l imination ,
and Shading Algo r i thms ,
[ 2 00 ] Rushmeier , H . E . , Torrance , K . E . : Mater i al s ,
T r ans .
Computation
Computer
Ac c e l e r a t ing Boundary Evaluat ion ,
to
ACM
Fas t Line S can Conve r s ion,
[ 1 9 9 ] Ro s s igna c , J . , Voe l cker , H . B . :
Me thod
Geome t r i e
pp . 1 4 9- 1 6 4 .
on Graphi cs ,
on Graph i c s ,
ACM
pp . 2 8 -40 . I s othe t i c
vo l . 9 ,
Data"
Relat ionships Between Image Synthe s i s and
Towar ds
No . 2 ,
of
[ 1 9 8 ] Rokne , J , G . , Wyvil l , B . , Wu , X . : Trans .
vol . 9 ,
pp . 2 4 5 - 2 6 1 .
Program Tr ans formation,
No . 1 ,
[ 1 9 7 ] Pun , T . , B l ake , E . :
Volume
Performing
[ 1 9 6 ] Preparata , F . P . , Vitter , J . S . , Yvine c , M . :
Analys is :
on Gr aphic s ,
pp . 3 4 5 - 3 7 5 .
on Gr aphi cs ,
Gr aphi cs ,
ACM Trans .
ACM Trans .
pp . 5 1 - 8 7 . Extended
the
Radios i ty
Refl e c t ing
and
Trans luent
Graphics ,
vo l . 9 ,
No . 1 ,
1990,
pp . 1 - 1 7 . [ 2 0 1 ] S t one , M . C . , Cowan , W . B . , Beatty , J . C . : the
Pr inting
Gr aphics ,
of
vo l . 7 ,
Digital No . 4 ,
Color
1988,
1990,
Image s ,
ACM
Trans .
on
pp . 2 4 9 - 2 9 3 .
[ 2 0 2 ] Thomas , D . , Netraval i , A . N . , Fox , D . S . : Tr a c ing wi th Covers ,
Color Gamut Mapping and
Ant i-al ias e d
Computer Graph i c s Forum ,
pp . 3 1 5 - 3 2 4 .
- 129 -
Vo l . 8 ,
Ray No . 4 ,
[ 2 0 3 ] Veens t r a . J . , Ahuj a , N . : Obj e c t s ,
ACM
Line
Drawing
on
Gr aphi c s ,
Trans .
of
O c tr e e
vol . 7 ,
Rep r e s ented No . 1 ,
1988,
pp . 6 1 - 7 5 . [ 2 0 4 ] Ware , C . , Cowan , W . :
The RGYB Color Geome try ,
Graphi c s , vol . 9 , No . 2 , [ 2 0 5 ] Zyd a , M . J . :
A
1988,
on
1 9 9 0 , pp . 2 2 6 - 2 3 2 .
de c ompos able
D i s p l ay Gene r a tion,
ACM Trans .
Algori thm
ACM Trans .
for
Contour
on Graph i c s ,
S urface
v ol . 7 ,
No . 2 ,
pp . 1 2 9 - 1 4 8 .
[ 2 0 6 ] JeŽek, F . :
Aut oCAD - učební t ex t , VŠSE P l zeň ,
[ 2 0 8 ] Rankl in , J . R . :
1991.
Computer
Graphics
Software
Advan c e s in Computer S c ience S e r ie s , [ 2 0 9 ] Rus hme ier , H . E . , Torrance , K . E . : Cal cul at ing
a P ar t i c ipat ing Medium ,
Z onal in
Computer
Con s t r u c t ion ,
P r en t i c e Hal l ,
The
Intens i t ie s
L ight
g r af ika ,
P o č í t a čová
[ 2 0 7 ] P O l á Ček , J . , JeŽek, F . , Kopincová , E . : skr ipta CVUT-FS Pr aha ,
1991 .
1989.
Me thod
the
for
P r e s en c e
Graph i c s ,
Vol . 2 1 ,
of
No . 4 ,
July 1 9 8 7 . [ 2 1 0 ] P o č í t ačová grafika - Názvo s l oví ,
CSN 3 6 9 0 0 1 č á s t 1 3 .
[ 2 1 1 ] Sys t émy zpr acování informa c í ( GKS ) ,
CSN 3 6 9 1 8 0 .
[ 2 1 2 ] F i r emní materiály firmy INTERGRAPH ,
June 1 9 9 1 .
[ 2 1 3 ] Ska l a , V . :
P o č í t a čová grafika I ,
univer z i t a ) , [ 2 1 4 ] Skala , V . :
P l zeň ,
2.
vydán í ,
Skripta V Š SE 1 991 .
P o č í t a čová grafika I I ,
univer z i ta ) ,
P l zeň ,
[ 2 1 5 ] Drzai c , P . S . :
2 . vydán í ,
Nema t i c
Drop l e t
Skr ipta V Š S E ( Západoče ská
199 1 . Pqlymer
Contr as t colour ed Re f l e c t ive Displays , and No . 1 ,
App l i cations ,
F i lms
for
High
D i s p l ay s Te chnolo gy
Butterwor th-He inemann
Ltd . ,
Vol . 1 2 ,
January 1 9 9 1 , pp . 2 - 1 3 .
[ 2 1 6 ] S chwar z , M . W . , Cowan , W . B . , Be a t ty . J . C . : Compar i s on Mode l s ,
of
RGB ,
YIQ,
LAB ,
Exper imental
An
HSV,
and
Opponent
ACM Tr ans a c t ion on Computer Graphi c s ,
Apr i l 1 9 8 7 ,
Color
Vol . 6 , No . 2 ,
pp . 1 2 3- 1 5 8 .
[ 2 1 7 ] Col our Addendum to I SO 8 6 1 3 - Working Draft , WG 5 ,
( Západoče ská
I SO TC 9 7 S C 1 8
X3H3 / 8 8- 4 7 .
[ 2 1 8 ] Pre t t , V . :
Cifr ova j a
obrobo tka
izobražen i j ,
M ir ,
Moskv a ,
1982. [ 2 1 9 ] Ser ba , I . : p r o s torové
Termodynamický s cény
v
p ř í s tup
počítačové
1991. - 130 -
k
výp o č tu
grafi ce ,
o s v ě t l ení
s eminář
MOP 9 1 ,
[ 2 2 0 ] S o chor , J o :
S l edování paprsku ve 3D s céně ,
s eminář MOP 9 1 ,
1 99 1 . [ 2 2 1 ] Hal l , R o : Imaginary ,
I l lumination
and
Spr inger Ver lag ,
Color
in
Comput e r
Generated
1 9 89 0
- 131 -
---
- - --�--------- -�--------- -
- - -------�-- --- -------_. _-�--
---�