Upload
adis-muminovic
View
248
Download
1
Embed Size (px)
Citation preview
7/24/2019 Parametarske krive Bezier B-spline.ppt
1/30
RaunarskaRaunarska
grafikagrafika
predavanjapredavanjadoc.dr. Samir Lemedoc.dr. Samir [email protected]@mf.unze.ba
7/24/2019 Parametarske krive Bezier B-spline.ppt
2/30
26.26. Paramearske kriveParamearske krive
!!""zierzier krivuljekrivulje!!""zierzier funkcije mijeanjafunkcije mijeanja
#niform#niformnini!$!$ssplplajnoviajnovi%%e#e#niformniformnini&& RRaaccionalionalnini
!$!$SplajnoviSplajnovi '%#R!S('%#R!S(
))onveronverzijazijaizme*uizme*ussplplajnovaajnovaRRaserizacija splajnovaaserizacija splajnova
7/24/2019 Parametarske krive Bezier B-spline.ppt
3/30
SplSplajnoviajnovi$$ ++isorisorijaija
)oninuirane krivulje)oninuirane krivulje''splinessplines( koje( kojeprolaze kroz zadaneprolaze kroz zadanekonrolne akekonrolne ake
)oninuie drugog)oninuie drugogreda 'zajednikereda 'zajednike
ake& angeneake& angene'prvi( i drugi izvodi'prvi( i drugi izvodi
7/24/2019 Parametarske krive Bezier B-spline.ppt
4/30
!!""zierzier krivuljekrivulje
!!""zierzier krivuljekrivuljese mogu posmarai kaose mogu posmarai kaoproirenje linearne inerpolacijeproirenje linearne inerpolacijeinerpolacijom vieg redainerpolacijom vieg reda
p0
p1
p0
p1p2
p0
p1
p2
p3
7/24/2019 Parametarske krive Bezier B-spline.ppt
5/30
!!""zierzier krivuljekrivulje
SlineSline,ermi,ermiovimovim&& ali imaju inuiivnijuali imaju inuiivnijudefiniciju izvoda krajnji+ aakadefiniciju izvoda krajnji+ aaka
-eiri konrolne-eiri konrolneake& od koji+ake& od koji+su dvije vorovisu dvije vorovi "oslonac"
"tetiva"
7/24/2019 Parametarske krive Bezier B-spline.ppt
6/30
!!""zierzier krivuljekrivulje
rijednosi izvodarijednosi izvoda !ezier!ezier krivulje ukrivulje uvorovima zavise od susjedni+ aakavorovima zavise od susjedni+ aaka
SkSkalar /alar /je izabran samo za ovu krivuje izabran samo za ovu krivu
7/24/2019 Parametarske krive Bezier B-spline.ppt
7/30
0snovna marica0snovna marica !!""zierzier krivuljekrivulje
1ari1arinanafformormaa
11!ezier!ezierje dobra osnovna marica jer ima dosa .je dobra osnovna marica jer ima dosa .
7/24/2019 Parametarske krive Bezier B-spline.ppt
8/30
!!""zierzier funkcije mijeanjafunkcije mijeanja
3unkcija mijeanja definie ujecaj konrolne ake na3unkcija mijeanja definie ujecaj konrolne ake nasvaku aku krivulje.svaku aku krivulje.
rijednos znai da konrolna aka nema ujecaja narijednos znai da konrolna aka nema ujecaja naaku krivulje.aku krivulje.
4ko funkcija mijeanja ima vrijednos 5& krivulja sijee4ko funkcija mijeanja ima vrijednos 5& krivulja sijeekonrolnu aku.konrolnu aku.
0va familija polinoma0va familija polinomase nazivase naziva !ernsein!ernsein
ppololiinominomima /. redama /. reda '/& k( '/& k( kk'5$('5$(/$k/$k7 89 k 89 /7 89 k 89 / Svi su poziivni na inervaluSvi su poziivni na inervalu:&5;:&5; %ji+ov zbir iznosi%ji+ov zbir iznosi 55
7/24/2019 Parametarske krive Bezier B-spline.ppt
9/30
!!""zierzier funkcije mijeanjafunkcije mijeanja
Svaka aka na krivojSvaka aka na krivojjejelinearlinearnanakkombinaombinacijacijakkonrolonrolni+ aakani+ aaka
Sve vrijednosiSve vrijednosikombinacija su poziivnekombinacija su poziivne
7/24/2019 Parametarske krive Bezier B-spline.ppt
10/30
)onveksna kombinacija konrolni+)onveksna kombinacija konrolni+aakaaaka
#vijek osaje unuar graninog regiona#vijek osaje unuar graninog regiona''kkonveonveksnaksnaljuskaljuska( defin( definisanogisanogkkonrolonrolnimnimakamaakama
7/24/2019 Parametarske krive Bezier B-spline.ppt
11/30
PodjelaPodjela!!""zierzier krivuljakrivulja
P0
P1 P2
P3
M01
M12
M23
M012M123
M0123
7/24/2019 Parametarske krive Bezier B-spline.ppt
12/30
PodjelaPodjela!!""zierzier krivuljakrivulja
P0
P1 P2
P3
7/24/2019 Parametarske krive Bezier B-spline.ppt
13/30
de asede asellijevllijevaalgorilgoriaamm
1o=e se na>i aka na1o=e se na>i aka na !!""zierzier krivulji za svaku vrijednoskrivulji za svaku vrijednospparamearamerarattslinimslinim algorialgorimommom
4ko se npr$ =eli4ko se npr$ =elit=0.25t=0.25&& umjeso da se uzmu srednje ake&umjeso da se uzmu srednje ake&uzimaju se ake nauzimaju se ake na.2?.2?du=inedu=ine
P0
P1P2
P3
M01
M12
M23
t=0.25
7/24/2019 Parametarske krive Bezier B-spline.ppt
14/30
7/24/2019 Parametarske krive Bezier B-spline.ppt
15/30
!$Spl!$Splajnajnkrivekrive''kkububneneperiodiperiodinene((
Polazi se od niza konrolni+ aakaPolazi se od niza konrolni+ aaka Bzaberu se C ake od sredine nizaBzaberu se C ake od sredine niza
'p'pi$2i$2& p& pi$5i$5& p& pii& p& piD5iD5(( dd!!""zierzier ii,ermie,ermie idu izme*uidu izme*uppi$2i$2iippiD5iD5!$Spl!$Splajnajnnene inerpolinerpoliraira''ne dodirujene dodiruje(( nijednu odnijednu od
nji+ ali aproksimira prolaze>i kroznji+ ali aproksimira prolaze>i krozppi$5i$5iippii
pp00
pp44
pp22pp11
pp33
pp55
pp66
QQ33
QQ44QQ55
QQ66
tt33
tt44 tt55tt66
tt77
7/24/2019 Parametarske krive Bezier B-spline.ppt
16/30
#niform#niformnini!$!$ssplplajnoviajnovi
AproAproksksimimirajuiirajuissplplajnoviajnovi4pro4proksksimimirajuirajunD5nD5 kkonrolonrolni+ aakani+ aaka PP& P& P55& A& P& A& Pnn& n& n //
)rivulja se sasoji od)rivulja se sasoji od n E2n E2 segmenaasegmenaakkububni+ni+polpoliinomnomaaFF//& F& FCC& A F& A Fnn
se mijenja du=se mijenja du= !$spl!$splajnaajnakaokaoFFiiG G ii89 8 89 8 iD5iD5 ii'i 9'i 9 cijeli brojcijeli broj(( susuvorne akevorne akekoje spajajukoje spajaju
segmen Fsegmen Fiisa segmenomsa segmenomFFiD5iD5 )riva je)riva je uniforuniformnamnajer se vorovi nalaze najer se vorovi nalaze na
jednakim inervalima paramera jednakim inervalima paramera
7/24/2019 Parametarske krive Bezier B-spline.ppt
17/30
#niform#niformnini!$!$ssplplajnoviajnovi
PrviPrvisegmensegmenkrivuljekrivulje& F& F//&&jejedefindefinisanisanpomo>u prve C konrolne akepomo>u prve C konrolne ake
PosljednjiPosljednji segmensegmenkrivuljekrivulje& F& Fmm
&&jejedefindefinisan pomo>u posljednje C konrolneisan pomo>u posljednje C konrolneakeake& P& Pm$/m$/& P& Pm$2m$2& P& Pm$5m$5& P& Pmm
Svaka kSvaka konrolonrolnanaaka ujee na Caka ujee na Csegmena krivuljesegmena krivulje
7/24/2019 Parametarske krive Bezier B-spline.ppt
18/30
0snovna marica0snovna marica !$spl!$splajnaajna
3ormul3ormulisaiisai5656jednainajednainada se na*eda se na*e 5656nepoznai+nepoznai+
5656jednaina forsirajujednaina forsiraju& & 55&& ii22kkoninuioninuieeizme*u susjedni+ segmenaaizme*u susjedni+ segmenaaFF
=
0141
0303
0363
1331
6
1splineBM
7/24/2019 Parametarske krive Bezier B-spline.ppt
19/30
!$!$ssplplajnajn
Hake du=Hake du= !$!$splajna se izraunavaju kao isplajna se izraunavaju kao ikodkod !!""zierzier krivuljekrivulje
( ) PUMtQ SplineBi =
( ) [ ]
=
+
+
+
3
2
123
0141
0303
0363
1331
6
11
i
i
i
i
i
p
p
p
p
ttttQ
7/24/2019 Parametarske krive Bezier B-spline.ppt
20/30
!$!$splajnsplajn
7/24/2019 Parametarske krive Bezier B-spline.ppt
21/30
%%e#e#niformniformnini&& RRaaccionalionalnini
!$!$SplajnoviSplajnovi '%#R!S('%#R!S(0snovni0snovni elemenelemen geomerije u /Igeomerije u /Iprogramuprogramu1aJa1aJa
1odel1odeli se sasoje od povrina definisani+i se sasoje od povrina definisani+pomo>upomo>u%#R!S%#R!S$a$a&& a ne poligonaa ne poligona
%#R!S%#R!S su glakisu glaki
%#R!S%#R!S za+ijevaju poseban napor da biza+ijevaju poseban napor da bise posiglo da ne budu glakise posiglo da ne budu glaki
7/24/2019 Parametarske krive Bezier B-spline.ppt
22/30
%%e#e#niformniformnini&& RRaaccionalionalnini
!$!$SplajnoviSplajnovi '%#R!S('%#R!S(
7/24/2019 Parametarske krive Bezier B-spline.ppt
23/30
))onveronverzijazijaizme*uizme*ussplplajnovaajnova
Posmaraju se dvije osnovne formulacijePosmaraju se dvije osnovne formulacijesplajnova za dvije vrse splajnovasplajnova za dvije vrse splajnova
7/24/2019 Parametarske krive Bezier B-spline.ppt
24/30
))onveronverzijazijaizme*uizme*ussplplajnovaajnova
1ogu>e je1ogu>e je ransformransformisaiisaikkonrolonrolne akene akeiz jedne osnove splajna u druguiz jedne osnove splajna u drugu
7/24/2019 Parametarske krive Bezier B-spline.ppt
25/30
))onveronverzijazijaizme*uizme*ussplplajnovaajnova
0vom k0vom konveronverzijomzijom&& mo=e se kmo=e se konveronverovaiovai!$!$ssplplajn uajn u!!""zierzier ssplplajnajn
!!""zierzier splajnovi su laki za raserizacijusplajnovi su laki za raserizaciju'renderovanje( od !$splajnova'renderovanje( od !$splajnova
7/24/2019 Parametarske krive Bezier B-spline.ppt
26/30
RRaserizacija splajnovaaserizacija splajnova
,orner,ornerov meodov meod BnBnkkremenalremenalninimeodmeod '3orKard Iifference('3orKard Iifference(
1eod podjele na podsegmene1eod podjele na podsegmene
7/24/2019 Parametarske krive Bezier B-spline.ppt
27/30
,orner,ornerovovmmeodeod
%umeriki meod za pribli=no raunanje%umeriki meod za pribli=no raunanjekorijena polinoma.korijena polinoma.
Hri mno=enjaHri mno=enjaHri sabiranjaHri sabiranja
xxxx
xxxx
dtctbtatx
dtctbtatx
+++=
+++=
])[()(
)( 23
7/24/2019 Parametarske krive Bezier B-spline.ppt
28/30
3orKard Iifference3orKard Iifference
7/24/2019 Parametarske krive Bezier B-spline.ppt
29/30
1eod podjele na podsegmene1eod podjele na podsegmene
Prije
podjele
Nakon
podjele
7/24/2019 Parametarske krive Bezier B-spline.ppt
30/30
RRaserizacijaaserizacija!!""zierzier splajnasplajna
public void spline(ControlPoint p0, ControlPoint p1,
ControlPoint p2, ControlPoint p3, int pix) {
flot len ! ControlPoint"dist(p0,p1) # ControlPoint"dist(p1,p2)
# ControlPoint"dist(p2,p3)$
flot c%ord ! ControlPoint"dist(p0,p3)$
if (&t%"bs(len ' c%ord) 0"2f) return$ ftPixel(pix, p0"x, p0"*)$
ControlPoint p11 ! ControlPoint"+idpoint(p0, p1)$
ControlPoint t+p ! ControlPoint"+idpoint(p1, p2)$
ControlPoint p12 ! ControlPoint"+idpoint(p11, t+p)$
ControlPoint p22 ! ControlPoint"+idpoint(p2, p3)$
ControlPoint p21 ! ControlPoint"+idpoint(p22, t+p)$ ControlPoint p20 ! ControlPoint"+idpoint(p12, p21)$
spline(p20, p12, p11, p0, pix)$
spline(p3, p22, p21, p20, pix)$