Basic Geometric Modeling Tools
1
1. Granini objekti
Definicija 1.1. Granini objekat objekta A je svaki objekat B koji sadri A.
U nekim oblastima raunarske grafike ponekad je potrebno odrediti presek dva sloena objekta, taj
postupak iziskuje mnogo sloenih izraunavanja i vremena. Sa druge strane, zato ne izbei tako
sloen postupak ako se na kraju ispostavi da se dati sloeni objekti ne seku. Upravo u takvim
situacijama nam pomau granini objekti, jer ako se granini objekti ne seku, onda se sigurno ne seku
ni sloeni objekti koji se nalaze unutar njih.
U ovoj glavi obradiemo neke osnovne granine objekte. Najvanije osobine koje granini objekti
treba da poseduju su sledee:
1) Lako se izraunavaju
2) Lako se uoavaju njihovi preseci
3) Objekat koji sadre treba da bude to blie njegovim granicama
Definicija 1.2. Kutija prostora je svaki podskup, [ ] [ ] [ ], skupa ,
gde . (posmatraemo [ ] kao segment i nije obavezno da je .) Granina kutija za
neki objekat je svaka kutija koja sadri taj objekat.
Postavlja se pitanje kako odrediti presek dve granine kutije. Lako se uoava da se dva segmenta
[ ] i [ ] seku akko
( ( ) ( )) ( ( ) ( ))
i ako se oni seku onda je interval preseka
[ ( ( ) ( )) ( ( ) ( ))]
Primer 1.3. Posmatramo dve granine kutije u prostoru , [ ] [ ] i
[ ] [ ],
sa slike uoavamo da se kutije i seku ako i samo ako
( ( ) ( )) ( ( ) ( ))
i
( ( ) ( )) ( ( ) ( ))
Kada problem preseka generalizujemo na prostor imamo sledecu teoremu
Teorema 1.4. Dve kutije [ ] [ ] [ ] i [ ] [ ]
[ ] u prostoru se seku ako i samo ako
( ( ) ( )) ( ( ) ( ))
za svako . Ako se one seku, onda
[ ] [ ] [ ]
Basic Geometric Modeling Tools
2
Dakle, da bi proverili da li se dve kutije seku, potrebno je proveriti da li se seku svi njihovi
segmenti po svim koordinatama, ovaj provera naziva se minimax test.
Primer 1.5. Upotrebu graninih kutija pokazeemo na primeru poligona. Granina kutija nekog
poligona moe se definisati iz minimalnih i maksimalnih vrednosti svih temena, po svim
koordinatama.
U slici iznad posmatramo poligon ( ), gde ( ) . Granina kutija
poligona odreuje se na sledein nain
( | ) ( | )
( | ) ( | )
odnosno granina kutija poligona je [ ] [ ].
Granine kutije su verovatno najei granini objekti jer je lako raditi s njima, ali daleko od toga
da su savreni. Osnovni problem je taj to granina kutija ne obezbeuje mali prostor izmeu nje i
objekta koji sadri. Na primer, najmanja granina kutija za liniju je ona gde linija predstavlja
dijagonalu granine kutije. Zbog toga se uvode i drugi granini objekti koji otklanjaju nedostatke koje
poseduje granina kutija.
Definicija 1.6. Hiperravan u prostoru je skup svih taaka takvih da je gde je
vektor normale na hiperravan, a .
Definicija 1.7. Ploa u prostoru je oblast izmeu dve paralelne hiperravni.
Za dati ogranien skup taaka i jedinini vektor plou odreujemo na sledei nain: Uzimamo
pravu koja prolazi kroz koordinantni poetak i ima vektor pravca , uoavamo dve hiperavni (sa
vektorom normale ) daleko jedna od druge na dva kraja prave. Transliramo te dve hiperavni jedna
prema drugoj u odnosu na vektor sve dok ne dotaknu neku taku skupa .
Definicija 1.8. Oblast izmeu dve hiperravni dobijena iz gornjeg postupka naziva se ploa za skup
odreena jedininim vektorom i oznaava se sa ( ).
Primer 1.9. U prostoru posmatramo dve hiperravni (sa isitim vektorom normale) koje
ograniavaju plou, one imaju sledee jednaine
gde je . Ukoliko take skupa projektujemo na pravu koja prolazi kroz koordinantni poetak
i ima vektor pravca , onda e projekcije biti u segmentu [ ]. Moemo uzeti i vie jedininih
vektora kako bi ograniili celi objekat, time dobijamo uoptenu graninu kutiju.
Basic Geometric Modeling Tools
3
Definicija 1.10. Uoptena granina kutija za ogranien skup taaka odreena skupom jedininih
vektora { } je presek ploa koje ti jedinini vektori odreuju. Preciznije, ako oznaimo taj
skup sa ( ), onda
( ) ( )
Sada emo pokazati kako se uoptene granine kutije izraunavaju za neke objekte prostora .
Primetimo da je sve to je potrebno izraunati vrednosti i .
1) Linearni poliedar: Ovde moemo svaku ivicu poliedra projektovati na vektor , a zatim
uzeti minimum i maksimum tih vrednosti,
( )
( )
2) Implicitno definisane povri: Neka je povr definisana kao
( )
Vrednosti i bie minimum i maksimum linearne funkcije
( ) ( )
3) Sloeni objekti: Neka je objekat definisan nizom operacija unija, preseka i razlika dva objekta
poevi od osnovnih objekata spomenutih iznad. Vrednosti i sloenog objekta se izraunavaju iz
vrednosti i osnovnih objekata. Na primer, za uniju dva objekta i , izraunavamo minimum
vrednosti za oba objekta i maksimum vrednosti za oba objekta.
Izraunavanje preseka dve uoptene granine kutije i (definisanih nad istim jedininim
vektorima) takoe nije teko. Formule su sline onima za dve kutije, razlika je u tome to umesto
izraunavanja minimuma i maksimuma po koordinatama ( ortogonalne projekcije na osama) sada
izraunavamo minimum i maksimum ortogonalnih projekcija na vektore , pa je
( ) (
( ) ( ))
( ) ( ( )
( ))
Uoptene granine kutije i su disjunktne (ne seku se) ako i samo ako ( )
( ) za
neko .
Drugi oblici graninih objekata mogu biti granini krugovi i lopte, optije granine sfere. Takvi
granini objekti su takoe laki za izraunavanje, ali mogu bolje da prime neke objekte. Dve sfere sa
centrima i i poluprenicima i se seku ako i samo ako
Basic Geometric Modeling Tools
4
| |
Izraunavanje odgovarajue granine sfere za neki objekat nije teko ako se radi runo. Meutim
generalizacija tog procesa nije tako jednostavna. Ovaj proces obuhvata nalaenje najmanje sfere koja
sadri skup od taaka. Najoptimalniji algoritam1 koji izraunava ovaj problem je brzine ( ).
2. Surrounding test
Pored izraunavanja preseka, odreivanje da li taka pripada ili ne nekoj dvodimenzijalnoj ili
trodimenzijalnoj oblasti je takoe vrlo vaan zadatak. U ovoj glavi baviemo se problemom koji treba
da odgovori na pitanje da li taka pripada ili ne poliedru , tzv. Surrounding test. Surrounding
testovi se prirodno mogu podeliti u dve grupe, oni koji ispituju konveksne poliedre i oni koji se bave
proizvoljnim poliedrom. Poeemo sa testovima koji proveravaju da li taka pripada konveksnom
poliedru. Pre nego to ponemo sa testovima, definiimo formalno pojam poluprostora i poliedra.
Definicija 2.1. Poluprostor prostora je skup svih taaka takvih da je gde je
vektor normale na poluprostor, a .
Definicija 2.2. Poliedar u prostoru je presek konano mnogo poluprostora.
Test normala: Posmatramo proizvoljan poluprostor nekog poliedra. Dakle neka je
nejednaina poluprostora . Uzmimo proizvoljnu taku koja se nalazi na ivici poliedra, dakle vai
( )
odnosno, poluprostor moemo zapisati u ekvivaletnom obliku ( ) , gde je vektor
normalan na poluprostor, a taka pripada ivici poluprostora. Taka pripada poliedru ako i samo
ako
( )
za svako .
Primer 2.3. Posmatramo kvadrat u prostoru koji je sastavljem od taaka
( ) ( ) ( ) ( )
Dakle, kvadrat je sastavljen u preseku 4 poluprostora, odreenim 4 vektora normale
( ) ( ) ( ) ( ) i takama koje pripadaju njihovim
ivicama. Ako taka ( ) pripada kvadratu, onda
( )
( ) ( )
( ) ( )
slino imamo
( )
( )
1 http://en.wikipedia.org/wiki/Smallest-circle_problem
Basic Geometric Modeling Tools
5
( )
Test jednaine: Ovaj test je vrlo slian prethodnom. Posmatraemo recimo prostor dimenzije 2.
Neka je ( ) i . Sa ovakvim oznakama, poluprostor je skup taaka oblika
{( )| }
Sledi da taka ( ) pripada poliedru ako i samo ako
za svako .
Test baricentrinih koordinata: Ovde emo najpre definisati pojam baricentrinih koordinata.
Definicija 2.4. Neka su linearno nezavisne take prostora i neka je .
Koeficijenti u jednaini
za koje je
nazivaju se baricentrine koordinate take u odnosu na -torku taaka ( ).
Ovaj test moe se jedino upotrebiti za poliedar u ravni, odnosno za poligon. Neka je ,
izdvojimo sve trouglove oblika ( ) i proveramo da li taka pripada datom trouglu
izraunvajui baricentrine koordinate u odnosu temena datog trougla. Na primer, za trougao
ispitaemo da li taka pripada tom trouglu. Neka su , i baricentrine koordinate take u
odnosu na trojku ( ), tada imamo
( )
Taka pripada trouglu ako i samo ako i .
Wedge test: Ovaj test se takoe koristi za poliedre u ravni, odnosno poligone. Neka je dat poligon
, najpre odredimo cetralnu taku poligona , odnosno taku koja je na jednakoj
udaljenosti od svih temena poligona . Poluprave koje poinju iz take i prolaze kroz temena
poligona podilee ravan na neogranienih skupova, odnosno na tzv. beskonanih klinova
(wedge), koji su ispresecani ivicama poligona . Moemo pronai klin koji sadri taku tako to
emo odraditi binarno pretraivanje ugla koji obrazuje vektor sa recimo -osom po po svim
Basic Geometric Modeling Tools
6
uglovima koji obrazuju vektori sa -osom. Konano, treba odrediti da li taka lei u trouglu koji
obrazuje ivica poligona i neogranien skup u kome se nalazi taka .
Sada emo videti i jedan test koji proveravaju da li taka pripada proizvoljnom poliedru.
Parity or crossings test: U ovom testu proverava se koliko puta neka poluprava, koja poinje iz
take , see ivice poliedra . Ako je broj tih preseka paran, taka se nalazi izvan poliedra , u
suprotnom taka se nalazi unutar poliedra . Meutim, da bi algoritam radio u svim sluajevima,
presek mora da se broji dva puta ako je poluprava tzv. tangenta za poliedar. U dvodimenzijalnom
smislu, to znai da ako je presek poluprave i ivice poliedra neka taka koju sadri i druga ivica, dakle
ako je presek teme, onda su date ivice sa iste strane poluprave. U tridimenzijalnom sluaju, stranice
poliedra koje sadre presenu taku nalaze se sa iste strane ravni koja sadri polupravu.
U prostoru uobiajenoje da se poluprava bira tako da bude paralelna sa -osom, dakle ima
vektor pravca ( ). Kako je poluprava paralena sa -osom, koordinata poluprave je konstanta,
obeleimo je recimo sa . To nam omoguava lako odreivanje da li poluprava see neku ivicu
poliedra. Uzimamo poetnu i krajnju taku neke ivice, i ispitujemo kordinate, obeleimo ih sa i
, i bez gubljenja optosti stavimo . Ako vai presek e postojati.
3. Osnovni algoritmi preseka
Pre nego to ponemo sa ovom i narednim glavama, najpre se treba podsetiti pojmova vektorskog i
meovitog proizvoda.
Definicija 3.1. Vektorski prozvod vektora i , u oznaci , je vektor za koji vai
1) Intenzitet vektora je povrina paralelograma konstruisanog nad vektorima i
2) Pravac vektora je normalan na ravan odreenu vektorima i
3) Smer vektora je takav da vektori , , obrazuju desni sistem
Iz definicije vektorskog proizvoda sledi
| | | || | ( )
Definicija 3.2. Meovitim proizvodom redom tri vektora , i naziva se skalarni proizvod
vektora i vektora , tj. ( )
Lako se pokazuje da meoviti proizvod predstavlja zapreminu paralelopipeda konstruisanog nad
vektorima , i kao ivicama.
Basic Geometric Modeling Tools
7
Problem 3.3. Potrebno je nai taku koja se dobija kao presek dva segnemta [ ] i [ ].
Reenje: Neka su i prave koje obrazuju take , i , respektivno. Kako taka pripada
obema pravama, vai
za neko i . Neka su i vektori normala u odnosu na prave i respektivno. Sledi
( ) ( )
odnosno
slino
( ) ( )
pa je
Naravno, ovde moe da se desi da i nisu definisani zbog deljenja nulom, to znai da su prave
i paralelne, pa prilikom reavanja problema imamo dva sluaja
1) Segmenti [ ] i [ ] nisu paralelni. U ovom sluaju koristimo prethodno opisane formule i
izraunavamo i . Ako onda se segmenti [ ] i [ ] seku u taki
2) Segmenti [ ] i [ ] su paralelni. Ovaj sluaj se sastoji iz dva koraka. Prvo proveravamo da li
je . To se moe postii proverom da li postoji zajednika taka . Na primer, ako je
onda je . Ako i nije ista linija to znai da se segmenti ne seku. Kada se ispostavi da je
jo uvek treba da proverimo da li se segmenti seku. To se moe proveriti kao u prvoj glavi,
prenosei problem na prostor .
Problem 3.4. Potrebno je nai presek prave i ravni u prostoru . Pretpostavimo da je prava
definisana kao prava kroz dve take i , da taka pripada ravni i da je njen vektor normale.
Reenje: Kako pripada pravi , to moemo zapisati u sledeem obliku
za neko t. tavie, je ortogonalan na vektor pa sledi
( )
izrauvajui gornju jednainu to dobijamo
Naravno, je definisano ako i nisu ortogonalni vektori, odnosno prava i ravan nisu
paralelne. U sluaju da su prava i ravan paralelne, treba ispitati da li prava lei u ravni.
Basic Geometric Modeling Tools
8
Primer 3.5. Nai presek prave koja prolazi kroz taku ( ) i ( ) i ravni koja
sadri taku ( ) i normalna je na vektor ( ).
Kada upotrebimo formule iz problema 3.4. imamo
( ) ( )
( ) ( )
( ) ( )
( ) ( )
Dakle
( )
( ) (
)
Problem 3.2. moe se lako uoptiti u sluaju da predstavlja hiperravan u prostoru . To emo i
pokazati u narednom delu.
Problem 3.6. Potrebno je nai presek prave i -dimenzionalne hiperravni u prostoru .
Pretpostavimo da su vektori normale hiperravni . Takoe, je prava definisana kao
prava kroz dve take i , a taka pripada hiperravni .
Reenje: Najpre definiimo , slino kao u prethodnom problemu
Naravno, je definisano pod uslovom da prava nije paralelna sa . Ako je onda
prava see hiperravan u taki
Primer 3.7. Odrediti presek prave i u prostoru , gde prolazi kroz take ( ) i
( ), a kroz take ( ) i ( ).
Pravu moemo posmatrati kao hiperravan dimenzije 1. Vektor pravca prave je vektor
( ), a vektori normale na hiperravan ( ) ( ) (mogu se dobiti Gramm-
Schmidt2 postupkom). Tada imamo
( ) ( )
( ) ( )
i
( ) ( )
( ) ( )
kako je , presek prava i je
( )
( ) ( )
Problem 3.8. Potrebno je nai presek tri ravni koje su definisane takama i
vektorima normala . Pretpostavljamo da su vektori normala linearno nezavnisni, jer bi u
suprotnom ravni bile paralelne.
2 http://hr.wikipedia.org/wiki/Gram-Schmidtov_postupak
Basic Geometric Modeling Tools
9
Reenje: Kako su ravni date jednainama ( ) , odnosno potrebno je
reiti sistem od tri jednaina po .
Ako vektore oznaimo sa (
), a ( ) dobijamo sledei ekvivalentan
sistem
Ovaj sistem moemo reiti pomou Kramerovog pravila, ako sa obeleimo matricu sistema, a sa
matrice gde u matrici sistema zamenimo -tu kolonu sa kolonom slobonih lanova, imamo
( )
( )
Sada je potrebno izraunati odgovarajue determinante
( ) |
| ( )
( ) |
|
(
)( ) (
)( ) (
)( )
( ) |
|
(
)( ) (
)( ) (
)( )
( ) |
|
(
)( ) (
)( ) (
)( )
pa imamo
( ) ( ( )
( ) ( )
( ) ( )
( ))
( ( ) ( ) ( ))
( )
( )(
)
( )
( )(
)
( )
( )(
)
( )
odnosno
Basic Geometric Modeling Tools
10
( )( ) ( )( ) ( )( )
( )
Sledea dva problema bave se presekom poluprave i krunice. U nastavku emo koristiti sledeu
notaciju: e biti poluprava koja polazi iz take i ima vektor pravca , a prava kroz taku sa
vektorom pravca .
Problem 3.9. Nai presek , ako postoji, poluprave i krunice sa centrom i poluprenikom .
Reenje: Kako taka pripada pravi nju moemo zapisati u obliku
Kako se taka nalazi na krunici, rastojanje od take do centra jednako je polupreniku, pa
imamo
| |
( ) ( )
( ) ( )
Neka je sada , ( ) i ( ) ( ) . Gornja jednakost sada moe
biti zapisana u obliku
Reavajui kvadratnu jednainu po dobijamo
( )
U zavisnosti od diskriminante imamo 3 sluaja
1) , prava preseca krunicu u jednoj taki, tj. prava je tangenta krunice. Ako je
to znai da i poluprava see krunicu.
2) prava , a samim tim i poluprava, nemaju presenih taaka sa krunicom.
3) , prava see krunicu u dve take. Neka su to take i , i bez gubljenja
optosti pretpostavimo da je . Ako je onda i poluprava see krunicu u dve take. Ako
onda poluprava see krunicu u jednoj taki. Konano ako je to znai da
poluprava i krunica nemaju presenih taaka.
Basic Geometric Modeling Tools
11
Problem 3.10. Nai presek , ako postoji, poluprave i krunice sa poluprenikom i centrom
u koordinantnom poetku.
Reenje: U ovom sluaju treba pronai za koje vai
| |
Odnosno
| | ( ) | |
Sledi
( ) ( ) | | (| | )
| |
Ako obeleimo ( ) | | (| | ) problem se zasniva na prethodnom, za sluaje
1)
2)
3)
4. Formule za rastojanje
Rastojanje take i prave: Neka je prava definisana takom i vektorom pravca i neka je
taka do koje traimo rastojanje. Taka
(
| | )
| |
je jedinstvena taka na pravi najblia taki . Rastojanje taaka a i p moemo odrediti kao
| | | (
| | )
| | |
ili
| |
| |
Rastojanje take i ravni: Rastojanje take do ravni koja sadri taku i normalna je na
jedinine vektore iznosi
| ( ) ( ) |
tavie,
( ) ( )
Basic Geometric Modeling Tools
12
je jedinstvena taka u ravni koja je najblia taki .
U prostoru ravan je data samo sa jednim vektorom normale , pa rastojanje iznosi
|
| ||
Taka
(
| |)
| |
je jedinstvena najblia taka taki .
Rastojanje hiperravni od koordinantnog poetka: Neka je hiperravan na prostoru definisana
koordinantno na sledei nain
gde je ( ) vektor normale na hiperravan . Tada se rastojanje hiperravni do
koordinantnog poeka izraunava na sledei nain
| |
Rastojanje izmeu dve prave: Neka je prava definisana takom i vektorom pravca , a prava
takom i vektorom pravca . Pretpostavimo da prave nisu paralelne. Pokazaemo dva naina za
izraunavanje rastojanja izmeu pravih i .
Kako su prave i mimoilazne to one imaju zajedniku normalu koja u preseku sa i daje
najkrae rastojanje, oznaimo to rastojanje sa . Sada pomou vektora , i moemo da
konstruiemo paralelopiped nad , i . Primetimo da upravo visina paralelopipeda predstavlja
zajedniku normalu pravih i . Znamo da zapreminu paralelopipeda moemo izraunati pomou
meovitog proizvoda, pa imamo
| ( )| ( )
sledi
( )
( )
Na drugi nain rastojanje izmeu prava i moe se izraunati formulom
| |
gde je
Basic Geometric Modeling Tools
13
( )( ) ( )( )
( )( ) ( )( )
( )( ) ( )
tavie, taka je jedinstvena najblia taka pravi . Slino, je jedinstvena
najblia taka pravi .
5. Formule zapremine i povrine
Povrina paralelograma: Povrina paralelograma u prostoru , obrazovanog nad vektorima i
iznosi
| | | (
)|
Kao to znamo, prva jednakost sledi iz definicije vektorskog proizvoda. Druga jednakost se takoe
moe dobiti direktnom upotrebom vektorskog proizvoda, ali postoji i jedan zanimljiv nain da se
dobije primenom skalarnog proizvoda
| || |
(| || | )
kada drugu stranu jednakosti sredimo, dobijamo
(| || | ) | | | | | | | | ( ) | | | | (| || |
)
(
)(
) ( )
(
)
( )
pa imamo
( )
| |
| (
)|
Basic Geometric Modeling Tools
14
Zapremina parelelopipeda: Zapremina paralelopipeda obrazovanog nad vektorima i u
prostoru jednaka je
|( ) | | ( )|
Povrina trougla: Povrina trougla definisanog nad vektorima i u prostoru iznosi
| |
| ( )|
Povrina pologona: Povrina poligona definisanog takama u prostoru iznosi
| (
)
|
Zapremina tetraedra: Zapremina tetraedra sa temenima , , i u prostoru iznosi
| (
)|
Top Related