26
KOMPJUTERSKA GEOMETRIJA Predrag Rajkovi´ c UVOD Kompjuterska geometrija se poˇ cela razvijati sa ubrzanim razvojem kompjutera ranih sedamesetih godina dvadesetog veka. Ona predstavlja skup metoda za defin- isanje i analizu objekata i procesa na raˇ cunaru. Kompjuterska geometrija je zasnovana na rezultatima mnogih drugih nauˇ cnih disciplina kao ˇ sto su: teorija vektora, analitiˇ cka geometrija, teorija skupova, topologija i numeriˇ cki metodi. Ova kombinacija matematiˇ ckog alata, zbog ˇ cesto vrlo sloˇ zenih modela zahteva i mo´ cni kompjuter. Kompjuterska geometrija je glavni sastavni deo kompjuterski podrˇ zanog diza- jna i proizvodnje, takozvanih CAD/CAM sistema (Computer Aided Design and Computer Aided Manufacturing). Takodje, kompjuterska grafika, umetnost, ani- macija, simulacija, kompjuterske vizije i robotika nezamislivi su bez kompjuterske geometrije. Kompjuterske modele moˇ zemo kreirati na osnovu objekata koji zaista postoje ili prema naˇ soj zamisli. Na ovaj naˇ cin je lakˇ se i praktiˇ cnije analizirati neki model nego eksperimentisati sa realnim objektom. U drugom sluˇ caju, pred autora se postavljaju stroˇ ziji zahtevi i oˇ cekuje ve´ ce iskustvo i mo´ c imaginacije. 1. PROJEKTIVNI SOFTVER Danas su u upotrebi brojni projektivni (grafiˇ cki) softveri, kao ˇ sto su: AUTO- CAD, RHINOCEROS, SOLIDWORKS, PROENGINEER i mnogi drugi. Mi ´ cemo koristiti softver RHINOCEROS, ali treba naglasiti da ovladavanjem jednim od ponudjenih sofvera, stvaraju se dobri preduslovi za brzo prilagodjavanje bilo kojem od preostalih. Pojektivni softver RHINOCEROS podrˇ zava Nacrtnu geometriju i pruˇ za mogu´ cnost crtanja projekcija objekta u Dekartovom koordinatnom sistemu: (1) TOP - pogled odozgo - projekcija u horizontalnoj ravni; (2) FRONT - pogled spreda - projekcija u frontalnoj ravni; (3) RIGHT - pogled sdesna - projekcija u profilnoj ravni. Pored toga, posebno je izdvojena PERSPECTIVE - neposredna (kosa ili ak- sonometrijska) projekcija objekta. 1

kompjuterska geometrija

Embed Size (px)

DESCRIPTION

kompjuterska geometrija

Citation preview

Page 1: kompjuterska geometrija

KOMPJUTERSKA GEOMETRIJAPredrag Rajkovic

UVOD

Kompjuterska geometrija se pocela razvijati sa ubrzanim razvojem kompjuteraranih sedamesetih godina dvadesetog veka. Ona predstavlja skup metoda za defin-isanje i analizu objekata i procesa na racunaru.

Kompjuterska geometrija je zasnovana na rezultatima mnogih drugih naucnihdisciplina kao sto su: teorija vektora, analiticka geometrija, teorija skupova,topologija i numericki metodi. Ova kombinacija matematickog alata, zbog cestovrlo slozenih modela zahteva i mocni kompjuter.

Kompjuterska geometrija je glavni sastavni deo kompjuterski podrzanog diza-jna i proizvodnje, takozvanih CAD/CAM sistema (Computer Aided Design andComputer Aided Manufacturing). Takodje, kompjuterska grafika, umetnost, ani-macija, simulacija, kompjuterske vizije i robotika nezamislivi su bez kompjuterskegeometrije.

Kompjuterske modele mozemo kreirati na osnovu objekata koji zaista postojeili prema nasoj zamisli. Na ovaj nacin je lakse i prakticnije analizirati neki modelnego eksperimentisati sa realnim objektom. U drugom slucaju, pred autora sepostavljaju stroziji zahtevi i ocekuje vece iskustvo i moc imaginacije.

1. PROJEKTIVNI SOFTVER

Danas su u upotrebi brojni projektivni (graficki) softveri, kao sto su: AUTO-CAD, RHINOCEROS, SOLIDWORKS, PROENGINEER i mnogi drugi.Mi cemo koristiti softver RHINOCEROS, ali treba naglasiti da ovladavanjemjednim od ponudjenih sofvera, stvaraju se dobri preduslovi za brzo prilagodjavanjebilo kojem od preostalih.

Pojektivni softver RHINOCEROS podrzava Nacrtnu geometriju i pruzamogucnost crtanja projekcija objekta u Dekartovom koordinatnom sistemu:

(1) TOP - pogled odozgo - projekcija u horizontalnoj ravni;(2) FRONT - pogled spreda - projekcija u frontalnoj ravni;(3) RIGHT - pogled sdesna - projekcija u profilnoj ravni.Pored toga, posebno je izdvojena PERSPECTIVE - neposredna (kosa ili ak-

sonometrijska) projekcija objekta.1

Page 2: kompjuterska geometrija

2

Svaka projekcija ima svoj prozor - window. On moze zauzeti sav radni prostordvostrukim klikom misa na mestu gde je ispisano njegovo ime. Velicina prozorase moze menjati postavljanjem misa na nekoj od njegovih ivica. Prozori se mogupomerati vucenjem naziva ka nekoj izabranoj tacki.

Ekran je podeljen na 4 dela: glavni meni, komandni meni, ikone i projekcije.Za najvaznije opcije menija izdvojene su ikone koje omogucavaju njihovo brzepronalazenje i izvrsavanje.

U glavnom meniju nalaze se podmeniji: File, Edit, Curve, Surface, Solids.Podmeni File obezbedjuje rad sa fajlovima-slikama. Moze se crtati nova slika(New) ili otvoriti vec postojeca. Takodje, mogu se stampati sve projekcije ili samoizabrane.

Podmeni Edit omogucava sredjivanje postojece slike:Undo - ponistava poslednju naredbu;Redo - vraca ponistenu naredbu;Cut - brisanje navedenog objekta;Copy - kopiranje (udvostrucavanje) objekta.Graficki softver, podrazava i ostale koordinatne sisteme, kao sto su: cilindricni,

sferni, a i specijalne koordinatne sisteme konstruisane nad krivama i povrsima.

2. PROJEKCIJE TACKE I KRIVE (POINTS AND CURVES)

Podmeni Curve (kriva) omogucava crtanje tacaka i krivih linija u prostoru injihovih projekcija. On sadrzi sledece opcije:

Point - crtanje tacke;Line - crtanje prave linije;Rectangle - crtanje paralelograma;Circle - crtanje kruga;Arc - luk;Ellipse - elipsa;Helix - zavojnica;Spiral - spirala.Mnogougao (trougao, . . . , sestougao, itd.) mozemo nacrtati koristeci:Curve > Line > LineSegments.Crtanje pravilnih mnogouglova postizemo sa:Curve > Line > Polygone,pri cemu, prvo treba izabrati broj strana, a zatim centar i jedno teme.Ako je kriva kompozitna (slozena), tj. sastavljena od vise delova, za spajanje

delova koristimo opciju Edit> Join.

Page 3: kompjuterska geometrija

3

Zapazimo da mnoge opcije imaju svoje ikonice na ekranu pomocu kojih se mogubrze aktivirati.

2.1. PROJEKCIJE TACKE

Tacka je geometrijski objekt ciji je polozaj u prostoru odredjen koordinatama(x, y, z). Prva projekcija tacke (x, y, z) je tacka (x, y, 0), druga (x, 0, z) i trecaprojekcija je (0, y, z).

Tacke se unose aktiviranjem podmenija Curve>PointObject. Jedna tackase moze zadati aktiviranjem opcije SinglePoint i misem, tako sto se klikne levitaster na izabranom mestu. Analiza koordinata te tacke moze se videti u donjemlevom uglu ili pomocu Analyze>Point. Takodje, moze se zadati koordinatama ukomandnoj liniji. Vise tacaka mozemo nacrtati pomocu Multiple Points. Trebavoditi racuna da mis bude poizicioniran u prozoru Perspective. Ako je u nekomdrugom onda se jedna koordinata usvaja kao nula.

Primer 2.1.1. Nacrtati projekcije tacaka: A(7,0,0), B(0,1,0), C(0:0:-5), D(3:6;9)Resenje: Iz menija Curve, uzeti PointObject >Multiple Points i zadavati

koordinate tacaka.

2.2. PROJEKCIJE KRIVE

Prosta kriva je ograniceni skup tacaka u prostoru cije koordinate su zadatejednoznacnim, neprekidnim i jednoparametarskim funkcijama oblika

x = x(t), y = y(t), z = z(t), t ∈ [0, 1].

Vektorska jednacina krive glasi ~p = ~p(t), t ∈ [0, 1].Pocetna tacka ~p0 je odredjena za t = 0, a krajnja ~p1 za t = 1.Primer 2.2.1. Jednacina prave (Line) glasi

x = x0 + l ∗ t, y = y0 + m ∗ t, z = z0 + n ∗ t

ilix− x0

l=

y − y0

m=

z − z0

n.

Jednacina prave kroz dve tacke glasi

x− x0

x1 − x0=

y − y0

y1 − y0=

z − z0

z1 − z0.

Page 4: kompjuterska geometrija

4

U Rhinocerosu postoji mogucnost crtanja: jednog segmenta (Single Line), visesegmenata (Line Segments) i izlomljene linije (Polyline). Pravac segmenta jejedna od osa, ali se moze menjati ako se istovremeno drzi taster Shift.

Primer 2.2.2. Jednacinama

x = a ∗ cos t, y = b ∗ sin t, z = 0

dat je krug (Circle) u horizontalnoj ravni .Primer 2.2.3. Jednacinama

x = a ∗ cos t, y = b ∗ sin t, z = b ∗ t

definisana je prostorna kriva zavojnica (Helix).Tangentni vektor (Tangent) krive je vektor

~pt(t) =d~p(t)dt

={

dxdt

,dydt

,dzdt

}

.

Vektor binormale~pt(t)× ~ptt(t)

i vektor glavne normale(~pt(t)× ~ptt(t)))× ~pt(t)

Normala krive je prava normalna na tangenti u datoj tacki.Tangenta se crta pomocu: Curve > Line > Tangent to Curve, a normala

se crta opcijom: Curve > Line > Perpendicular to Curve.Projekcije krive

~p = ~p(t) = (x(t), y(t), z(t)),

crtaju se kao krive

~pH = (x(t), y(t), 0), ~pF = (x(t), 0, z(t)), ~pR = (0, y(t), z(t)).

2.3. PARAMETARSKA KUBNA KRIVA

Parametarska kubna kriva je kriva koju cine tacke cije koordinate su zadatepolinomima do treceg stepena. Skraceno se zove PC-kriva.

Algebarska forma PC-krive glasi

x(t) = a3xt3 + a2xt2 + a1xt + a0x

y(t) = a3yt3 + a2yt2 + a1yt + a0y, t ∈ [0, 1].

z(t) = a3zt3 + a2zt2 + a1zt + a0z

Page 5: kompjuterska geometrija

5

Koeficijenti aij su algebarski koeficijenti krive.Algebarsku formu krive mozemo napisati u vektorskom obliku

~p(t) =

a3xa3y

a3z

t3 +

a2x

a2y

a2z

t2 +

a1x

a1y

a1z

t +

a0x

a0ya0z

= ~a3t3 + ~a2t2 + ~a1t + ~a0,

ili, u matricnom obliku

~p = T ·A = [ t3 t2 t 1 ] ·

~a3

~a2~a1

~a0

.

Granicni uslovi krive su podaci o krivoj u njenim krajevima: koordinate krajnjihtacaka i njihovi tangentni vektori.

Za parametarsku kubnu krivu, oni se mogu izraziti pomocu

~p(0) = ~a0, ~p(1) = ~a0 + ~a1 + ~a2 + ~a3, ~pt(0) = ~a1, ~pt(1) = ~a1 + 2~a2 + 3~a3,

odakle

~a0 = ~p(0),

~a1 = ~pt(0),

~a2 = −3~p(0) + 3~p(1)− 2~pt(0)− ~pt(1),

~a3 = 2~p(0)− 2~p(1) + ~pt(0) + ~pt(1).

Zamenom u algebarskoj formi dobijamo oblik

~p(t) = (2t3 − 3t2 + 1)~p(0) + (−2t3 + 3t2)~p(1) + (t3 − 2t2 + t)~pt(0) + (t3 − t2)~pt(1).

Blendirajuce (mesajuce, sjedinjujuce) funkcije su funkcije koje omogucavaju dase koordinate proizvoljne tacke krive izraze preko granicnih uslova. Krive Fi(t) suuzajamno ortogonalne krive. U granicnim uslovima samo je jedna razlicita od 0.Tako vazi:

F1(0) = 1, Fk(0) = 0 (k 6= 1), F2(1) = 1, Fk(1) = 0 (k 6= 2),

F3t(0) = 1, Fj,t(0) = 0 (j 6= 3), F4t(1) = 1, Fk,t(1) = 0 (k 6= 4).

Page 6: kompjuterska geometrija

6

Prednosti uvodjenja blendirajucih funkcija ogleda se u tome sto ostaju iste zasve PC-krive i za sve njihove koordinate.

Blendirajuce funkcije svih PC-krivih su

F1(t) = 2t3 − 3t2 + 1

F2(t) = −2t3 + 3t2

F3(t) = t3 − 2t2 + t

F4(t) = t3 − t2.

Sada, dobijamo geometrijsku formu PC-krive u vektorskom obliku

~p(t) = F1(t)~p(0) + F2(t)~p(1) + F3(t)~pt(0) + F4(t)~pt(1),

ili u matricnom obliku

~p = F ·B = [F1 F2 F3 F4 ] ·

~p0

~p1

~pt0~pt1

.

Ako F napisemo u obliku

F = T ·M = [ t3 t2 t 1 ] ·

2 −2 1 1−3 3 −2 10 0 1 01 0 0 0

,

gde je M-univerzalna transformaciona matrica, tada se uspostavlja veza algebarskei geometrijske forme krive

~p = F ·B = T ·M ·B,

odakle je A = MB ili B = M−1A, gde je

M−1 =

0 0 0 11 1 1 10 0 1 03 2 1 0

.

Projekcije krive

~p =

x0 y0 z0

x1 y1 z1

xt0 yt0 zt0xt1 yt1 zt1

,

Page 7: kompjuterska geometrija

7

crtaju se kao krive

~pH =

x0 y0 0x1 y1 0xt0 yt0 0xt1 yt1 0

, ~pF =

x0 0 z0

x1 0 z1xt0 0 zt0xt1 0 zt1

, ~pR =

0 y0 z0

0 y1 z1

0 yt0 zt00 yt1 zt1

.

Cetvorotackasta forma PC-krive je parametarska kubna kriva koja prolazi krozcetiri unapred zadate tacke. Posmatramo cetiri razlicite tacke [~p1, ~p2, ~p3, ~p4].Pridruzimo svakoj od njih po jednu vrednost parametra t tako da je t1 < t2 <t3 < t4. Sda, nadjimo matricu K dimenzija 4 × 4, koja pomnozena sa matricomkoordinata daje matricu geometrijskih koeficijenata B:

B =

~q0

~q1

~qt0

~qt1

= K ·

~p1

~p2

~p3

~p4

.

Podsetimo se da se PC-kriva mpøze napisati u obliku

~p = F ·B = [ t3 t2 t 1 ] ·M ·B.

Oznacavajuci sa Ti = [t3i t2i ti 1]T , imamo

~p1~p2

~p3

~p4

=

T1

T2

T3

T4

·M ·B,

odakle

B = M−1 ·

T1

T2

T3

T4

−1

~p1

~p2

~p3~p4

.

Odavde mozemo izdvojiti zeljenu matricu

K = M−1 ·

T1

T2

T3T4

−1

Page 8: kompjuterska geometrija

8

Obrnuti problem nastaje onda kada treba od date geometrijske forme doci docetvorotackaste forme:

~p1

~p2~p3

~p4

= K−1B = K−1

~q0

~q1

~qt0

~qt1

.

Primer 2.3.1. Ako se uzme standardni prilaz i izaberu ekvidistantantno raspored-jene vrednosti za t: ti = (i− 1)/3, i = 1, 2, 3, 4, tada je

K = M−1 ·

T1

T2T3

T4

=

0 0 0 11 1 1 10 0 1 03 2 1 0

0 0 0 11/27 1/9 1/3 18/27 3/9 2/3 1

1 1 1 1

=

1 0 0 00 0 0 1

−11/2 9 −9/2 1−1 9/2 −9 11/2

.

2.4. KOMPOZITNE (SLOZENE) KRIVE

Konstrukcija kompozitnih krivih primenjuje se kada imamo dve razdvojenekrive B1 i B3 i treba odrediti geometrijske koeficijente krive B2 koja ih povezuje.Pri tome se zahteva da B2 ima pocetnu vrednost u kraju B1 i kraj u pocetku B3

i iste tangente u u tim tackama.

2.5. INTERPOLACIONA KRIVA

Interpolaciona kriva je kriva koja prolazi kroz unapred zadate tacke. Interpo-laciona kriva u ravni se izrazava Lagrangeovim interpolacionim polinomom:

Polinom Pn stepena ≤ n, koji zadovoljava uslove interpolacije Pn(xk) = f(xk),ima oblik

Pn(x) =n

k=0

ykLk(x),

gde su Lk(x) definisani formulama

Lk(x) =(x− x0) · · · (x− xk−1)(x− xk+1) · · · (x− xn)

(xk − x0) · · · (xk − xk−1)(xk − xk+1) · · · (xk − xn).

Zadatak 2.5.1. Napisati interpolacioni polinom koji prolazi kroz tacke (0, 10),1, 20) i 2, 6).

Page 9: kompjuterska geometrija

9

Na osnovu tabelex 0 1 2y 10 20 6

formiramo Lagrangeov interpolacioni polinom

P2(x) = L0(x)y0 + L1(x)y1 + L2(x)y2

=(x− 1)(x− 2)(0− 1)(0− 2)

· 10 +(x− 0)(x− 2)(1− 0)(1− 2)

· 10 +(x− 0)(x− 1)(2− 0)(2− 1)

· 1

P2(x) = −12x2 + 22x + 10.

2.6. SPLAJNOVI

Splajn je deo po deo polinomska funkcija koja u cvorovima ima odredjeni stepenglatkosti.

Linearni splajn cine duzi koje spajaju zadate cvorove.Kvadratni splajn cine delovi parabola izmedju dva uzastopna cvora, ali tako

izabrani da imaju istu tangentu u cvoru.Kubni splajn cine delovi kubne krive, ciji delovi u cvorovima imaju istu tangentu

i krivinu.Vecina uvedenih aproksimativnih krivih ne dopusta lokalnu kontrolu oblika

krive,tj. kod njih male promene u izabranim tackama dovode do velikih prom-ena u obliku krive.

B-splajn krive izbegavaju ovaj problem koriscenjem specijalnog skupa blendi-rajucih krivih koje imaju samo lokalni uticaj i zavise samo od nekoliko susednihkontrolnih tacaka.

Zadatak 2.6.1. Odrediti parametre a, b, c, d i e tako da funkcija

S(x) ={

a + b(x− 1) + c(x− 1)2 + d(x− 1)3, x ∈ [0, 1]

(x− 1)3 + ex2 − 1, x ∈ [1, 2]

predstavlja prirodni kubni splajn.Najpre navodimo definiciju kubnog splajna:Funkcija S3(x) = S3(x; f) naziva se interpolacionim kubnim splajnom za

funkciju na mrezi ∆n, (n ≥ 2) ako su ispunjeni sledeci uslovi:

1◦ S3(x) ∈ P3, x ∈ [xi−1, xi] (i = 1, . . . , n);

2◦ S3(x) ∈ C2[a, b];

3◦ S3(xi; f) = fi = f(xi) (i = 0, 1, . . . , n).

Page 10: kompjuterska geometrija

10

Kubni splajn interpolira funkciju f u cvorovima mreze, da je neprekidan na[a, b]zajedno sa svojim izvodima S′3(x) i S′′3 (x) (uslov 2◦) i da je na svakom odpodsegmenata izmed.u susednih cvorova definisan polinomom ne viseg stepena odtreceg. Ukoliko se radi o prirodnom kubnom splajnu onda se daju i dopunskiuslovi

S′′3 (a) = 0, S′′3 (b) = 0.

U skladu sa ovim odred.ujemo nepoznate parametre. Tako imamo,

S3(1) = a = e− 1

S′3(x) ={

b + 2c(x− 1) + 3d(x− 1)2 x ∈ [0, 1]

3(x− 1)2 + 2ex x ∈ [1, 2]⇒ S′3(1) = b = 2e

S′′3 (x) ={

2c + 6d(x− 1) x ∈ [0, 1]

6(x− 1) + 2e x ∈ [1, 2]⇒ S′′3 (1) = 2c = 2e ⇒ c = e.

S obzirom da se radi o prirodnom splajnu vazi jos

S′′3 (0) = 2c− 6d = 0 ⇒ c = 3d S′′3 (2) = 6 + 2e = 0 ⇒ e = −3.

Iz svega ovoga nalazimo a = −4, b = −6, c = −3, d = −9, e = −3, pa prirodnikubni splajn glasi

S3(x) ={ −4− 6(x− 1)− 3(x− 1)2 − 9(x− 1)3, x ∈ [0, 1]

(x− 1)3 − 3x2 − 1, x ∈ [1, 2].

2.7. BEZIEROVE KRIVE

Svaka tacka Bezierove krive data je parametarskom funkcijom

~p(t) =n

i=0

~pifi(t), t ∈ [0, 1]

gde ~pi - vektori kojima su zadate kontrolne tacke i fi(t) - blendirajuce funkcijezadovoljavaju sledece uslove:

(1) kriva prolazi kroz ~p0 i ~pn;(2) tangenta u tacki ~p0 je pravca ~p1−~p0 i tangenta u tacki ~pn je pravca ~pn−~pn−1;(3) Drugi izvod u ~p0 je odredjen tackama ~p0, ~p1 i ~p2. I uopste, r - ti izvod u

jednoj od krajnjih tacaka mora biti odredjen pomocu r susednih temena ( ~p(r)(0)se odredjuje pomocu ~p0, ~p1, . . . , ~pr. ;

Page 11: kompjuterska geometrija

11

(4) blendirajuce funkcije fi(t) moraju biti simetricne u odnosu na t i 1 − t, tj.fi(1−t) = fi(t). Ovo znaci da posmatranje niza tacaka u obrnutom redu ne dovodido promena oblika krive.

Stoga je Bezier izabrao funkcije, poznate kao Bernsteineovi polinomi, da zado-volji ove uslove na jednostavan i direktan nacin.

Jednacine Bezireovih krivih glase

~p(t) =n

i=0

~piBi,n(t) =n

i=0

~pi

(

ni

)

ti(1− t)n−i,

gde su blendirajuce funkcije

Bi,n(t) =(

ni

)

ti(1− t)n−i.

Tako, parabolicna Bezireova kriva, tj. Bezierova kriva kroz 3 tacke dobija se zan = 2 i glasi

~p(t) = (1− t)2~p0 + 2t(1− t)~p1 + t2~p2.

Kubna Bezireova kriva kroz 4 tacke dobija se za n = 3 i glasi

~p(t) = (1− t)3~p0 + 3t(1− t)2~p1 + 3t2(1− t)~p2 + t3~p3.

Ona se moze napisati u obliku

~p(t) = [ t3 t2 t 1 ] ·

−1 3 −3 13 −6 3 0−3 3 0 01 0 0 0

~p0~p1

~p2~p3

Krajnje tacke su ~p0 i ~p3, a tangentni vektori u njima ~p′(0) = 3(~p1 − ~p0) i~p′(1) = 3(~p3 − ~p2).

3. POVRS (SURFACE)

Pomocu softvera Rhinoceros upotrebom menija Surface mogu se brzo nacrtatisledece povrsi:

Corner Points - povrs cija su temena date tacke;Edge Curves - povrs ogranicena datim krivama;From Planar Curves - povrs ogranicena krivama u istoj ravni ;Rectangle - povrs prostornog ili ravanskog cetvorougla;

Page 12: kompjuterska geometrija

12

Extrude - povrsi nastale istiskivanjem krive iz ravni;Loft - potkrovlje;Sweep 1 Rail - jednopruzna povrs;Sweep 2 Rail - dvopruzna povrs;Revolve - rotaciona povrs;Rail Revolve - dvopruzna povrs;

Ravna povrs kroz ravne krive (From Planar Curves) se crta tako sto se prvonacrtaju krive koje su sve u istoj ravni, a potom pritisne Enter.

Ako se krive delimicno preklapaju, svaka kriva stvara posebnu povrs.Ako je jedna kriva potpuno unutar druge, onda ce biti tretirana kao kontura

praznine.Povrsi nastale istiskivanjem krive iz ravni (Extrude)Ovakve povrsi nastaju istiskivanjem krive iz ravni na jedan od sledecih nacina:(1) Straight - vertikalno u odnosu na ravan date krive ;(2) Along Curve - duz druge krive izvodnice ;(3) To Point - ka izabranoj tacki.(4) Ribbon - trakasta povrs izvedena iz date krive.

Krovna povrs (Loft) se crta tako sto se izaberu krive po redosledu po kometreba povrs da prodje kroz njih.

Jednopruzna povrs (One-rail sweep) se crta biranjem jedne krive kao vodilje,zatim izaberu krive kroz koje povrs treba da prodje.

Dvopruzna povrs (Sweep 2 Rails). Izabrati dve krive kao pruge za kretanje.Zatim izabrati krive po redu u kome treba povrs da prodje kroz njih.

Obrtne povrsi (Revolve).Opcijom (Revolve a curve) crta se obrtna povrs koja nastaje rotacojom krive

oko ose. Treba izabrati krivu, zatim pocetnu i krajnju tacku ose rotacije. Izdijalog boksa, se mogu izabrati opcije: Exact- tacna rotacija ili Deformable -deformisana rotacija. Ako se izabere druga mogucnost, treba uneti broj kontrolnihtacaka. Zatim se bira pocetni i krajnji ugao rotacije. Ako se zeli potpuna rotacijaza 360 stepeni, treba uneti 0 za startni ugao i 360 za krajnji ugao.

Opcijom (Revolve a curve along a rail) crta se povrs koja nastaje rotacojomkonturne krive (profile) duz putanje zadate drugom krivom (trajektorije). Trebaizabrati profilnu krivu, zatim krivu trajektoriju, zatim pocetnu i krajnju tacku oseoko koje ce se profilna kriva obrtati

Prosta povrs je skup tacaka cije koordinate su odredjene jednoznacnimneprekidnim dvoparametarskim funkcijama oblika:

x = x(u,w), y = y(u,w), z = z(u,w), u, w ∈ [0, 1].

Page 13: kompjuterska geometrija

13

Vektorska jednacina povrsi glasi:

~p = ~p(u, w), u, w ∈ [0, 1].

Ovako data povrs ima krajnje tacke: p00, p01, p10 i p11. Pozitivna strana povrsi jeodredjena tackama za koje u i w raste.

Takodje, povrs se moze zadati eksplicitnom jednacinom z = z(x, y) ili implicit-nom jednacinom F (x, y, z) = 0.

Na povrsi mozemo uociti mrezu koordinatnih linija: koordinatne krive u - pravcadate su jednacinama

x = x(u,w0), y = y(u,w0), z = z(u,w0), u ∈ [0, 1].

koordinatne krive w - pravca date su jednacinama

x = x(u0, w), y = y(u0, w), z = z(u0, w), w ∈ [0, 1].

U fiksiranij tacki pij = ~p(ui, wj) povrsi uocimo tangentu u - linije i tangentu w -linije i normalu povrsi ~n = ~pu × ~pw.

Primer 3.1. Ravanska povrs se zadaje u obliku paralelograma odredjenogpocetnom tackom ~p00 i vektorima stranica ~r i ~s

~p = ~p00 + u · ~r + w · ~s, u, w ∈ (0, 1).

Ako treba nacrtati paralelogram cija su tri data temena ~p00,~p01,~p10, problem sesvodi na prethodni slucaj izracunavanjem ~r = ~p10 − ~p00, ~s = ~p01 − ~p00.

Primer 3.2. Elipsoid je povrs data jednacinama:

x = x0 + a cos u cos w,

y = y0 + b cosu sin w,

z = z0 + c sin u,

u ∈ [0, 2π], w ∈ [0, 2π].

ili implicitno:(x− x0

a

)2+

(y − y0

b

)2+

(z − z0

c

)2= 1.

Konus je dat eksplicitno z2 = x2 + y2 ili parametarskim jednacinama

x = u cos w, y = u sin w, z = u, u ∈ [0,∞), w ∈ [0, 2π].

Page 14: kompjuterska geometrija

14

3.1. BIKUBICNA POVRS

Bikubicna povrs je povrs cije parametarske jednacine su polinomi do trecegstepena po promenljivim u i w:

x = a33xu3w3 + a32xu3w2 + · · ·+ a00x

y = a33yu3w3 + a32yu3w2 + · · ·+ a00y

z = a33zu3w3 + a32zu3w2 + · · ·+ a00z

Ovo je algebarska jednacina bikubicne povrsi koja se moze napisati i u obliku:

~p(u, w) =3

i=0

3∑

j=0

~aijuiwj , u, w ∈ [0, 1],

gde je ~aij = [ aijx aijy aijz ]T . U matricnom obliku

~p = U ·A ·WT = [ u3 u2 u 1 ] ·

~a33 ~a32 ~a31 ~a30~a23 ~a22 ~a21 ~a20

~a13 ~a12 ~a11 ~a10

~a03 ~a02 ~a01 ~a00

w3

w2

w1

.

Da bismo dosli do geometrijske jednacine povrsi polazimo od sledecih podataka:od krajnjih tacaka: p00, p01, p10 i p11;od tangenata koordinatnih linija: pu

00, pu01, pu

10 i pu11; pw

00, pw01, pw

10 i pw11;

vektora izvijanja: puw00 , puw

01 , puw10 i puw

11 .Geometrijska jednacina povrsi glasi:

~p = F (u) ·B · F (w)T =

[F1(u) F2(u) F3(u) F4(u) ]

p00 p01 pw00 pw

01p10 p11 pw

10 pw11

pu00 pu

01 puw00 puw

01pu10 pu

11 puw10 puw

11

F1(w)F2(w)F3(w)F4(w)

.

Primer 3.1.1. Paralelogram je specijalan slucaj bikubicne povrsi

~p = ~a00 + u · ~a10 + w · ~a01, u, w ∈ (0, 1).

pri cemu je matrica geometrijskih koeficijenata

B =

~p00 ~p00 + ~s ~s ~s~p10 + ~r ~p00 + ~r + ~s ~s ~s

~r ~r 0 0~r ~r 0 0

Page 15: kompjuterska geometrija

15

3.1. OBRTNE POVRSI (REVOLVE SURFACES)

Obrtna povrs nastaje obrtanjem krive oko ose.Kriva

~p(t) = [ x(t) 0 z(t) ]

obrtanjem oko z - ose, opisuje obrtnu povrs koja ima jednacinu:

~p(t, θ) = [ x(t) cos θ x(t) sin θ z(t) ]

3.3. CILINDRICNE POVRSI

Cilindricna povrs nastaje paralelnim pomeranjem duzi po tackama zadate krivelinije. Jednacina cilindricne povrsi glasi

~p(u,w) = ~p(u) + w~r,

gde je ~p(u) - neka prostorna kriva, ~r - vektor pravca prave linije koja se pomera.

3.4. BEZIEROVE POVRSI

Ova povrs se crta pomocu opcije From a grid of control points. Ona sezadaje pomocu mreze koja se sastoji od tacaka svstanih po vrstama i kolonama.Tako, ako imamo mrezu od (m + 1)× (n + 1) tacaka, mozemo formirati Bezierovupovrs

~p(u,w) =m

i=0

n∑

j=0

~pijBi,m(u)Bj,n(w),

gde su

Bi,n(t) =(

ni

)

ti(1− t)n−i

Bernsteineovi polinomi izabrani za blendirajuce funkcije.

Page 16: kompjuterska geometrija

16

4. TELO (SOLID)

Podmeni Solid (telo) omogucava crtanje tela i njihovih projekcija. On sadrzisledece opcije:

Box - crtanje kvadra;Sphere - crtanje lopte ogranicene sferom;Ellipsoid - crtanje elipsoida;Cone - kupa;Cylinder - valjak;Tube - cilindricna cev;Pipe - cev oko krive;Torus - torus.Kvadar (Box) se moze nacrtati opcijom Corner to Corner, Height pri cemu

se zadaje bazisnim pravougaonikom u jednoj od koordinatnih ravni i visinom.Opcijom 3points, Height moze se nacrtati cetvorostrana prizma polazeci odbazisnog romboida cija su 3 temena data i duzina bocne izvodnice.

Lopta (Sphere) se moze nacrtati opcijom Center, Radius pri cemu se zadajecentar i radijus ili opcijom Diameter koja zahteva dve krajnje tacke jednogprecnika sfere ili opcijom 3Points koja zahteva 3 tacke na granicnoj sferi.

Elipsoid (Ellipsoid) se crta zadavanjem centra i triju osa.Obrtni konus (Cone) se crta zadavanjem centra bazisnog kruga, precnika i

vrha.Zarubljena kupa (Truncated Cone) se crta zadavanjem dva bazisa i visinom

zarubljene kupe.Obrtni valjak (Cylinder) se zadaje centrom bazisa, poluprecnikom i visinom.Cilindricna cev (Tube) se zadaje centrom, poluprecnicima spoljnjeg i unutras-

njeg bazisa i visinom.Cev (Pipe) se zadaje krivom i poluprecnicima bazisa u krajnjim tackama.Torus (Torus) se zadaje centrom torusa, rastojanjem od centra torusa do centra

malog kruga koji se rotira i poluprecnikom tog kruga.Telo nastalo istiskivanjem zatvorene ravanske krive duz zadatog pravca crta se

naredbom (Extrude Planar Curve). Prvo se nacrta zatvorena kriva, zatim seodabere ova naredba, pritisne Enter i i izabere visina. Ukoliko je kriva otvorena,dobicemo povrs.

Telo nastalo istiskivanjem porsi duz zadatog pravca crta se naredbom (ExtrudeSurface). Prvo se nacrta povrs, zatim se odabere ova naredba, pritisne Enter i iizabere visina. Ukoliko je kriva otvorena, dobicemo povrs.

Zaobljivanje ivica se postize naredbom Fillet Edges.Naredba Cap Planar Hole crta telo zatvaranjem povrsi i popunjavanjem njene

unutrasnjosti.

Page 17: kompjuterska geometrija

17

Analiza tela se vrsi pomocu podmenija Analyze > Mass Properties. Takose povrsina moze izmeriti opcijom Area, a zapremina Volume.

Prosto telo je skup tacaka u prostoru cije koordinate su odredjene jednoznacnimneprekidnim troparametarskim funkcijama oblika:

x = x(u, v, w), y = y(u, v, w), z = z(u, v, w), (u, v, w) ∈ [0, 1]× [0, 1]× [0, 1].

Vektorska jednacina tela glasi:

~p = ~p(u, v, w), u, v, w ∈ [0, 1].

Prosto telo ima 8 temena (corner points):

p(0, 0, 0), p(0, 0, 1), . . . , p(1, 1, 1),

12 granicnih krivih (edge curves) koje zavise od jednog parametra

p(u, 0, 0), p(u, 0, 1), p(u, 1, 0), p(u, 1, 1),

p(0, v, 0), p(0, v, 1), p(1, v, 0), p(1, v, 1),

p(0, 0, w), p(0, 1, w), p(1, 0, w), p(1, 1, w),

i 6 granicnih povrsi koje zavise od po 2 parametra

p(u, v, 0), p(u, v, 1), p(u, 0, w), p(u, 1, w), p(0, v, w), p(1, v, w).

Primer 4.1. Paralelopiped ima sledecu jednacinu

x = a + (b− a)u, y = c + (d− c)v, z = e + (f − e)w, u, v, w ∈ [0, 1]

Primer 3.2. Lopta se zadaje jednacinama

x = x0 + u cos v cosw, y = y0 + u cos v sin w, z = z0 + u sin v,

u ∈ [0, R], v ∈ [0, π], w ∈ [0, 2π].

Izoparametarska kriva datog tela je kriva cija jednacina se dobija iz jednacinetela fiksiranjem dva parametra. Tako postoje 3 vrste izoparametarskih krivih:~p = ~p(a, b, w), ~p = ~p(a, v, b) i ~p = ~p(u, a, b).

Izoparametarska povrs datog tela je povrs cija jednacina se dobija iz jednacinetela fiksiranjem jednog parametra: ~p = ~p(a, v, w), ~p = ~p(u, v, c) i ~p = ~p(u, b, w).

Page 18: kompjuterska geometrija

18

3.1. TRIKUBICNO TELO

Trikubicno telo je telo cije parametarske jednacine su polinomi do treceg stepenapo promenljivim u, v i w:

x = a333xu3v3w3 + a332xu3v3w2 + · · ·+ a000x

y = a333yu3v3w3 + a332yu3v3w2 + · · ·+ a000y

z = a333zu3v3w3 + a332zu3v3w2 + · · ·+ a000z

Ovo je algebarska jednacina trikubicnog tela koja se jos moze napisati u obliku

~p(u, v, w) =3

i=0

3∑

j=0

3∑

k=0

~aijkuivjwk, u, v, w ∈ [0, 1],

gde su ~aijk = [ aijkx aijky aijkz ]T algebarski vektori, kojih ima 64.U matricnom obliku, telo se moze zapisati kao

~p = U ·Auv · V T Aw ·WT ,

gde su U = [u3 u2 u 1], V = [v3 v2 v 1]T , W = [w3 w2 w 1]T .Da bismo dosli do geometrijske jednacine tela polazimo od sledecih podataka:od krajnjih tacaka: pijk;od tangenata koordinatnih linija: pu

ijk, pvijk i pw

ijk;vektora izvijanja: puv

ijk, puwijk, pvw

ijk;i brzina promene vektora izvijanja puvw

ijk , i, j, k ∈ {0, 1}.Geometrijska jednacina tela glasi:

~p =3

i=0

3∑

j=0

3∑

k=0

Fi(u)Fj(v)Fk(w)~bijk,

gde su Fi(u)Fj(v)Fk(w) blendirajuce funkcije, a bijk geometrijski vektori.

5. PRESECI U KOMPJUTERSKOJ GEOMETRIJI

Presecnu krivu dva objekta dobijamo komandama Curve - From Objects -Intersection. Tako mozemo dobiti presecnu tacku krive sa drugom krivom, sanekom povrsi ili telom. Takodje, mozemo dobiti presecnu krivu dve povrsi, povrsii tela ili presecnu krivu dva tela.

Sada cemo analizirati kako dolazi do pronalazenja preseka na kompjuteru.

Page 19: kompjuterska geometrija

19

1) Presek dve prave linijeTacka peseka pravih linija ~p(u) = ~a + u~b, u ∈ [0, 1] i ~q(w) = ~c + w~d, w ∈ [0, 1]

je ona tacka za za koju vazi: ~p(u) = ~q(w) = ~r, tj. ~a + u~b = ~c + w~d.Kako je ~c× ~d ⊥ ~c, ~d, to je

(~c× ~d) ◦ (~a + u~b) = (~c× ~d) ◦ (~c + w~d) = 0,

odakle

(~c× ~d) ◦ ~a + u(~c× ~d) ◦~b = 0 =⇒ u = − ~c× ~d) ◦ ~a

(~c× ~d) ◦~b.

Slicno, zbog ~a×~b ⊥ ~a,~b, vazi

(~a×~b) ◦ (~c + w~d) = (~a×~b) ◦ (~a + u~b) = 0,

odakle

(~a×~b) ◦ ~c + w(~a×~b) ◦ ~d = 0 =⇒ w = − ~a×~b) ◦ ~c

(~a×~b) ◦ ~d.

Ako je (~c× ~d) ◦~b = 0 ili (~a×~b) ◦ ~d = 0 nema preseka.(2) Presek prave i ravniRavan ~p(u,w) = ~a+u~b+w~c, u, w ∈ [0, 1] i prava ~q(t) = ~d+ t~e, t ∈ [0, 1] seku se

u tacki za koju vazi ~p(u,w) = ~q(t) = ~r, tj. ~a+u~b+w~c = ~d+t~e. Kako je ~b×~c ⊥ ~b,~c,to je

(~b× ~c) ◦ (~a + u~b + w~c) = (~b× ~c) ◦ (~d + t~e),

odnosno(~b× ~c) ◦ ~a = (~b× ~c) ◦ ~d + t(~b× ~c) ◦ ~e,

odakle za tacku preseka vazi

t =(~b× ~c) ◦ (~a− ~d)

(~b× ~c) ◦ ~e.

Na slican nacin, polazeci od cinjenice da je ~c × ~e ⊥ ~c,~e, odnosno ~b × ~e ⊥ ~b,~e imnozenjem izraza za ~r, dobijamo

u =(~c× ~e) ◦ (~d− ~a)

(~c× ~e) ◦~b, w =

(~b× ~e) ◦ (~d− ~a)

(~b× ~e) ◦ ~c.

(3) Presek prave i krive

Page 20: kompjuterska geometrija

20

Tacke preseka prave ~q(t) = ~a + t~b, t ∈ [0, 1] i krive ~p = ~p(u), u ∈ [0, 1]zadovoljavaju uslov ~p(u) = ~q(t) = ~r i mogu se odrediti pomocu

(~a×~b) ◦ ~p(u) = (~a×~b) ◦ ~a + t~b = 0.

Njihovo nalazenje se svodi na resavanje jednacine po nepoznatoj u.Tako na primer, ako je ~p(u) kubna parametarska kriva, onda presecne tacke

zadovoljavaju uslovu3~c + u2~d + u~e + ~f = ~a + t~b

i mogu se dobiti pomocu

(~a×~b) ◦ (u3~c + u2~d + u~e + ~f) = (~a×~b) ◦ (~a + t~b) = 0.

Problem se svodi na resavanje kubne algebarske jednacine au3 + bu2 + cu + d = 0.(4) Presek prave i povrsi.Tacke prodora prave ~q(t) = ~a+ t~b, t ∈ [0, 1] kroz povrs ~p = ~p(u,w), u, w ∈ [0, 1]

zadovoljavaju uslov ~p(u,w) = ~q(t) = ~r i mogu se odrediti pomocu

(~a×~b) ◦ ~p(u,w) = (~a×~b) ◦ ~a + t~b = 0.

Njihovo nalazenje se svodi na resavanje sistema jednacina po nepoznatim u i w.(5) Ravanski preseciPresek dveju ravni ~p(u,w) = ~a+u~b+w~c, u, w ∈ [0, 1] i ~q(s, t) = ~d+s~e+t ~f, s, t ∈

[0, 1] mozemo dobiti tako sto fiksiramo jednu od promenljivih (s=0) i nadjemoprodor tako dobijene prave kroz drugu ravan.

(6) Presek dve povrsi.Nalazenje preseka dveju povrsi ~p = ~p(u,w) i ~q = ~q(s, t) izvodi se u tri faze: faza

nalazenja, faza trasiranja i faza sortiranja.U fazi nalazenja formiramo mrezu koordinatnih linija na povrsi ~p i trazimo

njihove prodore kroz povrs ~q. Tako dobijamo skup tacaka preseka datih povrsi.Redosled tacaka zavisi od redosleda koordinatnih linija sa kojih poticu.

(7) Presecna kriva dva tela nalazi se kao presecna kriva njihovih konturnihpovrsi.

6. SKUPOVI OBJEKATA

Novo telo koje nastaje kao rezutlat neke operacije nad datim telima mozemodobiti primenom poslednjih naredbi u podmeniju Solid.

Novo telo koje nastaje kao presek dva tela dobijamo naredbom Intersection.

Page 21: kompjuterska geometrija

21

Ukupnost dva tela dobijamo opcijom Union. Posle primene ove komande dvatela se smatraju za jedinstveno telo.

Deo prvog tela bez zajednickog dela sa drugim telom dobijamo pomocu - Dif-ference. Ova operacija nije komutativna, tj. bitan je redosled tela koje navodimo.

7. TRANSFORMACIJE (TRANSFORM)

Da bi geometrijski model bilo kog objekta bio od prakticne koristi, softver trebada omoguci lagano rukovanje sa njim, i po potrebi, njegovo menjanje. Transforacijaobjekta podrazumeva menjanje njegove pozicije, orjentacije, velicine ili oblika.

Ovo se postize koriscenjem podmenija Transform.Translacija objekta se moze ostvariti opcijom Move, dok se umnozavanje i

transliranje postize pomocu opcije Copy u istom podmeniju.Translacija objekta ~p za vektor ~t, dovodi do novog objekta

~p ∗ = ~p + ~t.

Rotacija se moze osvariti primenom opcije Rotate ili Rotate 3D.Najjednostavniji slucaj rotacije je rotacija tacke oko koordiatnog pocetka.Neka je P (x, y), tacka ciji je argument α i radijus vektor ~p, tj.

x = |~p| cos α, y = |~p| sin α.

Posle rotacije za ugao θ, novi polozaj take je M∗(x∗, y∗) i odredjen je vektorompolozaja ~p ∗ i argumentom α + θ, tj.

x∗ = |~p ∗| cos(α + θ), y∗ = |~p ∗| sin(α + θ).

Pri rotaciji oko koordinatnog pocetka radijus se ne menja (|~p| = |~p∗|) i na osnovutrigonometrijskih identiteta, vazi

x∗ = x cos θ − y sin θ, y∗ = x sin θ + y cos θ.

Slicno, totacija objekta oko koordinatnog pocetka oko z-ose za ugao θ, moze seopisati β oko y-ose i za ugao γ oko x-ose, moze se opisati na sledeci nacin:

~p ∗ = ~p ·Rθ ⇔ [x∗ y∗ z∗ ] = [ x y z ] ·

cos θ sin θ 0− sin θ cos θ 0

0 0 1

,

gde je: ~p ∗ - transformisana tacka; ~p - pocetna tacka; R - matrica rotacije, dimen-zija 3× 3.

Page 22: kompjuterska geometrija

22

Matrice rotacije oko y-ose za ugao β i oko x-ose za ugao γ glase:

Rβ =

cos β 0 − sin β0 1 0

sin β 0 cos β

, Rγ =

1 0 00 cos γ sin γ0 − sin γ cos γ

.

Opsta rotacija je odredjena pomocu tri komponente

~p ∗ = ~p ·RθRβRγ = ~p ·R.

Rotacija i translacija objekta se postize na sledeci nacin

~p ∗ = ~p R + ~t.

Proporcionalno umanjenje ili uvecanje objekta postize se opcijom Scaling.Najjednostavniji oblik skaliranja geometrijskog objekta je promena njegove

velicine mnozenjem matrice B njegovih geometrijskih koeficijenata pozitivnimskalarnim faktorom

B∗ = s ·B (s ∈ R).

Na ovaj nacin menjamo samo velicinu objekta cuvajuci geometrijske osobine.Na primer za PC-krivu, transformacija

B∗ = [ s · ~p(0), s · ~p(1), s · ~pt(0), s · ~pt(1) ]T (s ∈ R)

cuva oblik, samo se porporcionalno menja velicina krive i tangentnih vektora ukrajnjim tackama.

Primenom razlicitog faktora skaliranja na svaki od geometrijskih koeficijenatamenjamo i velicinu i oblik objekta.

Tackasto skaliranje krive se postize transformacijom

~p ∗ = s · ~p (s ∈ R).

Na ovaj nacin se vrsi skaliranje oko koordinatnog pocetka.Skaliranje oko bilo koje tacke ~q, postize se transformacijom

~p ∗ = ~q + s(~p− ~q) (s ∈ R).

Page 23: kompjuterska geometrija

23

Homogene transformacije se zadaju homogenim koordinatama. Ove koordinatese uvode da olaksaju primenu odredjenih tipova transformacija u projektivnojgeometriji i kompjuterskoj grafici.

Vektor ~p u n-dimenzionalnog prostora predstavlja se pomocu (n+1)-homogenekoordinate. Na primer, vektor ~p = (x, y, z) ∈ R, predstavljacemo kao ~ph =[hx, hy, hz, h]. Dodatna komponenta h se ponasa kao nova koordinata. Obicnekoordinate se izracunavaju kao

x =hx

h, y =

hy

h, z =

hz

h.

Nema jedinstvenog predstavljanja tacke iz trodimenzionalnog prostora u ho-mogenim koordinatama. Radi lakseg izracunavanja, najcesce biramo ~ph =[x, y, z, 1] da predstavimo tacku ~p = (x, y, z). Opsta homogena transformacijaje data relacijom

~p ∗h = ~ph Th,

gde je Th - transformaciona matrica, ~ph - homogene koordinate pocetnog polozajatacke i ~p ∗

h - homogene koordinate transformisane tacke.Translacija se definise kao

~p ∗h = ~ph · Th(t) ⇔ [ x∗ y∗ z∗ 1 ] = [ x y z 1 ] ·

1 0 0 00 1 0 00 0 1 0tx ty tz 1

.

Rotacija oko z-ose

~p ∗h = ~ph · Th(r) ⇔ [x∗ y∗ z∗ 1 ] = [ x y z 1 ] ·

cos θ sin θ 0 0− sin θ cos θ 0 0

0 0 1 00 0 0 1

.

Skaliranje se definise kao

~p ∗h = ~ph · Th(s) ⇔ [ x∗ y∗ z∗ 1 ] = [ x y z 1 ] ·

s1 0 0 00 s2 0 00 0 s3 00 0 0 1

.

Opsta homogena transformacija se definise transformacionom matricom

Th =

a b c h1

d e f h2i j k h3

0 0 0 1

.

Page 24: kompjuterska geometrija

24

Projektovanje na horizontalnu ravan dato je formulom

~p ∗h = ~ph · Th(H) ⇔ [ x∗ y∗ z∗ 1 ] = [ x y z 1 ] ·

1 0 0 00 1 0 00 0 0 00 0 0 1

.

8. OBRADA OBJEKATA (TOOLS, RENDER)

Podmeni Tools sadrzi orudja za obradu objekata.Opcija Object snaps (skok) omogucava da brzo i lako pomerimo objekt do

zeljenog mesta.Na primer, ako smo ucrtali tacku pomocu podmenija Curve naredbom Single

Point, pomeranjem kurzora duz neke krive ili u njenoj blizini, mozemo skociti uneku od tacaka krive koje se prethodno naglase.

Tako naredba End markira krajnje tacke krive.Naredba Near markira tacke na krivoj dok se kurzorom krecemo duz nje ili u

neposrednoj blizini. Dovoljno je da kliknemo kada izaberemo tacku.Ako imamo dve tacke, naredbom Point moze se jedna preneti u drugu.Skok u srediste krive ostvaruje se naredbom Midpoint. Treba pomerati kurzor

duz krive i marker ce pokazati njeno srediste.Skok do centra luka ili kruga ostvaruje se naredbom Center. Dovoljno je

postaviti kurzor blizu krive, marker pomeriti do proizvoljne tacke u krugu, nastatusnoj liniji kliknuti Osnap pane i u dijalog boksu kliknuti na Center i kurzorce skociti u centar kruga.

Naredbom Intersection ostvaruje se skok u precenu tacku dveju krivih.Naredbom Perpendicular To ostvaruje se skok po normali krive postavljene

iz pocetne tacke, dok naredbom Tangent To po tangenti.Naredba Quadrant markira tacke kruga ili elipse koje su ekstremne u svakoj

od projektivnih osa. Kvadrantne tacke elipse krajevi njenih osa.Naredba Knot markira cvornu tacku krive.Kada softver crta projekcije objekta uzima najnuznije tacke, linije i povrsi da

bi se nacrtala projekcija. Ona ponekad nije ubedljiva, kao sto se vidi u slucajusfer.

Opcija Polygon Mesh crta mrezu linija na objektu sa izabranom gustinom.Naredba Create a mesh from NURBS objects crta NURBS-linije. NURBS

oznacava ”Non-Uniform Rational B-Spline”, tj. vrstu splajn-linija koje se koristeza aproksimaciju. Pri tome se pojavljuje prozor Polygon Mesh Options za izborgustine ovih linija, tj. manjeg ili veceg broja poligona koji se ucrtavaju.

Page 25: kompjuterska geometrija

25

Sloj (Layer) predstavlja nacin grupisanja objekata tako da se moze raditi sanjima kao jednom celinom ili uredjenim nizom. Kada su objekti u jednom sloju(layer), mogu se svi odjednom ukloniti, moze im se promeniti boja zicanog modela,itd. Ovo vam pomaze da organizujete svoj model. Na primer, ako radite saljudskim likom, mozete grupisati u jedan sloj sve delove cija se koza vidi, a onekoji su prekriveni odecom u drugi sloj. Tada se moze ukloniti privremeno jedansloj i obraditi nezavisno od drugog. Upotreba slojeva je vrlo fleksibilna jer se moguiznova organizovati po potrebi.

Podmeni Render vrsi dopunsku obradu projekcija objekata. Naredba Shadevrsi sencenje (nijansiranje) objekta sivom bojom belom svetloscu koja dolazi izkoordinatnog pocetka. Sada se mreza i ose ne vide, a pozadina se vidi u izabranojboji. Pocetni izbor boja i polozaja se moze promeniti pomocu podmenija Toolsi opcije Options. Opcija Shade senci objekte u projekciji u kojoj se trenutnonalazi kurzor, dok Shade All Viewports senci sve projekcije. Zumiranje, rotacijaomogucavanju da se senceni model vidi iz razlicitih uglova. Pritiskom tastera ESCvracamo se na zicani model.

Prva upotreba ove naredbe se sporije izvrsava jer softver mora da stvori mrezuna osnovu memorisanih objekata. Svako sledece pozivanje je brze.

Opcija Render otvara novi prozor sa slikom koja je kao ”malterisana” kuca ilidodatno obradjena skulptura. Ovako stvorena slika moze s zapamtiti u razlicitimformatima.

Opcija Create Spotlight omogucava stvaranje reflektora (spotlight) tako stobiramo centar i poluprecnik bazisa konusa, a zatim i vrh. Sada, opcija Renderdaje sliku objekta osvetljenog ovim reflektorom. Osvetljenje uzim reflektoromstvara detaljniju sliku nego sirim.

Zicani okvir (Wireframe view) je nacin na koji softver prikazuje objekte dokih stvara. Povrsi i tela se predstavljaju kao 3-D krive koje izgledaju kao ziceomotane oko povrsi. Ovako formiran zicani okvir se moze senciti (Shade) i omalati(Render). Zicani model se sastoji od konturnih i izoparametarskih krivih.

Renderovanje se bavi stvaranjem dvodimenzionalne slike trodimenzionalnog ob-jekta. U prvoj fazi, vrsimo identifikaciju vidljivih povrsi, tj. donosimo odluku kojepovrsi ce se videti, a koje ne. U drugoj fazi odlucujemo u kojoj boji i kojoj nijansiboje se vidi svaka tacka na slici.

Slika se moze bojiti na dva sustinski razlicita nacina:(1) objetno-orjentisanim metodom - prolaskom kroz sve objekte i njihovim

sencenjem odjednom;(2) tackasto-orjentisanim metodom - prolaskom kroz sve tacke na ekranu i

odlucivanjem koju boju treba da ima svaka posmatrana ta tacka.

Page 26: kompjuterska geometrija

26

Koji metod je bolji zavisi od broja objekata na slici. Ako ima manje objekata,rendering je brzi prvim metodom, dok je drugi superioran kada ima mnogo ob-jekata na slici.

Da bismo procenili vidljivost objekata treba posmatrati udaljenost od kameredo objekta. Polazeci od najudaljenijeg objekta projektujemo ih jedan po jedan.Ovaj postupak se naziva slikarevim alogritmom. Naime, najcesce ga primenjujubas slikari stvarajuci na taj nacin slojeve (layers) na slici. Problemi mogu nastupitiako se povrsi preklapaju, preplicu, zasenjuju ili seku. Da bismo razresili ovakveslucajeve moramo podeliti povrsi i tela na vise delova i onda odluciti koji je vidljiv.

Ako koristimo tackasto-orjentisani metod odluka o renderingu i vidljivosti sedonosi na nivou svake tacke. Zato se koristi takozvani Z-bafer (medjumemorija).Naziv govori da ce on sadrzati informaciju o dubini tacke na rednerovanoj slici.Z-koordinata koju navodimo dolazi iz jednog lokalnog koordinatnog sistema cijipocetak se poklapa sa kamerom. To je vidni koordinatni sistem. Ovaj fajl sadrzidvodomenzionalne nizove i ima istu sirinu i visinu kao slika. Svaka pozicija u nizuodgovara istoj poziciji u renderovanoj slici i sadrzi dubinu tacke. Kada izracuvamoZ-bafer prolazimo kroz sve objekte.

Sada treba da odlucimo koju nijansu treba da dobije svaka tacka slike na osnovuizabranih boja za vidljivi deo (ambient light) i nevidljivi deo (background colour).Ovo mozmo izvesti na sledece nacine:

(1) Prvi metod polazi od zicanog modela objekta. Dovoljno je da sledimokonturne krive na objektima. Ako ne zelimo da nijansiramo nevidljive delove,treba samo da obojimo tacke na zicanom modelu u izabranoj boji za vidljivi deoi unutrasnje tacke u boji za nevidljivi deo.

(2) Drugi metod sencenja tretira objekte kao konstante. Svaki objekt ima svojunijansu koja je ista u svim tackama modela, tako da se objekti ostro razlikuju.Ovo je brz metod ali ponekad nije potpuno realistican, narocito za sfere i cilindre.

(3) Treci model obicno biraju oni koji vole interaktivni rad. On je prilicnorealistican i, u isto vreme, prilicno brz. Cesto se naziva Gouraudovim metodomsencenja. Sencenje se vrsi tako sto se bira za boja za temena, a zatim se nijansaza ostale tacke odredjuje interpolacijom izmedju krajnjih temena linije kojoj tackapripada.

(4) Phong sencenje (Phong shading) vrsi procenu sencenja svake tacke,sto gacini sporijim u odnosu na prethodne metode.