nela bosner konike prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje...

294
Prikazivanje krivulja Nela Bosner Konike Bézierove krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇ cunalna grafika Nela Bosner

Upload: others

Post on 03-Nov-2019

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnovi

Prikazivanje krivulja5. dio kolegija Racunalna grafika

Nela Bosner

Page 2: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Konike — konicni presjeci

Presjeci konusa sa ravninom

Slika: Dvije razlicite elipse dobivene kao presjeci konusa sadvijema razlicitim ravninama.

Page 3: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Slika: (a) Kružnica; (b) Tocka.

Page 4: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Slika: (a) Pravac; (b) Parabola.

Page 5: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Slika: (a) Ukriženi pravci; (b) Hiperbola.

Page 6: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Slika: (a) Ukošeni ukriženi pravci; (b) Ukošena hiperbola.

Page 7: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Konike se vec dugo vrijeme koriste u dizajnu.Nedegerativni oblici konika:

kružnicaelipsaparabolahiperbola

Postoje mnoge reprezentacije konika, a tocke na krivuljimogu se lako izracunati brzim i tocnim metodama.Konike imaju mnoga geometrijska svojstva koja supoželjna u dizajnu.

Npr. one nemaju tocke infleksije,one su ravninske krivulje.

Page 8: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Definicije:Kružnica

Definicija

Neka je dana tocka C u ravnini i broj R ≥ 0, tada sekružnica sa središtem u C i radijusom R definira kao

skup svih tocaka ravnine koje se nalaze na udaljenostiR od tocke C.U skupovnoj notaciji:

{P = (x , y) : ‖P − C‖ = R}.

Za C = (xc , yc) i euklidsku normu: (x , y) je tocka nakružnici ako i samo ako

(x − xc)2 + (y − yc)2 = R2.

Za R = 0 kružnica se degenerira u tocku C.

Page 9: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Elipsa

Definicija

Neka su zadane dvije tocke, F1 i F2 koje zovemo fokusima ibroj K ≥ ‖F2 − F1‖, tada se elipsa definira kao

skup svih tocaka ravnine cija je suma udaljenosti odfokusa jednaka K .U skupovnoj notaciji:

{P = (x , y) : ‖P − F1‖+ ‖P − F2‖ = K}.

Kružnica je vrsta elipse za F1 = F2 = C i K = 2R.Segment pravca koji povezuje F1 i F2 je elipsa, buducida za

P = (1− t)F1 + tF2, 0 ≤ t ≤ 1

Page 10: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

imamo

‖P − F1‖ =t‖F2 − F1‖‖P − F2‖ =(1− t)‖F2 − F1‖

odakle slijedi

‖P − F1‖+ ‖P − F2‖ =t‖F2 − F1‖+ (1− t)‖F2 − F1‖=‖F2 − F1‖=K

degenerirani oblik

Page 11: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Zbog jednostavnosti uzet cemo

F1 = (−c,0), F2 = (c,0), za c > 0.

Prema definiciji je√(x + c)2 + y2 +

√(x − c)2 + y2 = K .

Uzastopnim kvadriranjem dva puta dobivamo

4(K 2 − 4c2)x2 + 4K 2y2 = K 2(K 2 − 4c2). (1)

Ovdje se pojavljuju tri slucaja u ovisnosti o K 2 − 4c2.

Page 12: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

1 slucaj: K2 − 4c2 < 0tada je 2c > Kbuduci da za svaku tocku P na elipsi vrijedi

2c =‖F1 − F2‖ = ‖F1 − P + P − F2‖≤‖F1 − P‖+ ‖F2 − P‖ = K

rezultat je prazan skup2 slucaj: K2 − 4c2 = 0

tada je 2c = Kbuduci da je ‖F2 − F1‖ = 2c = Krezultat je segment pravca koji povezuje F1 i F2

3 slucaj: K2 − 4c2 > 0Jednadžbu (1) sada dijelimo sa K 2(K 2 − 4c2)

4x2

K 2 +4y2

K 2 − 4c2 = 1.

Page 13: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Ako definiramo

a =K2, b2 = a2 − c2

tada prethodnu jednadžbu možemo svesti na poznatioblik

x2

a2 +y2

b2 = 1.

Svojstva elipse:tocke (−a,0) i (a,0) su na elipsi, i ne postoje tocke naelipsi sa |x | > aelipsa je simetricna u odnosu na x ostocke (0,−b) i (0,b) su na elipsi, i ne postoje tocke naelipsi sa |y | > belipsa je simetricna u odnosu na y os

Page 14: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

da su fokusi F1 i F2 smješteni na y os, tada bismo dobiliistu jednadžbu sa b > aopcenitiji oblik elipse možemo dobiti

translacijom ishodišta u C = (F1 + F2)/2 = (cx , cy )dobivamo jednadžbu

(x − cx )2

a2 +(y − cy )2

b2 = 1

rotacijom ako fokusi ne leže na pravcu paralelnom sajednom od koordinatnih osi

Page 15: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Slika: (a) Kružnica sa središtem u C; (b) Elipsa sa središtem uishodištu.

Page 16: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Hiperbola

Definicija

Neka su zadane dvije tocke, F1 i F2 koje zovemo fokusima ibroj K 6= 0, tada se hiperbola definira kao

skup svih tocaka ravnine cija je razlika udaljenosti odfokusa jednaka K .U skupovnoj notaciji:

{P = (x , y) : ‖P − F1‖ − ‖P − F2‖ = ±K}.

Ako je K = 0, tada se hiperbola svodi na pravac koji jejednako udaljen od F1 i F2.

Page 17: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Zbog jednostavnosti uzet cemo

F1 = (−c,0), F2 = (c,0), za c > 0.

Prema definiciji je√(x + c)2 + y2 −

√(x − c)2 + y2 = ±K .

Uzastopnim kvadriranjem dva puta dobivamo

4(K 2 − 4c2)x2 + 4K 2y2 = K 2(K 2 − 4c2). (2)

Ovdje se pojavljuju tri slucaja u ovisnosti od K 2 − 4c2.

Page 18: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

1 slucaj: K2 > 4c2

buduci da za svaku tocku P na hiperboli vrijedi

2c =‖F1 − F2‖ = ‖F1 − P + P − F2‖≥max{‖F1 − P‖ − ‖F2 − P‖, ‖F2 − P‖ − ‖F1 − P‖} = |K |

rezultat je prazan skup2 slucaj: K = ±2c

jednadžba se svodi na y2 = 0, tj. radi se o pravcu

y = 0.

preciznije: tocke (x ,0) sa −c < x < c nisu ukljucene jer

|‖(x ,0)− (−c,0)‖ − ‖(x ,0)− (c,0)‖| =|(x + c)− (c − x)|=2|x | < 2c = ±K

rezultat je degenerirani oblik

{(x ,0) : x ≤ −c & x ≥ c}

Page 19: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

3 slucaj: K2 < 4c2

Jednadžbu (2) sada dijelimo sa K 2(K 2 − 4c2)

4x2

K 2 −4y2

4c2 − K 2 = 1.

Ako definiramo

a =K2, b2 = c2 − a2

tada prethodnu jednadžbu možemo svesti na poznatioblik

x2

a2 −y2

b2 = 1.

Page 20: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Svojstva hiperbole:a2 + b2 = c2, gdje je c udaljenost fokusa od središtatocke (−a,0) i (a,0) su na hiperbolihiperbola je simetricna u odnosu na x oshiperbola je simetricna u odnosu na y osda su fokusi F1 i F2 smješteni na y os, tada bismo dobiliistu jednadžbu kod koje x i y imaju zamijenjene ulogeopcenitiji oblik hiperbole možemo dobiti

translacijom ishodišta u C = (F1 + F2)/2 = (cx , cy )dobivamo jednadžbe

(x − cx )2

a2 −(y − cy )2

b2 = 1 ili(y − cy )2

a2 − (x − cx )2

b2 = 1

rotacijom ako fokusi ne leže na pravcu paralelnom sajednom od koordinatnih osi

Page 21: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Parabola

Definicija

Neka je zadana tocka F koju zovemo fokus i pravac d kojegzovemo direktrisa, tada se parabola definira kao

skup svih tocaka ravnine koje su jednako udaljene od Fi d.U skupovnoj notaciji:

{P = (x , y) : ‖P − F‖ = d(P,d)}.

Zbog jednostavnosti uzet cemo

F = (c,0), x = −c je direktrisa.

Prema definiciji je‖P − F‖ =d(P,d)√

(x − c)2 + y2 =x + c

Page 22: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Kvadriranjem dobivamo

y2 = 4cx .

Svojstva parabole:parabola je simetricna u odnosu na x osda se fokus smjesti na y os i da je direktrisa vodoravanpravac, tada bi dobili istu jednadžbu kod koje x i yimaju zamijenjene ulogeopcenitiji oblik parabole možemo dobiti translacijomishodišta u C = (cx , cy ), cime dobivamo jednadžbe

(y − cy )2 = 4c(x − cx ) ili (x − cx )2 = 4c(y − cy )

gdje je 2c udaljenost od fokusa do direktriserotacijom ako direktrisa nije paralelna sa jednom odkoordinatnih osi

Page 23: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Slika: (a) Hiperbola; (b) Parabola.

Page 24: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

NapomenaSvaki nedegenerirani oblik konike može se dobiti iz bilokojeg drugog nedegeneriranog oblika konike pomocuperspektivne projekcije.Npr. kružnica se može projicirati na ravninu iz razlicitihtocaka gledišta, pri cemu se može dobiti elipsa,parabola, ili hiperbola.

Page 25: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Krivulje drugog reda kao konike

Sve konike cije su glavne osi paralelne x i y osimamogu se napisati kao implicitne funkcije drugog reda —krivulje drugog reda.Može se pokazati i obrat: sve krivulje drugog reda suzarotirane konike.Opcenita krivulja drugog reda je oblika

Ax2 + Bxy + Cy2 + Dx + Ey + F = 0

Sve konike cije su glavne osi paralelne x i y osima suoblika

A′x ′2 + C′y ′2 + D′x ′ + E ′y ′ + F ′ = 0

Da li postoji transformacija koordinata iz (x , y) u (x ′, y ′),tako da je za svaku krivulju drugog reda B′ = 0?

Page 26: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Koordinatni sustav x ′-y ′ možemo prikazati kaozarotirani sustav x-y :

x =x ′cosθ − y ′ sin θy =x ′ sin θ + y ′ cos θ

i ovako izražene koordinate ubaciti u originalnujedadžbu krivulje drugog reda.Koeficijent uz x ′y ′ oznacen sa B′ trebamo izjednaciti sa0, kako bismo dobili jednadžbu za kut rotacije θ.

B′ = 0 = B cos 2θ − (A− C) sin 2θ

za B = 0 : θ = 0za B 6= 0

za A = C : cos 2θ = 0⇒ θ = π4

za A 6= C :

θ =12

tan−1(

BA− C

)

Page 27: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Slika: Originalni i zarotirani koordinatni sustavi.

Page 28: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Oblik krivulje se ne mijenja rotiranjem koordinatnogsustava.Jednadžbu

A′x ′2 + C′y ′2 + D′x ′ + E ′y ′ + F ′ = 0

dalje možemo pregrupirati u oblik

A′(

x ′ + D′2A′

)2+ C′

(y ′ + E ′

2C′

)2= −4A′C′F ′−C′D′2−A′E ′2

4A′C′

Ova jednadžba predstavlja koniku, ciji oblik odredujepredznak od A′C′.

Page 29: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

A′C′ A′ C′ −4A′C′F ′−C′D′2−A′E ′24A′C′ krivulja> 0 elipsa

> 0 > 0 = 0 tocka> 0 < 0 prazan skup

> 0 prazan skup< 0 < 0 = 0 tocka

< 0 elipsa= 0 = 0 ∗ pravac

= 0 = 0 6= 0 ∗ parabola6= 0 = 0 ∗ parabola

< 0 ∗ ∗ 6= 0 hiperbola= 0 ukriženi pravci

Page 30: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

DefinicijaZa jednadžbu drugog reda

Ax2 + Bxy + Cy2 + Dx + Ey + F = 0

velicinaB2 − 4AC

zove se diskriminanta.

TeoremDiskriminanta je invarijantna na rotacije.

Page 31: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

TeoremSvaka krivulja drugog reda je konika i

ako je B2 − 4AC

< 0, krivulja je elipsa,= 0, krivulja je parabola,> 0, krivulja je hiperbola.

TeoremImplicitna funkcija f (x , y) = 0 je konika ako i samo ako jepolinom drugog stupnja po x i y.

Page 32: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Lukovi konika kao racionalne funkcije

Zapocet cemo sa implicitnim oblikom krivulje drugogreda

Ax2 + Bxy + Cy2 + Dx + Ey + F = 0

Krivulja drugog reda ima 5 stupnjeva slobode.Želimo naci parametre A, B, C, D, E , i F krivuljedrugog reda koja prolazi kroz pet tocaka Pi = (xi , yi).Promatramo cetiri pravca na slici.

Page 33: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

L1 prolazi kroz P1 i P2L2 prolazi kroz P3 i P4L3 prolazi kroz P2 i P3L4 prolazi kroz P4 i P1

Svaka tocka osim P5 leži na dva pravca.Koristit cemo notaciju

Li(x , y) = aix + biy + ci , i Li(Pj) = Li(xj , yj).

Tocka (x , y) je na pravcu ako i samo ako je Li(x , y) = 0.Tada imamo

L1(Pj) =0 za j = 1,2,L2(Pj) =0 za j = 3,4,L3(Pj) =0 za j = 2,3,L4(Pj) =0 za j = 4,1.

Page 34: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Uvodimo notaciju

(LiLj)(x , y) =Li(x , y) · Lj(x , y)

=(aix + biy + ci)(ajx + bjy + cj)

i ona predstavlja jednadžbu drugog reda po x i y .Vrijedi

L1L2(Pj) = L3L4(Pj) = 0, za j = 1,2,3,4.

Obje jednadžbe

(L1L2)(x , y) = 0 i (L3L4)(x , y) = 0

mogu biti jednadžbe krivulja drugog reda koje prolazekroz P1, P2, P3, i P4.

Page 35: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnoviSlika: Grafovi krivulja (a) L1L2 = 0; (b) L3L4 = 0.

Ako P5 leži na jednom od tih pravaca, tada je jedna odtih krivulja tražena interpolacijska krivulja drugog reda.

Page 36: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Ako P5 ne leži niti na jednom pravcu Li , i = 1,2,3,4,tada promatramo plohu

z = f (x , y) = L1L2(x , y) + cL3L4(x , y).

To je ploha drugog reda po x i y , a rješenja jednadžbef (x , y) = 0 predstavljaju krivulju koja ukljucuje tocke Pi ,i = 1,2,3,4.Parametar c je preostali stupanj slobode kojeg cemoiskoristiti za dobivanje jedinstvene krivulje.Kolekciju svih mogucih krivulja kroz te cetriri tocke sjednim stupnjem slobode nazivamo pramenom konikakroz Pi , i = 1,2,3,4.Jedinstvenu krivulju iz pramena možemo odreditipomocu tocke P5: f (P5) = 0.

Page 37: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

f (P5) = L1L2(P5) + cL3L4(P5) = 0

odakle dobivamo

c = −L1L2(P5)

L3L4(P5).

Ako P5 leži na L1 ili L2, tada je c = 0 i f = L1L2.Ako P5 leži na L3 ili L4, tada je c =∞ i treba bitif = L3L4.Zato je bolje definirati pramen konika za c = λ/(1− λ)kao

f (x , y) = (1− λ)L1L2(x , y) + λL3L4(x , y) = 0.

Page 38: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Sada cemo razmatrati situaciju sa tangentama.

Slika: Rotiranje L3: (a) P2 teži ka P1; (b) P3 teži ka P4.

Page 39: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Pretpostavimo da tocku P2 pomicemo duž L1 prema P1.Time se mijenja krivulja, i kad P2 → P1, L1 postajetangenta na krivulju u tocki P1.Isto tako, pretpostavimo da tocku P3 pomicemo duž L2prema P4.Kad P3 → P4, L2 postaje tangenta na krivulju u tocki P4.Na taj nacin smo definirali pramen konika kroz dvijetocke P1 i P4, sa tangentama L1 u P1 i L2 u P4.U limesu L3 teži ka L4, i jednadžba za f (x , y) sadaizgleda

f (x , y) = L1L2(x , y) + cL23(x , y).

Page 40: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi Slika: Konacna konfiguracija.

Ako se P5 nalazi unutar trokuta omedenog pravcima L1,L2 i L3, dobivena konika je uvijek neprekidna krivuljakroz tocke P1 i P4, i sa tangentama L1 i L2.Ako se P5 nalazi izvan tog trokuta, dobivena krivulja jehiperbola.

Page 41: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Preformuliramo problem: interpolacija tocaka P1 i P2, ipoklapanje tangenata u njima sa L1 i L2.Neka je T tocka sjecišta pravaca L1 i L2 (L1 6= L2).Vektori (P1 − T ) i (P2 − T ) razapinju R2, jer P1, T i P2ne mogu biti kolinearni.Uvodimo novi parametarski koordinatni sustav u R2:

(u, v) = T + u(P1 − T ) + v(P2 − T ).

Konverzija u x-y koordinatni sustav svodi se na(x , y) = (Tx+u(P1,x−Tx)+v(P2,x−Tx),Ty+u(P1,y−Ty )+v(P2,y−Ty )).

U u-v koordinatnom sustavu su P1 = (1,0) iP2 = (0,1), i vrijedi

L1(u, v) = v {(u, v) : v = 0} je pravac L1

L2(u, v) = u {(u, v) : u = 0} je pravac L2

L3(u, v) = u + v − 1 {(u, v) : v = 1− u} je pravac L3

Page 42: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Parametarski oblici pravaca su

L1 : T + u(P1 − T ) = (1− u)T + uP1

L2 : T + v(P2 − T ) = (1− v)T + vP2

L3 : T + u(P1 − T ) + (1− u)(P2 − T ) = uP1 + (1− u)P2

Za proizvoljnu tocku Pc razmotrimo njenu tangentu, ioznacimo njena sjecišta sa L1 i L2 kao A1 i A2.

Slika: Koordinatni sustav u-v .

Page 43: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Razmotrimo implicitnu jednadžbu

L1(u, v)L2(u, v) + cL23(u, v) = 0

uv + c(u + v − 1)2 = 0

za jednoparametarsku familiju konika koje interpolirajutocke P1 i P2, i u njima imaju tangente L1 i L2.Želimo naci racionalnu parametarsku jednadžbu za diokrivulje koji leži unutar trokuta omedenog pravcima L1,L2 i L3.Buduci da se taj dio mora nalaziti u 1. kvadrantu u-vkoordinatnog sustava, parametar c mora zadovoljavatisljedece uvjete:

u ≥ 0 i v ≥ 0⇒ uv ≥ 0(u + v − 1)2 ≥ 0mora biti c ≤ 0

Page 44: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Za 0 ≤ λ ≤ 1 definiramo

c = − λ

1− λ≤ 0,

i imamo

C(u, v) = (1− λ)uv − λ(u + v − 1)2 = 0.

Za 0 ≤ λ ≤ 1 i u ≥ 0, v ≥ 0, u + v ≤ 1 tocke (u, v) nakrivulji ce se nalaziti unutar trokuta omedenog pravcimaL1, L2 i L3.Jednadžba tangente na C(u, v) u tocci Pc je

∂C∂u

(uc , vc)(u − uc) +∂C∂v

(uc , vc)(v − vc) = 0.

pri cemu su∂C∂u (uc , vc) =(1− λ)vc − 2λ(uc + vc − 1)

∂C∂v (uc , vc) =(1− λ)uc − 2λ(uc + vc − 1)

Page 45: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Dakle, jednadžba tangente je[(1−λ)vc−2λ(uc +vc−1)](u−uc)+[(1−λ)uc−2λ(uc +vc−1)](v−vc) = 0.

Sada racunamo sjecište A1 tangente i pravca L1, takoda u jednadžbu tangente stavimo v = 0.

u1 = [(1−λ)vc−2λ(uc+vc−1)]uc+[(1−λ)uc−2λ(uc+vc−1)]vc(1−λ)vc−2λ(uc+vc−1)

=−2λ(uc + vc − 1)

(1− λ)vc − 2λ(uc + vc − 1)

iA1 =

(−2λ(uc + vc − 1)

(1− λ)vc − 2λ(uc + vc − 1),0).

Buduci da za (uc , vc) mora vrijediti uc ≥ 0, vc ≥ 0, iuc + vc ≤ 1 jer zadovoljavaju jednadžbu C(u, v) = 0,vrijedi

0 ≤ u1 ≤ 1,

pa A1 leži izmedu T i P1.

Page 46: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Analogno, racunamo sjecište A2 tangente i pravca L2,tako da u jednadžbu tangente stavimo u = 0.Dobivamo

A2 =

(0,

−2λ(uc + vc − 1)

(1− λ)uc − 2λ(uc + vc − 1)

),

i vrijedi0 ≤ v2 ≤ 1,

pa A2 leži izmedu T i P2.Sada razmatramo r1 = ‖A1 − T‖/‖P1 − A1‖, i imamo

r1 =u1

1− u1

=−2λ(uc + vc − 1)

(1− λ)vc

Page 47: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

a za r2 = ‖A2 − T‖/‖P2 − A2‖, i imamo

r2 =v2

1− v2

=−2λ(uc + vc − 1)

(1− λ)uc

Buduci da jeC(uc , vc) = (1− λ)ucvc − λ(uc + vc − 1)2 = 0, daljeprimijecujemo da je

r1r2 =4λ2(uc + vc − 1)2

(1− λ)2ucvc

=4λ

1− λ

Dokazali smo sljedeci teorem.

Page 48: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

TeoremAko su P1, T , P2, A1 i A2 definirani na prethodno opisaninacin, tada je produkt omjera

‖A1 − T‖‖P1 − A1‖

‖A2 − T‖‖P2 − A2‖

konstantan za cijelu koniku.

Sada cemo ici u obrnutom smjeru: neka su nam zadaniomjeri r1 i r2, trebamo odrediti tocke (uc , vc) na konici.Iz jednadžbi za r1 i r2 imamo

r1(1− λ)vc =− 2λ(uc + vc − 1)

r2(1− λ)uc =− 2λ(uc + vc − 1)

Page 49: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Sredivanjem, dobivamo sustav linearnih jednadžbi pouc i vc

2λ =2λuc + [r1(1− λ) + 2λ]vc

2λ =[r2(1− λ) + 2λ]uc + 2λvc

cija rješenja glase

uc =r1

r1 + r2 + 2, vc =

r2

r1 + r2 + 2

Ako se vratimo na x-y koordinatni sustav, tada sesvaka tocka Pc na konici γ može napisati kao

Pc =T + uc(P1 − T ) + vc(P2 − T )

=r1P1 + 2T + r2P2

r1 + r2 + 2

Page 50: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Sada želimo napisati r1 i r2 kao razlicite parametarskefunkcije jedne varijable t , na intervalu 〈a,b〉:

r1 = f1(t), r2 = f2(t), za t ∈ 〈a,b〉.

O svojstvima funkcija f1 i f2 možemo zakljuciti sljedece:one preslikavaju 〈a,b〉 na 〈0,∞〉f1(t)f2(t) = 4λ

1−λ za svaki tone bi trebale biti bijekcijeznaci da bi trebale biti monitone funkcije: jedna raste adruga pada

Prema gornjim svojstvima zakljucujemo da su najboljikandidati funkcije oblika

f1(t) =w1(b − t)w(t − a)

, f2(t) =w2(t − a)

w(b − t)

Page 51: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Tada je

K = 4λ1−λ = f1(t)f2(t)

=w1(b − t)w(t − a)

w2(t − a)

w(b − t)

=w1w2

w2

Konacno možemo napisati jedadžbu za krivulju γ u ovojnotaciji kao

γ(t) =

w1(b−t)w(t−a) P1 + 2T + w2(t−a)

w(b−t) P2

w1(b−t)w(t−a) + w2(t−a)

w(b−t) + 2

=w1(b − t)2P1 + 2w(t − a)(b − t)T + w2(t − a)2P2

w1(b − t)2 + 2w(t − a)(b − t) + w2(t − a)2

Odavde vidimo da se svaka konika može napisati kaokvadratna racionalna parametarska funkcija.

Page 52: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Primjer

Neka su dane tocke P1, T i P2, i neka je zadana konstantaK > 0. Želimo naci racionalni parametarski oblik γ(t) za lukkonike definiran na [0,1], gdje su

γ(0) = P1, γ(1) = P2

smjer od γ′(0) je jednak smjeru (T − P1)

smjer od γ′(1) je jednak smjeru (P2 − T )

K = 4λ1−λ

Uobicajeno rješenje za ovaj problem jew1 = w2 = 1w = (

√K )−1

odakle slijedi

Page 53: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Primjer (nastavak)

γ(t) =(1− t)2P1 + 2(

√K )−1t(1− t)T + t2P2

(1− t)2 + 2(√

K )−1t(1− t) + t2

Ovaj oblik rješenja može biti numericki nestabilan zavrlo male i vrlo velike konstante K .Buduci da je λ ∈ 〈0,1〉 omjer w1w2/w2 mora bitipozitivan.Ako je w < 0 omjer se ne mijenja, ali γ(t) dajejednadžbu djela konike izvan trokuta 4P1TP2.Isto se dogada ako su w1 < 0 i w2 < 0.Može se pokazati da je krivulja za K > 1 jednaka elipsi,za K = 1 jednaka paraboli, a za K < 1 jednakahiperboli.

Page 54: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Slika: (a) Racionalni luk unutar trokuta; (b) Racionalni luk izvantrokuta.

Page 55: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Reprezentacija konika u homogenimkoordinatama

Ako definiramo

θ1(t) = (b−t)2, θ(t) = 2(t−a)(b−t), θ2(t) = (t−a)2

tada racionalni parametarski oblik konike možemonapisati kao

γ(t) =w1P1θ1(t) + wTθ(t) + w2P2θ2(t)

w1θ1(t) + wθ(t) + w2θ2(t)

što u homogenim koordinatama ima oblik

γ(t) = (w1P1,w1)θ1(t) + (wT ,w)θ(t) + (w2P2,w2)θ2(t)

Buduci da je za K > 0, K = w1w2/w2 funkcije

γ1(t) =(P1, 1)θ1(t) +((√

K )−1T , (√

K )−1)θ(t) + (P2, 1)θ2(t)

γ2(t) =(KP1,K )θ1(t) + (T , 1)θ(t) + (P2, 1)θ2(t)

γ3(t) =(2P1, 2)θ1(t) + (2T , 2)θ(t) + (2KP2, 2K )θ2(t)

predstavljaju istu krivulju.

Page 56: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Za dobivanje konstruktivnog algoritma za racunanjetocaka na konikama potrebne su nam homogenekoordinate.Pretpostavimo da nam je zadana uredena trojka tocaka{P0, P1, P2}, i odgovarajucih koeficijentata {w0, w1, w2}.Tada je luk konike γ(t), koji je definiran na [a,b] pricemu su

γ(a) = P0, γ(b) = P2smjer od γ′(a) je jednak smjeru (P1 − P0)smjer od γ′(b) je jednak smjeru (P2 − P1)K = 4λ

1−λ

zadan kao γ(t) = B(t)/N(t), gdje su

B(t) =(b − t)2w0P0 + 2(t − a)(b − t)w1P1 + (t − a)2w2P2

N(t) =(b − t)2w0 + 2(t − a)(b − t)w1 + (t − a)2w2

Page 57: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Definiramo nove velicine kao

Qi = wiPi .

Tada je

B(t) =(b − t)[(b − t)Q0 + (t − a)Q1]+

+ (t − a)[(b − t)Q1 + (t − a)Q2]

=(b − t)Q[1]1 (t) + (t − a)Q[1]

2 (t)

gdje su

Q[1]1 (t) =(b − t)Q0 + (t − a)Q1

Q[1]2 (t) =(b − t)Q1 + (t − a)Q2

i

Page 58: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

N(t) =(b − t)[(b − t)w0 + (t − a)w1]+

+ (t − a)[(b − t)w1 + (t − a)w2]

=(b − t)w [1]1 (t) + (t − a)w [1]

2 (t)

gdje su

w [1]1 (t) =(b − t)w0 + (t − a)w1

w [1]2 (t) =(b − t)w1 + (t − a)w2

Prethodne dvije jednadžbe mogu se sabiti u jednupomocu homgenih koordinata

Hi = (Qi ,wi), i = 0,1,2.

Page 59: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Tada je za i = 1,2

H [1]i (t) =(b − t)Hi−1 + (t − a)Hi

=((b − t)Qi−1, (b − t)wi−1) + ((t − a)Qi , (t − a)wi)

=(

Q[1]i (t),w [1]

i (t))

i

(B(t),N(t)) =(

(b − t)Q[1]i (t), (b − t)w [1]

i (t))

+

+(

(t − a)Q[1]2 (t), (t − a)w [1]

2 (t))

=(b − t)H [1]1 (t) + (t − a)H [1]

2 (t)

Page 60: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Algoritam (Algoritam za izvrednjavanje tocaka na lukukonike)

Neka je zadano sljedecetocke { P0, P1, P2},odgovarajuce težine { w0, w1, w2},takve da je w0w2/w2

1 = K ,tada se

konika kroz tocku P0 s tangentom P1 − P0, ikroz tocku P2 s tangentom P2 − P1

takva da je K = 4λ/(1− λ)

može izvredniti za t ∈ [a,b] na sljedeci nacin:

Page 61: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Algoritam (nastavak)1 Hi = (wiPi ,wi), za i = 0,1,2.2 H [1]

i (t) = (b − t)Hi−1 + (t − a)Hi , za i = 1,2.

3 (B(t),N(t)) = (b − t)H [1]1 (t) + (t − a)H [1]

2 (t).4 γ(t) = B(t)/N(t).

Page 62: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Po dijelovima konike

Proširit cemo formulaciju konika kao racionalnihfunkcija na po dijelovima konike.Pretpostavimo

da krivulja treba interpolirati tocke Pi , za i = 0,1, . . . ,m,da su sjecišta tangenata u Pi−1 i u Pi dana sa Ti , zai = 1, . . . ,m,da su zadane konstante Ki , za i = 1, . . . ,m.

Tada krivulju koja je po dijelovima konika možemodefinirati sa:

γ1(t) =(1− t)2P0 + 2(

√K1)−1t(1− t)T1 + t2P1

(1− t)2 + 2(√

K1)−1t(1− t) + t2za t ∈ [0, 1]

γ2(t) =(2− t)2P1 + 2(

√K2)−1(t − 1)(2− t)T2 + (t − 1)2P2

(2− t)2 + 2(√

K2)−1(t − 1)(2− t) + (t − 1)2za t ∈ [1, 2]

.

.

.

γm(t) =(m − t)2Pm−1 + 2(

√Km)−1(t − m + 1)(m − t)Tm + (t − m + 1)2Pm

(m − t)2 + 2(√

Km)−1(t − m + 1)(m − t) + (t − m + 1)2za t ∈ [m − 1,m]

Page 63: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

KonikeDefinicije

Krivulje drugog redakao konike

Lukovi konika kaoracionalne funkcije

Reprezentacijakonika u homogenimkoordinatama

Po dijelovima konike

Bézierovekrivulje

B-splajnovi

Ako su Ti , Pi i Ti+1 kolinearni, tada se na spoju dvajukonika tangente poklapaju i na dva susjedna segmentaimamo neprekidnu derivaciju.Opcenito po dijelovima konika može imati skok uderivaciji na spoju segmenata.Za parametarski oblik jednadžbe konike potrebno je dasu Pi−1, Ti i Pi komplanarni, što je automatskiispunjeno.Medutim po dijelovima konika ne mora biti ravninskakrivulja — svaki segment može biti u drugoj ravnini.

Page 64: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Bézierove krivulje

Konike su bile odredene pomocu tri tocke P0, P1 i P2,odnosno poligonom koje te tri tocke definiraju (trokut).Razmotrimo prvo korisna svojstva geometrijskogpristupa konikama:

1 krivulja interpolira prvu i zadnju tocku2 krivulja je tangentna na dvije strane poligona3 racionalni parametarski oblik jednadžbe konike koristi te

tri tocke kao koeficijente — lako za racunati

Prisjetit cemo se sada kako izgleda algoritam zaizvrednjavanje tocaka na luku konike u racionalnomparametarskom obliku kada je K = 1 (parabola).

Page 65: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Primjer

Za slucaj kada je K = 1, uzet cemo da je t ∈ [0,1] iω0 = ω1 = ω2 = 1.Tada su

r1 =1− t

t, r2 =

t1− t

.

Racionalni parametarski oblik jednadžbe konike tadaglasi

γ(t) =(1− t)2P0 + 2t(1− t)P1 + t2P2

(1− t)2 + 2t(1− t) + t2

=(1− t)2P0 + 2t(1− t)P1 + t2P2

=(1− t)[(1− t)P0 + tP1] + t [(1− t)P1 + tP2]

Sada više nisu potrebne homogene koordinate zadobivanje jednostavnog algoritma.

Page 66: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Algoritam (Algoritam za izvrednjavanje tocaka na lukuparabole)Neka su zadane

tocke { P0, P1, P2},tada se

parabola kroz tocku P0 s tangentom P1 − P0, ikroz tocku P2 s tangentom P2 − P1

može izvredniti za t ∈ [0,1] na sljedeci nacin:1 P [1]

i (t) = (1− t)Pi−1 + tPi , za i = 1,2.

2 γ(t) = (1− t)P [1]1 (t) + tP [1]

2 (t).

Page 67: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Ovaj algoritam želimo poopciti na krivulje koje suodredene pomocu n + 1 tocaka za proizvoljni n.Razmotrit cemo koja se od gornja tri svojstvageometrijskog pristupa konikama mogu zadržati i kodkrivulja dobivenih poopcenim algoritmom.Koja se još ostala svojstva oblika takvih krivulja moguodrediti.To nas vodi do formulacije Bézierove krivulje.Najprije cemo definirati konstruktivni algoritam za takvekrivulje, a zatim cemo provjeriti njihova svojstva.

Page 68: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Zadan je skup od n + 1 tocaka u R3 {Pi}ni=0 kojiodreduje krivulju.Bez smanjenja opcenitosti definirat cemo parametarskioblik jednadžbe krivulje na segmentu [0,1].Po dijelovima linearna krivulja dobivena ljepljenjemsegmenata pravaca izmedju tocaka Pi i Pi+1 zai = 0,1, . . . ,n − 1 zove se kontrolni poligon krivulje.Sada možemo poopciti konstruktivni algoritam nakontrolne poligone sa proizvoljnim brojem vrhova.

Page 69: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Algoritam (Poopceni konstruktivni algoritam)Neka su zadane

tocke {Pi}ni=0,tada se krivulja γ(t) može izvredniti za t ∈ [0,1] na sljedecinacin:

1 P [0]i (t) = Pi za i = 0, . . . ,n.

2 Za j = 1, . . .n rekurzivno definiramo

P [j]i (t) = (1− t)P [j−1]

i−1 (t) + tP [j−1]i (t), za i = j , . . . ,n.

3 γ(t) = P [n]n (t).

Page 70: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Originalne tocke {Pi}ni=0 cine kontrolni poligon na 0-tojrazini.Za proizvoljni t i za svaku razinu j = 1, . . .n algoritamdefinira novi kontrolni poligon sa jednim vrhom manje uodnosu na prethodnu razinu.Kontrolni poligon na n-toj razini se sastoji od samojedne tocke, i to je upravo tocka γ(t) na krivulji.Tocka na krivulji se jednostavno izracuna kao linearnakombinacija vrhova poligona koji imaju u svakomkoraku jednu stranicu manje.Slijedi primjer za n = 4, i za dvije razlicite vrijednosti t .Trebamo primijetiti da se nizovi kontrolnih poligonarazlikuju za razlicite t-ovi na svim razinama osim 0-te.

Page 71: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Originalni kontrolni poligon na razini j = 0 (#vrhova= 5),krivulja, i tocka na krivulji za (a) t = 0.25; (b) t = 0.625.

Page 72: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Kontrolni poligon na razini j = 1 (#vrhova= 4) za(a) t = 0.25; (b) t = 0.625.

Page 73: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Kontrolni poligon na razini j = 2 (#vrhova= 3) za(a) t = 0.25; (b) t = 0.625.

Page 74: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Kontrolni poligon na razini j = 3 (#vrhova= 2) za(a) t = 0.25; (b) t = 0.625.

Page 75: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Kontrolni poligon na razini j = 4 (#vrhova= 1) za(a) t = 0.25; (b) t = 0.625.

Page 76: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Svojstva krivulje γ(t):Za svaki t , na svakoj razini kontrolne tocke (vrhovipoligona) su konveksne kombinacije vrhova kontrolnihtocaka iz prethodne razine; zbog toga je izracunatatocka na krivulji konveksna kombinacija originalnihkontrolnih tocaka.Za t = 0 i t = 1 algoritam se svodi na γ(0) = P0 iγ(1) = Pn, tako da krivulja γ interpolira prvu i zadnjutocku.Krivulja “izgleda” da je tangentna na stranicu poligonaP1 − P0 za t = 0, i na stranicu Pn − Pn−1 za t = 1 —moramo dokazati!Krivulja ima svojstvo smanjene varijacije (variationdeminishing property), što znaci da krivulja ne variraviše nego njen originalni kontrolni poligon — iskazatiteorem!

Page 77: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Izgleda da krivulja u glavnom prati oblik originalnogkontrolnog poligona.Ponašanje krivulje se lako kontrolira: ako se pomaknetocka Pk modificirana krivulja se lako izracuna.

Razmotrit cemo još i derivaciju krivulje.Za j = 1, . . . ,n − 1 i i = j , . . . ,n imamo

ddt

P [j]i (t) =

ddt

((1− t)P [j−1]

i−1 (t) + tP [j−1]i (t)

)=P [j−1]

i (t)− P [j−1]i−1 (t) + (1− t)

ddt

P [j−1]i−1 (t)+

+ tddt

P [j−1]i (t)

pa se i derivacija može rekurzivno izracunati.

Page 78: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

LemaDerivacija krivulje γ konstruirane poopcenim konstruktivnimalgoritmom je dana sa

γ′(t) = n(

P [n−1]n (t)− P [n−1]

n−1 (t)).

Dokaz.Koristit cemo matematicku indukciju kako bismodokazali da je

ddt

P [j]i (t) = j

(P [j−1]

i (t)− P [j−1]i−1 (t)

), i = j , . . . ,n.

Buduci da je P [0]i (t) = Pi , vrijedi

ddt

P [0]i (t) = 0

Page 79: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

ddt

P [1]i (t) = Pi − Pi−1

cime je dokazana baza indukcije.Pretpostavimo da je tvrdnja leme istinita za

ddt

P [j−1]i (t) = (j − 1)

(P [j−2]

i (t)− P [j−2]i−1 (t)

), i=j−1,...,n

Tada imamo

ddt

P [j]i (t) =P [j−1]

i (t)− P [j−1]i−1 (t)+

+ (1− t)(j − 1)(

P [j−2]i−1 (t)− P [j−2]

i−2 (t))

+ t(j − 1)(

P [j−2]i (t)− P [j−2]

i−1 (t))

Page 80: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

ddt

P [j]i (t) =P [j−1]

i (t)− P [j−1]i−1 (t)+

+ (j − 1)(

P [j−1]i (t)− P [j−1]

i−1 (t))

=j(

P [j−1]i (t)− P [j−1]

i−1 (t))

Tvrdnja je dokazana ako uzmemo j = n.

Page 81: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Svojstva Bézierovih krivulja

Želimo krivulju konstruiranu poopcenim konstruktivnimalgoritmom napisati u obliku

γ(t) =n∑

i=0

Piθi,n(t),

pri cemu funkcije miješanja (blending functions) θi,n(t)ne ovise o tockama Pi .Prvo cemo razmotriti graf (stablo) izvrednjavanja tockena krivulji.Sve originalne tocke kontrolnog poligona su prikazanekao listovi na dnu stabla.Strelice pokazuju koje se tocke iz prethodne razinekoriste za racunanje tekuce tocke, zajedno sa svojimmultiplikatorima.Proces se nastavlja dok ne dodemo do korijena kojipredstavlja tocku na krivulji.

Page 82: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Stablo konstruktivnog izvrednjavanja krivulje.

Page 83: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Iz grafa možemo zakljuciti sljedece:Potraga za funkcijama θi,n(t) je ekvivalentna potrazi zasvim mogucim putevima od Pi do korijena, i množenjuodgovarajucih multiplikatora.Od P0 do korijena vodi samo jedan put P [i−1]

i−1 → P [i]i ,

i = 1, . . . ,n gdje svaki korak ima multiplikator (1− t),zato

uz P0 stoji samo jedan izraz: (1− t)n.Razmotrimo jedan put od P1 do korijena zak ∈ {1,2, . . . ,n}:

P [i−1]i → P [i]

i+1, i = 1, . . . , k s multiplikatorima (1− t) usvakom korakuP [k ]

k+1 → P [k+1]k+1 s multiplikatorom t

P [i−1]i−1 → P [i]

i , i = k + 2, . . . ,n s multiplikatorima (1− t) usvakom koraku

Taj put daje doprinos od (1− t)n−1t u θ1,n(t).

Page 84: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Postoji n razlicitih puteva (n mjesta na kojem put možeskrenuti u lijevo: P [k ]

k+1 → P [k+1]k+1 ).

Zato kad iskombiniramo sve moguce puteve od P1

uz P1 stoji izraz: n(1− t)n−1t .Konstruktivni postupak možemo nastaviti dalje za Pi ,i = 2, . . . ,n.Za i = 0, . . . ,n, definirat cemo sada

θi,n(t) =

(ni

)(1− t)n−i t i , gdje je

(ni

)=

n!

i!(n − i)!,

a zatim cemo pokazati da su to zaista funkcijemiješanja koje definiraju konstruiranu krivulju.Prije toga cemo pokazati neka svojstva funkcijamiješanja.

Page 85: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Teorem

θk ,n(t) =

1, za n = 0(1− t)θ0,n−1(t), za k = 0, n > 0tθk−1,n−1(t) + (1− t)θk ,n−1(t), za 0 < k < ntθn−1,n−1(t), za k = n > 0

Dokaz.n = 0Jer je 0! = 1, i buduci da može biti samo k = 0, imamo

θ0,0(t) =

(00

)(1− t)0t0 = 1.

Page 86: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).k = 0, n > 0Buduci da je

(n0

)= 1, imamo

θ0,n(t) =

(n0

)(1− t)n−0t0 = (1− t)n = (1− t) · (1− t)n−1

=(1− t)θ0,n−1.

0 < k < nIz definicije

(nk

)imamo(

nk

)=

nk

(n − 1)!

(k − 1)! ((n − 1)− (k − 1))!

=n

n − k(n − 1)!

k ! ((n − 1)− k)!

Page 87: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).Odavde za dalje slijedi

θk ,n(t) =

(nk

)tk (1− t)n−k

=nk

(n − 1)!

(k − 1)! ((n − 1)− (k − 1))!tk (1− t)n−k

=nk

t(n − 1)!

(k − 1)! ((n − 1)− (k − 1))!tk−1(1− t)(n−1)−(k−1)

=nk

tθk−1,n−1(t)

odakle jeknθk ,n(t) = tθk−1,n−1(t).

Page 88: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

Slicno

θk ,n(t) =

(nk

)tk (1− t)n−k

=n

n − k(n − 1)!

k ! ((n − 1)!− k)!tk (1− t)n−k

=n

n − k(1− t)

(n − 1)!

k ! ((n − 1)!− k)!tk (1− t)((n−1)−k)

=n

n − k(1− t)θk ,n−1(t)

odakle je

n − kn

θk ,n(t) = (1− t)θk ,n−1(t).

Page 89: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).Kada zbrojimo dva zadnja rezultata dobijemo

θk ,n =knθk ,n(t) +

n − kn

θk ,n(t)

=tθk−1,n−1(t) + (1− t)θk ,n−1(t).

k = n > 0Buduci da je

(nn

)= 1, imamo

θn,n(t) =

(nn

)(1− t)n−ntn = tn = t · tn−1

=tθn−1,n−1.

Page 90: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

TeoremAko je sa {Pi}ni=0 zadan kontrolni polinom, tada je

γ(t) =n∑

i=0

Pi

(ni

)(1− t)n−i t i ,

gdje γ(t) oznacava tocku na krivulji koja je konstruiranapoopcenim konstruktivnim algoritmom za parametarskuvrijednost t.

Page 91: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz.Desnu stranu jednadžbe u teoremu oznacimo sa α(t):

α(t) =n∑

i=0

Piθi,n(t).

Koristeci prethodni teorem dobivamo

α(t) =P0θ0,n(t) +n−1∑i=1

Piθi,n(t) + Pnθn,n(t)

=P0(1− t)θ0,n−1(t)+

+n−1∑i=1

Pi(tθi−1,n−1(t) + (1− t)θi,n−1(t))+

+ Pntθn−1,n−1(t).

Page 92: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

Sada cemo grupirati izraze sa t i sa (1− t), i iskoristitikonstruktivni algoritam:

α(t) =(1− t)n−1∑i=0

Piθi,n−1(t) + tn∑

i=1

Piθi−1,n−1(t)

=(1− t)n−1∑i=0

Piθi,n−1(t) + tn−1∑i=0

Pi+1θi,n−1(t)

=n−1∑i=0

[(1− t)Pi + tPi+1]θi,n−1(t)

=n−1∑i=0

P [1]i+1θi,n−1(t).

Page 93: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).Ponavljanjem istog procesa dobivamo

α(t) =

n−j∑i=0

P [j]i+jθi,n−j(t).

Nakon n primjena gornjeg procesa, rezultat je

α(t) = P [n]n θ0,0(t) = P [n]

n = γ(t).

Dobili smo traženi oblik jednadžbe krivulje.

Page 94: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Definicija

Krivulja konstruirana poopcenim konstruktivnimalgoritmom, ciji je parametarski oblik jedadžbe oblika

γ(t) =n∑

i=0

Pi

(ni

)(1− t)n−i t i ,

zove se Bézierova krivulja.Poopceni konstruktivni algoritam zove se Bézierovkonstruktivni algoritam ili de Casteljauov algoritam.

Page 95: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

DefinicijaFunkcije

θi,n(t) =

(ni

)(1− t)n−i t i ,

za i = 0, . . . ,n, i za nenegativni cijeli broj n zovu seBernsteinove bazne funkcije ili Bernsteinove funkcijemiješanja.

Page 96: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Definicija

Za t ∈ [a,b], funkcije

θi,n(a,b; t) =θi,n

(t − ab − a

)=

(ni

)(b − t)n−i(t − a)i

(b − a)n ,

za i = 0, . . . ,n, i za nenegativni cijeli broj n zovu seBernsteinove generalizirane bazne funkcije ili Bernsteinovegeneralizirane funkcije miješanja.

Page 97: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Vidimo da se Bernsteinove generalizirane baznefunkcije mogu dobiti iz Bernsteinovih baznih funkcijaafinom transformacijom segmenta [a,b] u segment[0,1].Lako se vidi da je

θ′i,n(a,b; t) =1

b − aθ′i,n

(t − ab − a

).

Preostaje nam još pokazati da Bernsteinove funkcijemiješanja zaista tvore bazu prostora polinoma stupnjan.

Page 98: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Svojstva Bernsteinovih funkcija miješanja

Teoremθi,n(t) > 0 za t ∈ 〈0,1〉, za sve n ≥ 0 i i = 0, . . . ,n.

Dokaz.Za t ∈ 〈0,1〉, je t > 0 i (1− t) > 0.θi,n(t) je produkt n pozitivnih faktora, pa mora bitipozitivan.

Teorem∑ni=0 θi,n(t) ≡ 1 za t ∈ [0,1].

Dokaz.Tvrdnja slijedi iz binomnog teorema:

n∑i=0

θi,n(t) =n∑

i=0

(ni

)(1− t)n−i t i = ((1− t) + t)n = 1n = 1.

Page 99: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

TeoremBernsteinove funkcije miješanja su unimodalne.θi,n(t) poprima svoj maksimum u t = i/n.

Dokaz.Buduci da je θi,n(t) polinom za sve i i n, ima neprekidnuderivaciju.θ0,n = (1− t)n je padajuca funkcija na [0,1], papoprima maksimum u t = 0.θn,n = tn je rastuca funkcija na [0,1], pa poprimamaksimum u t = 1.Za i = 1, . . . ,n − 1, θi,n(t) ima neprekidnu derivaciju pamože poprimati svoj ekstrem u t = 0, t = 1 i u nultockiod θ′i,n(t).

Page 100: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

Tražimo nultocke od θ′i,n(t) na 〈0,1〉:

θ′i,n(t) =

(ni

)[it i−1(1− t)n−i − (n − i)t i(1− t)n−i−1]

=

(ni

)t i−1(1− t)n−i−1[i(1− t)− (n − i)t ]

=

(ni

)t i−1(1− t)n−i−1[i − nt ].

Rješavanjem θ′i,n(t) = 0 dobivamo

te = 0 ili te = 1 ili te =in.

Page 101: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

Buduci da je θi,n(0) = θi,n(1) = 0 za i = 1, . . . ,n − 1, iθi,n(t) > 0 za t ∈ 〈0,1〉, tada postoji samo jedanmaksimum i to u te = i/n.

Primjer

Pogledat cemo vrijednosti kubicnih Bernsteinovih funkcijamiješanja u razlictim tockama maksimuma.

Za t = 0: θ0,3(0) = 1 i θi,3(0) = 0 i = 1,2,3.Za t = 1: θ3,3(1) = 1 i θi,3(1) = 0 i = 0,1,2.Za t = 1/3:

θ0,3(1/3) =8/27θ1,3(1/3) =4/9

Page 102: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Primjer (nastavak)

θ2,3(1/3) =2/9θ3,3(1/3) =1/27

Za t = 2/3:

θ0,3(2/3) =1/27θ1,3(2/3) =2/9θ2,3(2/3) =4/9θ3,3(2/3) =8/27

P1 imat ce najveci utjecaj na γ(t) za t = 1/3.P2 imat ce najveci utjecaj na γ(t) za t = 2/3.U oba slucaja ostale tocke kontrolnog polinomapridonose 5/9 težine uz P1 odnosno P2.

Page 103: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

TeoremBernsteinove funkcije miješanja stupnja n cine bazu zapolinome stupnja n (Pn).

Dokaz.Pretpostavimo da su {θi,n(t)}ni=0 linearno zavisni. Tada

0 ≡n∑

i=0

ciθi,n(t)

≡n∑

i=0

cin!

i!(n − i)!t i(1− t)n−i

≡n∑

i=0

cin!

i!(n − i)!t i

n−i∑j=0

(n − i)!

j!(n − i − j)!(−t)n−i−j

Page 104: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

0 ≡n∑

i=0

cin!

i!(n − i)!

n−i∑j=0

(−1)n−i−j (n − i)!

j!(n − i − j)!tn−j

≡n∑

j=0

tn−jn−j∑i=0

(−1)n−i−j n!

i!(n − i)!

(n − i)!

j!(n − i − j)!ci

≡n∑

j=0

tn−jn−j∑i=0

aijci

gdje su aij netrivijalni koeficijenti koji ovise o i i j .

Page 105: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

Buduci da je gornji polinom identicki jednak 0, svakikoeficijent uz svaku potenciju od t mora biti jednak 0:

0 =

n−j∑i=0

aijci , za j = n,n − 1, . . . ,0.

Za j = n, u sumi se nalazi samo jedan izraz a0,nc0,odakle mora biti c0 = 0.Za j = n − 1, u sumi se nalaze dva izrazaa0,n−1c0 + a1,n−1c1. Kako je c0 = mora biti i c1 = 0.Nastavljamo tako i dalje, koristeci povratne supstitucijeza proizvoljni j mora biti cn−j = 0.Za j = 0 mora biti cn = 0.

Page 106: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz (nastavak).

Dakle, postoji samo jedan nacin da napišemo 0 kaolinearnu kombinaciju Bernstenovih funkcija miješanja, ito sa koeficijentima jednakim 0.Slijedi, Bernsteinove funkcije miješanja su linearnozavisne.Buduci da ima n + 1 linearno nezavisnih Bernstenovihfunkcija miješanja, one cine bazu za Pn.

Page 107: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Geometrijska svojstva Bézierovih krivulja

KorolarBézierova krivulja leži u konveksnoj ljusci tocaka {Pi}ni=0.

Dokaz.Tvrdnja slijedi iz prethodnih teorema:

γ(t) =∑n

i=0 Piθi,n(t).θi,n(t) > 0 za t ∈ 〈0,1〉, za sve n ≥ 0 i i = 0, . . . ,n.∑n

i=0 θi,n(t) ≡ 1 za t ∈ [0,1].

Page 108: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

TeoremAko promatramo Bézierovu krivulju kao aproksimacijunjenog kontrolnog poligona, tada ona ima svojstvosmanjene varijacije.To znaci da proizvoljni pravac sijece Bézierovu krivuljuna manje ili jednako mjesta kao i njegov kontrolnipoligon.

Napomena

Iz prethodnih teorema možemo zakljuciti da Bézierovakrivulja ima sljedeca geometrijska svojstva:

Bézierova krivulja nema više zavoja od kontrolnogpoligona, a zavoji koji postoje na krivulji pojavljuju se ublizini zavoja kontrolnog poligona.

Page 109: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Napomena (nastavak)Svojstvo da se Bézierova krivulja nalazi unutarkonveksne ljuske kontrolnih tocaka može se koristitikod obrezivanja:

jednostavno se provijeri položaj ljuske u odnosu napravokutnik za obrezivanje,ako je ona u potpunosti unutar ili izvan pravokutnika zaobrezivanje, tada to isto vrijedi i za krivulju,tek ako ona sijece pravokutnik za obrezivanje, tadatreba tražiti sjecište krivulje i pravokutnika.

Gornja dva svojstva daju nam dobar osjecaj o izgledukrivulje na temelju njenog kontrolnog poligona.Buduci da je više od jedne Bernsteinove bazne funkcijenetrivijalno na 〈0,1〉, kontrolne tocke se ne moguinterpolirati osim P0 i Pn.

Page 110: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Napomena (nastavak)Za interpolaciju je potrebno da je samo jedankoeficijent uz Pi jednak 1, a svi ostali su 0. U tomslucaju krivulja interpolira tocku Pi .Kod Bézierovih krivulja najveci koeficijent može biti imanji od 0.5 (vidi primjer).

Page 111: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Izvrednjavanje derivacija

Razmatramo derivacije Bézierove krivulje svih redova, iželimo ih prikazati kao nove Bézierove krivulje.

Za θi,n(t) =(n

i

)t i(1− t)n−i imali smo

θ′i,n(t) =

(ni

)[it i−1(1− t)n−i − (n − i)t i(1− t)n−i−1].

Dalje,(ni

)i =

n!ii!(n − i)!

= n(n − 1)!

(i − 1)!(n − i)!= n

(n − 1i − 1

),

i(ni

)(n − i) =

n!(n − i)i!(n − i)!

= n(n − 1)!

i!(n − 1− i)!= n

(n − 1

i

).

Page 112: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Odavde slijedi

θ′i,n(t) =n(

n − 1i − 1

)t i−1(1− t)n−i − n

(n − 1

i

)t i(1− t)n−i−1

=n[θi−1,n−1(t)− θi,n−1(t)].

Za i = 0 je

θ′0,n(t) = (−1)n(1− t)n−1 = −nθ0,n−1(t).

Za i = n je

θ′n,n(t) = ntn−1 = nθn−1,n−1(t).

Ovime smo dokazali sljedeci teorem.

Page 113: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

TeoremZa i-tu Bernsteinovu funkciju miješanja n-tog stupnja θi,n(t)vrijedi

θ′i,n(t) = n[θi−1,n−1(t)− θi,n−1(t)], i = 0, . . . ,n,

gdje je θ−1,n−1(t) ≡ 0 i θn,n−1(t) ≡ 0.

Korolar

Za γ(t) =∑n

i=0 Piθi,n(t) vrijedi

γ′(t) =n−1∑i=0

Qiθi,n−1(t),

gdje su Qi = n(Pi+1 − Pi).

Page 114: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dokaz.Imamo

γ′(t) =n∑

i=0

Piθ′i,n(t)

=n∑

i=0

Pin(θi−1,n−1(t)− θi,n−1(t))

=n−1∑i=0

n(Pi+1 − Pi)θi,n−1(t).

Page 115: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Korolar

Za γ(t) =∑n

i=0 Piθi,n(t) vrijedi

γ(j)(t) =

n−j∑i=0

Qj,iθi,n−j(t),

gdje su

Qj+1,i =

{Pi , j = −1(n − j)(Qj,i+1 −Qj,i), j = 0, . . . ,n − 1

Page 116: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Možemo pokazati ekvivalentnost gornjeg korolara za γ′(t) ileme s pocetka ovog odjeljka. Zbog Bézierovogkonstruktivnog algoritma vrijedi:

γ′(t) =n−1∑i=0

n(Pi+1 − Pi)θi,n−1(t)

=n

(n−1∑i=0

Pi+1θi,n−1(t)−n−1∑i=0

Piθi,n−1(t)

)=n(

P [n−1]n (t)− P [n−1]

n−1 (t)).

Ovime možemo napisati algoritam koji istovremenoizvrednjuje krivulju i njenu derivaciju.

Page 117: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Algoritam (Bézierov konstruktivni algoritam)Neka su zadane

tocke {Pi}ni=0,tada se krivulja γ(t) i njena derivacija γ′(t) mogu izvrednitiza t ∈ [0,1] na sljedeci nacin:

1 P [0]i (t) = Pi za i = 0, . . . ,n.

2 Za j = 1, . . .n rekurzivno definiramo

P [j]i (t) = (1− t)P [j−1]

i−1 (t) + tP [j−1]i (t), za i = j , . . . ,n.

3 γ(t) = P [n]n (t),

4 γ′(t) = n(

P [n−1]n (t)− P [n−1]

n−1 (t))

.

Page 118: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Dijeljenje Bézierove krivulje

Ponekad se dogada da je jedan dio krivulje upravoonakav kakav treba biti, dok se drugi dio trebapromijeniti.Buduci da je Bézierova krivulja globalna, pomicanjembilo koje kontrolne tocke promijenit ce se citava krivulja.Riješenje ovog problema je podijela krivulje na višedijelova koji su ponovo Bézierove krivulje.Dijeljenje krivulje prikazat cemo za slucaj podijelekubicne Bézierove krivulje na dva dijela s intervalima[0,1/2] i [1/2,1].Neka je γ(t) =

∑3i=0 Piθi,3(t) Bézierova krivulja, i neka

je

α(t) =3∑

i=0

Qiθi,3(2t)

Bézierova reprezentacija iste krivulje za t ∈ [0,1/2].

Page 119: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Želimo koeficijente Qi napisati kao izraze od Pi :1 Raspišemo svaki θi,3(t) i θi,3(2t) za i = 0,1,2,3.2 Uvrstimo ih u jednakost γ(t) = α(t) za t ∈ [0,1/2].3 Izjednacimo koeficijente uz 1, t , t2 i t3, cime dobivamo

P0 =Q0 uz 1−3P0 + 3P1 =− 6Q0 + 6Q1 uz t

3P0 − 6P1 + 3P2 =12Q0 − 24Q1 + 12Q2 uz t2

−P0 + 3P1 − 3P2 + P3 =− 8Q0 + 24Q1 − 24Q2 + 8Q3 uz t3

4 Supstitucijama unaprijed za t = 1/2 dobivamo

Q0 =P0

Q1 =12

(P0 + P1) = P [1]1 (1/2)

Q2 =14

(P0 + 2P1 + P2) = P [2]2 (1/2)

Q3 =18

(P0 + 3P1 + 3P2 + P3) = P [3]3 (1/2)

Page 120: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Primijetimo da je prva kontrolna tocka krivulje α(t)jednaka prvoj kontrolnoj tocki od γ(t), dok je zadnjakontrolna tocka krivulje α(t) jednakaP [3]

3 (1/2) = γ(1/2).Isti postupak napravit cemo i za drugi dio krivulje: nekaje

β(t) =3∑

i=0

Riθi,3(2t − 1)

Bézierova reprezentacija iste krivulje za t ∈ [1/2,1].U jednkosti γ(t) = β(t) za t ∈ [1/2,2], izjednacavanjemkoeficijenata uz 1, t , t2 i t3 dobivamo sljedece.

Page 121: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

P0 =8R0 − 12R1 + 6R2 − R3 uz 1−3P0 + 3P1 =− 24R0 + 48R1 − 30R2 + 6R3 uz t

3P0 − 6P1 + 3P2 =24R0 − 60R1 + 48R2 − 12R3 uz t2

−P0 + 3P1 − 3P2 + P3 =− 8R0 + 24R1 − 24R2 + 8R3 uz t3

Riješavanjem ovog sustava za t = 1/2 dobivamo

R0 =18

(P0 + 3P1 + 3P2 + P3) = P [3]3 (1/2)

R1 =14

(P1 + 2P2 + P3) = P [2]3 (1/2)

R2 =12

(P2 + P3) = P [1]3 (1/2)

R3 =P3

Page 122: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Opet možemo primijetiti da je prva kontrolna tockakrivulje β(t) jednaka P [3]

3 (1/2) = γ(1/2), dok je zadnjakontrolna tocka krivulje β(t) jednaka zadnjoj kontrolnojtocki od γ(t).

0 0.5 1 1.5 2 2.5 30

0.5

1

1.5

2

2.5

3

x

y

Slika: Kubicna Bézierova krivulja γ(t) sa originalnim kontrolnimpoligonom, i poligonima dijelova krivulje α(t) i β(t).

Page 123: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Kubicne Bézierove krivulje se najcešce koriste, zatosmo ih uzeli za primjer podjele krivulje.Možemo primijetiti da su kontrolne tocke Qi i Ri ,i = 0,1,2,3 konveksne kombinacije originalnihkontrolnih tocaka Pi .Zbog toga se nove kontrolne tocke nalaze unutarkonveksne ljuske originalnih kontrolnih tocaka, i zbogtoga su bliže krivulji γ(t) od originalnih tocaka.Ovo je isto manifestacija svojstva smanjene varijacije.Podijela kubicne Bézierove krivulje može sejednostavno napisati i u matricnom obliku

Q0

Q1

Q2

Q3

=18

8 0 0 04 4 0 02 4 2 01 3 3 1

P0

P1

P2

P3

,

R0

R1

R2

R3

=18

1 3 3 10 2 4 20 0 4 40 0 0 8

P0

P1

P2

P3

.

Page 124: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Racunanje novih kontrolnih poligona je vrlo jeftino.Za dobivanje Qi i Ri moramo izracunati sljedece:

P [1]1 (1/2) =

P0 + P1

2, P [1]

2 (1/2) =P1 + P2

2, P [1]

3 (1/2) =P2 + P3

2,

P [2]2 (1/2) =

P [1]1 (1/2) + P [1]

2 (1/2)

2, P [2]

3 (1/2) =P [1]

2 (1/2) + P [1]3 (1/2)

2,

P [3]3 (1/2) =

P [2]2 (1/2) + P [2]

3 (1/2)

2.

To je ukupno 6 zbrajanja i 6 dijeljenja sa 2.Zato osim inkrementalnog algoritma crtanje kubicneBézierove krivulje možemo bazirati na njenojuzastopnoj podijeli.Algoritam se zaustavlja kada se segment krivulje možesmatrati dovoljno ravnim da bi se aproksimirao ravnomlinijom.

Page 125: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Provjera kriterija zaustavljanja je za kubicnu Bézierovukrivulju takodjer vrlo jednostavna, zbog cinjenice da ležiunutar konveksne ljuske kontrolnih tocaka.

Ukoliko je max{d2,d3} manja od neke tolerancije ε,tada se krivulja aproksimira ravnom linijom izmedu prvei zadnje kontrolne tocke.

Page 126: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Algoritam (Algoritam za crtanje Bézierove krivulje pomocuuzastopne podijele)

void CrtajBezierKriv(krivulja, ε){

if (Ravna(krivulja, ε))NacrtajLiniju(krivulja);

else{PodijeliKrivulju(krivulja, lijevaKrivulja,desnaKrivulja);CrtajBezierKriv(lijevaKrivulja, ε);CrtajBezierKriv(desnaKrivulja, ε);

}}

Page 127: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Podijelu Bézierove krivulje, sa tockom podijele ut = 1/2, može se analogno napraviti za bilo koji drugi n:

α(t) =∑n

i=0 Qiθi,n(2t), i γ(t) = α(t) za t ∈ [0,1/2], pricemu su

Q0 =P0

Q1 =P [1]1 (1/2)

...

Qn =P [n]n (1/2)

β(t) =∑n

i=0 Riθi,n(2t − 1), i γ(t) = β(t) za t ∈ [1/2,1],pri cemu su

R0 =P [n]n (1/2)

R1 =P [n−1]n (1/2)

...Rn =Pn

Page 128: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Može se definirati podijela Bézierove krivulje s tockompodijele za bilo koji t unutar domene krivulje.

DefinicijaSa

θ[P0, . . . ,Pn; a,b](t) =t∑

i=0

θi,n(a,b; t),

oznacavamo Bézierovu krivulju sa kontrolnim tockama {Pi},defininiranu na intervalu [a,b].

Page 129: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Teorem (Teorem o podijeli Bézierove krivulje)

Za θ[P0, . . . ,Pn; a,b] vrijedi

θ[P0, . . . ,Pn; a,b](t) =

θ[P [0]

0 ,P [1]1 , . . . ,P [n]

n ; a, c]

(t)

θ[P [n]

n ,P [n−1]n , . . . ,P [0]

n ; c,b]

(t)

gdje je

P [k ]i =

{ [(b−c)P[k−1]

i−1 +(c−a)P[k−1]i

]b−a k > 0, i = k , . . . ,n

Pi k = 0.

Page 130: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Bernsteinove aproksimacije

Slika: Bernsteinove bazne funkcije (a) n = 3; (b) n = 4.

Page 131: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Razmotrit cemo sada teoretsku pozadinu Bézierovihkrivulja.

Definicija

Za funkciju f ∈ C(m)[0,1] definirat cemo n-tu Bernsteinovupolinomijalnu aproksimaciju kao

Bn(f ; x) =n∑

k=0

f(

kn

)θk ,n(x).

Ako kontrolni poligon Bézierove krivulje definiramo kaopo dijelovima linearnu parametarsku funkciju f , saf (i/n) = Pi ,tada je sama Bézierova krivulja parametarskaBernsteinova aproksimacija stupnja n od f .

Page 132: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Jednostavno se vidi da je

Bn(f ; 0) = P0 i Bn(f ; 1) = Pn,

tako da je postignuta interpolacija u krajnjim tockama.

Definicija

Za niz funkcija {sj(x)}j kažemo da konvergira uniformno kafunkciji s(x) na intervalu I, ako za svaki ε > 0 postojiprirodan broj N takav da za sve j > N vrijedi

|sj(x)− s(x)| < ε za sve x ∈ I.

Page 133: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

TeoremAko je f (x) ogranicena na [0,1], tada

limn→∞

Bn(f ; x) = f (x)

za svaku tocku x u kojoj je f neprekidna.Ako je f ∈ C(0)[0,1] tada je konvergencija uniformna na[0,1].Ako je f ∈ C(m)[0,1] tada i

limn→∞

B(m)n (f ; x) = f (m)(x)

konvergira uniformno na [0,1].

Page 134: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Ovo svojstvo konvergencije Bernsteinovihaproksimacija i njenih derivacija garantira da one jakodobro reprezentiraju funkciju f za dovoljno veliki stupanjn.One dobro aproksimiraju samu krivulju, ali i njenetangente, zakrivljenost i ostala geometrijska svojstva.Problem je što Bernsteinove aproksimacije konvergirajuvrlo sporo.

Page 135: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Primjer

Neka je f (x) = 1. Buduci da je f (k/n) = 1 za sve n i k,vrijedi

Bn(1; x) =n∑

k=0

(nk

)xk (1− x)n−k

=(x + (1− x))n

=1

Dakle, Bernsteinova aproksimacija reprezentira konstantnufunkciju egzaktno.

Page 136: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Primjer

Neka je f (x) = x. Buduci da je f (k/n) = k/n za sve n i k,vrijedi

Bn(x ; x) =n∑

k=0

kn

(nk

)xk (1− x)n−k

=n∑

k=1

kn

(nk

)xk (1− x)n−k

=n∑

k=1

(n − 1k − 1

)xk (1− x)n−k

=xn∑

k=1

(n − 1k − 1

)xk−1(1− x)(n−1)−(k−1)

Page 137: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Primjer

Bn(x ; x) =xn−1∑k=0

(n − 1

k

)xk (1− x)(n−1)−k

=x

Dakle, Bernsteinova aproksimacija reprezentira i linearnufunkciju egzaktno.

Page 138: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

PrimjerMože se pokazati da Bernsteinova aproksimacija nereprezentira egzaktno kvadratnu funkciju f (x) = x2, i davrijedi

|Bn(x2; x)− x2| ≤ 1n,

pa za n→∞, greška se smanjuje uniformno.

Pomocu Bernsteinovih aproksimacija dokazuje se svojstvosmanjene varijacije.

Page 139: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Interpolacija pomocu Bernsteinovih baznihfunkcija

Problem je interpolirati n + 1 tocku Vi , i = 0, . . . ,nparametarskim polinomom stupnja n.Jedinstveni interpolant treba biti reprezentiran pomocuBernsteinovih baznih funkcija.Prvo moramo svakoj interpolacijskoj tocci dodijelitinjenu parametarsku vrijednost: tražimo γ(t) takav da je

γ(i/n) = Vi , za i = 0, . . . ,n.

Izbor parametara je takav da θi,n(t) ima najveci utjecajna Vi , jer θi,n(t) u ti = i/n poprima svoj maksimum.Dakle, želimo naci kontrolne tocke Pj , j = 0, . . . ,n takveda je

γ(i/n) =n∑

j=0

Pjθj,n(i/n) = Vi , i = 0, . . . ,n.

Page 140: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Kao rezultat dobivamo sustave od n + 1 jednadžbi sn + 1 nepoznanica za svaku komponentu.Kompaktni matricni oblik jednadžbi je sljedeciθ0,n(0/n) θ1,n(0/n) · · · θn,n(0/n)θ0,n(1/n) θ1,n(1/n) · · · θn,n(1/n)

......

...θ0,n(n/n) θ1,n(n/n) · · · θn,n(n/n)

P0P1...

Pn

=

V0V1...

Vn

Može se pokazati da jedinstveni interpolacijski polinompostoji ako su sve vrijednosti x koordinata tocaka Vimedusobno razlicite.Buduci da Bernsteinove funkcije miješanja cine bazuod Pn, gornji sustav ima jedinstveno rješenje.

Page 141: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Primjer

Želimo interpolirati tocke

V0 = (0,2), V1 = (3,2), V2 = (5,4), V3 = (1,0).

Za Pi = (xi , yi), i = 0,1,2,3 dobivamo sustav1 0 0 0827

49

29

127

127

29

49

827

0 0 0 1

x0 y0x1 y1x2 y2x3 y3

=

0 23 25 41 0

.

Page 142: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Primjer (nastavak)Rješenje ovog sustava je

0 2116 −5

3293

293

1 0

,što znaci da su

P0 = (0,2), P1 =

(116,−5

3

),

P2 =

(293,293

), P3 = (1,0).

Page 143: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

0 2 4 6 8 10−2

0

2

4

6

8

10

x

y

Slika: Izracunata Bézierova krivulja iz prethodnog primjera, sakontrolnim poligonom i interpolacijskim tockama.

Page 144: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Usporedivanje Bézierovih krivulja sinterpolacijom

Slika: (a) Originalne tocke; (b) kontrolni poligon.

Page 145: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: (a) Polinomijalni interpolant; (b) Bézierova krivulja.

Page 146: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Po dijelovima kubicna Bézierova krivulja; neke unutarnjekontrolne tocke su interpolirane.

Page 147: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Usporedivanje Bernsteinove aproksimacije sinterpolacijom

Primijetimo razliku u brzini i svojstvima konvergencije.

Slika: Originalna krivulja.

Page 148: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Kvadraticne aproksimacije: (a) Bernsteinova aproksimacija;(b) interpolacija.

Page 149: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Kvinticne aproksimacije: (a) Bernsteinova aproksimacija;(b) interpolacija.

Page 150: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: Seksticne aproksimacije: (a) Bernsteinova aproksimacija;(b) interpolacija.

Page 151: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Lijepljenje Bézierovih krivulja

Nedostaci Bézierovih krivulja su:cinjenica da porastom kontrolnih tocaka raste stupanjparametarskih polinoma,one su globalne aproksimacije — Bernsteinove baznefunkcije su netrivijalne svugdje u domeni.

Ponekad glatkoca višeg reda se može žrtvovati u imemanjeg broja racunskih operacija.

To možemo postici lijepljenjem više Bézierovih krivuljau jednu krivulju, uz uvjete neprekidnosti nekihderivacija.

Prvo navedimo nekoliko definicija i svojstava krivulja izdiferencijalne geometrije.

Page 152: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

DefinicijaNeka su I1 i I2 intervali na R. Ako

γ(t) : I1 → R3,p : I2 → I1,

tada možemo definirati kompoziciju funkcija γ i p, a

γ(p(u)) : I2 → R3

je reparametrizacija od γ. To se još zove i promjenaparametra iz t u u.

Obje funkcije γ(t) i γ(p(u)) imaju isti graf, pa onepredstavljaju razlicite reprezentacije iste krivulje.

Page 153: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Definicija

γ(t) : I → R3 je regularna parametarska reprezentacija akoza sve t ∈ I vrijedi

1 γ(t) ∈ C(1),2 γ′(t) 6= 0.

Definicija

t = p(u) zove se dopustiva promjena parametra ako za sveu ∈ I2,

1 p(u) ∈ C(1),2 p′(u) 6= 0.

Page 154: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

LemaRezultat reperametrizacije regularne parametarskereprezentacije pomocu dopustive promjene parametra jeponovo regularna parametarska reprezentacija iste krivuljeili jednog njenog djela.

Definicija

Regularna reprezentacija γ(t), t ∈ I1, je srodna drugojregularnoj reprezentaciji φ(u), u ∈ I2 ako postoji dopustivapromjena parametra t = p(u) takva da je

1 p(I1) = I2,2 γ(p(u)) = φ(u).

Page 155: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

LemaPrethodno definirana srodnost je relacija ekvivalencije naskupu svih regularnih parametarskih reprezentacija.

DefinicijaSvaka klasa ekvivalencije relacije “dopustiva promjenaparametra” zove se regularna krivulja.

Neka je γ(t) : I → R3 regularna krivulja, tada se njenaduljina izmedu vrijednosti parametra ta i tb može izracunatikao

s =

∫ tb

ta‖γ′(τ)‖dτ.

Page 156: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Duljinu krivulje možemo smatrati funkcijom od t , odneke fiksne vrijednosti parametra t0 do t :

s(t) =

∫ t

t0‖γ′(τ)‖dτ.

Lako se može provjeriti da je

dsdt

=ddt

∫ t

t0‖γ′(τ)‖dτ = ‖γ′(t)‖ > 0.

Buduci da je γ′(t) vektor brzine krivulje γ u t , ‖γ′(t)‖ jeiznos same brzine.Vidimo da je s(t) strogo rastuca funkcija, pa je prematome i invertibilna.Dakle, postoji neka funkcija q takva da je t = q(s), onaje derivabilna sa dt

ds > 0.

Page 157: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

NapomenaZa svaku regularnu reprezentaciju, reparametrizacijaparametrom duljine luka je dopustiva promjena parametra.

Pretpostavimo da je γ(s) parametrizirana duljinom luka.Tada je

1 =dsds

= ‖γ′(s)‖.

Ekvivalentno možemo pretpostaviti da je γ(t) krivulja skonstantnim iznosom brzine, tj. da je ‖γ′(t)‖ = 1, zasve t . Tada je

s =

∫ t

t=0‖γ′(τ)‖dτ = t .

Pokazali smo da γ ima parametrizaciju duljinom lukaako i samo ako je ‖γ′‖ = 1.

Page 158: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Za sljedece definicije imamo ove pretpostavkes je parametar duljine luka,γ : I → R3,γ je parametriziran duljinom luka γ(s) i vrijedi‖γ′(s)‖ = 1.

Definicija

T = T (s) = γ′(s) zove se jedinicna tangenta na krivulju γ,jer je ‖T (s)‖ = 1 za sve s.

Definicija

T ′ = T ′(s) = γ′′(s) zove se vektor zakrivljenosti.

Teorem

〈T ,N〉 = 0, za sve s.

Page 159: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Definicija

κ = κ(s) = ‖T ′(s)‖ zove se zakrivljenost od γ u tocci γ(s).Vrijedi κ ≥ 0. Za κ > 0 definiramo N = N(s) = T ′/κ, kojegnazivamo vektorom normale ili jedinicnom normalom.

Ako je κ(s) = 0 na nekom intervalu, tada je γ segmentpravca na tom intervalu.

Definicija

Skalarna vrijednost 1/κ zove se radijus zakrivljenosti.

Page 160: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Parametrizaciju duljinom luka je cesto neprakticnoracunati.Za proizvoljnu regularnu parametrizaciju γ(t) može sepokazati da vrijedi:

T (t) =γ′(t)‖γ′(t)‖

N(t) =‖γ′(t)‖γ′′(t)‖γ′(t)× γ′′(t)‖

− 〈γ′(t), γ′′(t)〉γ′(t)‖γ′(t)‖ ‖γ′(t)× γ′′(t)‖

Page 161: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Cesto kod dizajna krivulja trebamo znati da li su kodlijepljenja dviju krivulja tangenta i zakrivljenost neprekidni, ilida li je krivulja dovoljno glatka.

Ako su γ1 i γ2 dvije regularne parametarske krivuljedefinirane za t ∈ [0,1], tada definiramo

γ(t) =

{γ1(t), t ∈ [0,1〉γ2(t − 1), t ∈ [1,2].

Definicija

Ako je krivulja klase C(n) kada je reprezentiranaparametrizacijom duljinom luka, tada kažemo da je onageometrijski klase C(n).

Page 162: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Ako je krivulja geometrijski klase C(1) to znaci da jejedinicna tangenta neprekidna.Ako je krivulja geometrijski klase C(2) to znaci da sujedinicna tangenta, jedinicna normala i zakrivljenostneprekidni.Inace, krivulja je klase C(n) ako je njena parametarskareprezentacija klase C(n).

Provjerimo sada koja svojstva mora zadovoljiti krivulja da bibila geometrijski klase C(0), C(1) ili C(2).

Ako je γ geometrijski klase C(0), tada γ mora bitineprekidna u t = 1, i mora biti

γ1(1) = γ2(0).

Page 163: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Ako je γ geometrijski klase C(1), tada mora biti

γ′1(1) = k1γ′2(0), za konstantu k1 =

‖γ′1(1)‖‖γ′2(0)‖

.

Ako je k1 = 1 tada je krivulja γ klase C(1) u t = 1.

Ako je γ geometrijski klase C(2), tada mora biti

γ′1(1) =k1γ′2(0), za konstantu k1 =

‖γ′1(1)‖‖γ′2(0)‖

γ′′1 (1) =k2γ′2(0) + k2

1γ′′2 (0), za neku konstantu k2

Ako su k1 = 1 i k2 = 0 tada je krivulja γ klase C(2) ut = 1.

Page 164: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Pretpostavimo sada da želimo spojiti dvije Bézierovekrivulje istog stupnja u svojim krajnjim tockama, saodredenim stupnjem neprekidnosti.Pogledat cemo koje uvjete u tom slucaju morajuzadovoljavati njihove kontrolne tocke.Neka su

γ1 =n∑

i=0

Piθi,n(t),

γ2 =n∑

i=0

Qiθi,n(t),

i sa γ(t) oznacimo krivulju dobivenu lijepljenjem gornjihdviju Bézierovih krivulja:

γ(t) =

{γ1(t), t ∈ [0,1〉γ2(t − 1), t ∈ [1,2].

Page 165: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Buduci da γ1 i γ2 interpoliraju svoje krajnje kontrolnetocke, γ(t) ce biti neprekidna u t = 1 ako je

Pn = Q0.

Da bi γ bila geometrijski klase C(1), mora postajatik1 > 0 takav da je

γ′1(1) = k1γ′2(0).

Primijenjujuci ovaj uvijet na Bézierove krivulje,dobivamo

γ′1(1) = n(Pn − Pn−1), i γ′2(0) = n(Q1 −Q0);

Pn − Pn−1 = k1(Q1 −Q0).

Dakle, tocke Pn−1, Pn = Q0 i Q1 moraju ležati na istompravcu, pri cemu Pn = Q0 mora biti izmedu druge dvijetocke.

Page 166: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Ako želimo da krivulja bude klase C(1), tadaγ′1(1) = γ′2(0) i Pn = Q0 mora biti tocno na polovinisegmenta pravca izmedu Pn−1 i Q1.

Da bi γ bila geometrijski klase C(2), mora postajati k2takav da je

γ′′1 (1) = k2γ′2(0) + k2

1γ′′2 (0).

Primijenjujuci ovaj uvijet na Bézierove krivulje,dobivamo

γ′′1 (1) =n(n − 1)(Pn − 2Pn−1 + Pn−2)

γ′′2 (0) =n(n − 1)(Q0 − 2Q1 + Q2).

Ubacujuci gornji rezultat u uvjet za geometrijski C(2),imamo

n(n − 1)(Pn − 2Pn−1 + Pn−2) =k2n(Q1 −Q0) + k21 n(n − 1)(Q0 − 2Q1 + Q2)

Pn − 2Pn−1 + Pn−2 =k21 (Q0 − 2Q1 + Q2) +

k2

n − 1(Q1 −Q0).

Page 167: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Buduci da je

Pn = Q0 i Pn − Pn−1 = k1(Q1 −Q0),

iz gornje jednakosti slijedi

Pn−2−Pn−1 =

(k1 −

k2

n − 1+ k2

1

)(Q0−Q1)+k2

1 (Q2−Q1).

S druge strane možemo napisati

Pn−1 = Q1 + (1 + k1)(Q0 −Q1)

odakle možemo zakljuciti da je

Pn−2 = Q1+a(Q0−Q1)+b(Q2−Q1), za neke konstante a,b.

Slijedi da Pn−1 i Pn−2 leže na ravnini razapetoj sa Q0,Q1 i Q2.Dakle, tocke Pn−2, Pn−1, Pn = Q0, Q1 i Q2 moraju ležatina istoj ravnini, od cega srednje tri moraju ležati naistom pravcu.

Page 168: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Ako želimo da krivulja bude klase C(2), tada su k1 = 1 ik2 = 0, pa

Pn − Pn−1 =Q1 −Q0

Q2 − Pn−2 =4(Q1 −Q0).

Page 169: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Povecavanje stupnja

Ako želimo napraviti neke fine promjene na Bézierovojkrivulji moramo povecati stupnjeve slobode.Jedan nacin da to ucinimo je dijeljenje krivulje na dva iliviše dijelova.Drugi nacin je reprezentacija krivulje polinomom višegstupnja.Postavlja se pitanje: kako možemo Bézierovu krivulju

γn(t) =n∑

i=0

Piθi,n(t)

napisati kao

γn+1(t) =n+1∑i=0

Qiθi,n+1(t).

Sljedece što moramo naci je odnos izmedu kontrolnihtocaka {Pi} i {Qi}.

Page 170: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Iz dokaza teorema o rekurzivnom svojstvuBernsteinovih funkcija miješanja slijedi

k + 1n + 1

θk+1,n+1(t) = tθk,n(t) in + 1− k

n + 1θk,n+1(t) = (1− t)θk,n(t).

Zbrajanjem tih dviju jednakosti dobivamo

θk ,n(t) =k + 1n + 1

θk+1,n+1(t) +n + 1− k

n + 1θk ,n+1(t).

Uvrštavanjem u jednadžbu krivulje imamo

γn(t) =n∑

i=0

Piθi,n(t)

=n∑

i=0

Pi

(i + 1n + 1

θi+1,n+1(t) +n + 1− i

n + 1θi,n+1(t)

)

=n+1∑i=0

(iPi−1 + (n + 1− i)Pi

n + 1

)θi,n+1(t).

Page 171: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Teorem

Bézierova krivulja γ(t) =∑n

i=0 Piθi,n(t) može sereprezentirati kao

γ(t) =n+1∑i=0

Qiθi,n+1(t),

gdje su

Qi =iPi−1 + (n + 1− i)Pi

n + 1.

Primijetimo da je ovako dobivena Bézierova krivuljavišeg stupnja identicna polaznoj krivulji, jedino štokontrolni poligon ima sada više vrhova.Ako želimo mijenjati krivulju, to možemo sada ucinitipomicanjem novih kontrolnih tocaka.

Page 172: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Slika: (a) Povecanje stupnja za 1; (b) višestruko povecanjestupnja.

Page 173: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

BézierovekrivuljeSvojstva Bézierovihkrivulja

SvojstvaBernsteinovihfunkcija miješanja

Geometrijskasvojstva Bézierovihkrivulja

Izvrednjavanjederivacija

Dijeljenje Bézierovekrivulje

Bernsteinoveaproksimacije

Interpolacija pomocuBernsteinovih baznihfunkcija

UsporedivanjeBézierovih krivulja sinterpolacijom

UsporedivanjeBernsteinoveaproksimacije sinterpolacijom

Lijepljenje Bézierovihkrivulja

Povecavanje stupnja

B-splajnovi

Domaca zadacaNapišite program koji ce nacrtati zadano slovo ili brojku:

α β γ δ ε ζ ϑ ξ ϕ ω

b e m s y 2 3 6 8

na dva nacina:1 pomocu po dijelovima konike s pogodnim konstantama

K ,2 pomocu po dijelovima Bézierove krivulje, pri cemu se

Bézierove krivulje crtaju algoritmom koji implementirauzatopnu podijelu krivulje.

Pazite na geometrijsku glatkocu krivulja, tako da ona štovjernije prikazuje zadano slovo ili brojku.

Page 174: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

B-splajnovi

Pozitivna svojstva Bézierovih krivulja su:1 svojstvo smanjene varijacije2 svojstvo da se krivulja nalazi unutar konveksne ljuske

kontrolnog poligona3 jednostavan konstruktivni algoritam

Negativna svojstva Bézierovih krivulja su:1 povecavanjem broja kontrolnih tocaka povecava se

stupanj krivulje2 globalni efekt Bernsteinove baze; zbog toga što je

svaka bazna funkcija razlicita od nule na cijeloj domeniosim konacno mnogo tocaka, pomicanje bilo kojekontrolne tocke mijenja cijelu krivulju

Sljedeci korak bi bio kreiranje krivulje koja ima svapozitivna svojstva Bézierove krivulje ali bez negativnih.

Page 175: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Svojstva koja želimo posticiKrivulja je izgladena verzija kontrolnog poligona.Reprezentacija krivulje je po dijelovima polinom kojidozvoljava odredivanje stupnja glatkoce kod spojevapolinomijalnih dijelova.Gornja dva svojstva automatski odreduju konstruktivnialgoritam slican Bézierovom (bez korištenja teorijediferencijalne geometrije).Prikaz krivulje kao

γ(t) =∑

i

Pibi ,

pri cemu suPi vrhovi kontrolnog poligonabi funkcije miješanja koje ne ovise o kontrolnompoligonu, ali ovise o stupnju polinoma i uvjetimaglatkoce kod spojeva.

Page 176: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Konstruktivne po dijelovima polinomijalnekrivuljePrimjer

Želimo generalizirati linearnu Bézierovu krivulju:segment pravca definiran kontrolnim poligonom s 2tocke.

To možemo napraviti na mnogo nacina:Za kontrolni poligon s 3 tocke jedina mogucageneralizacija je C(0) po dijelovima linearna krivulja.Za kontrolni poligon s 4 tocke postoje višegeneralizacija:

Jedna C(0) po dijelovima linearna krivulja (ekvivalentnakontrolnom poligonu). — (a)Prekidna C(−1) krivulja koja se sastoji od dvanepovezana segmenta pravca. — (b)

Page 177: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer

Želimo generalizirati kvadratnu Bézierovu krivulju:segment parabole definiran kontrolnim poligonom s 3tocke.

Povecavamo broj kontrolnih tocaka.Za kontrolni poligon s 4 tocke metoda lijepljenja konikanije primijenjiva.

Za to je potrebno 5 kontrolnih tocaka.Imamo garanciju da je dobivena krivulja C(0), a može seeksplicitno uciniti C(1) ako tri srednje tocke leže napravcu.Glatkoca derivacije u potpunosti ovisi o geometriji, i nepredstavlja poseban stupanj slobode.

Page 178: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Pretpostavimo da cemo koristiti proizvoljni kontrolnipoligon s cetiri tocke P0, P1, P2 i P3 za generiranje podijelovima kvadratne krivulje, ciji dijelovi se spajaju saC(1) glatkocom kod spojeva.Definiramo tocku

R = (1− λ)P1 + λP2, 0 < λ < 1

na segmentu pravca izmedu P1 i P2.

Slika: (a) Kontrolni poligon sa tockom R; (b) željena krivulja.

Page 179: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Ovim postupkom dobit cemo dva kvadratna segmenta:1 γ1(t) s kontrolnim poligonom P0, P1 i R2 γ2(t) s kontrolnim poligonom R, P2, i P3

Buduci da tocke P1, R i P2 leže na pravcu, dobivenakrivulja γ(t) izgleda C(1).Ona ce zaista biti klase C(1) ako su duljine tangenatajednake u toci R.

Page 180: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Koristit cemo Bernsteinove generalizirane baznefunkcije za reprezentaciju Bézierove krivulje skontrolnim poligonom P0, P1, R na segmentu [a,b]

θi,2(a,b; t) =

(2i

)(b − t)2−i(t − a)i

(b − a)2 , i = 0,1,2.

Vrijedi

γ1(t) =P0θ0,2(a,b; t) + P1θ1,2(a,b; t) + Rθ2,2(a,b; t)

γ′1(t) =2

(b − a)2 [(P1 − P0)(b − t) + (R − P1)(t − a)]

γ′1(b) =2(R − P1)

b − a

Page 181: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Koristit cemo Bernsteinove generalizirane baznefunkcije za reprezentaciju Bézierove krivulje skontrolnim poligonom R, P2, P3 na segmentu [b, c]

θi,2(b, c; t) =

(2i

)(c − t)2−i(t − b)i

(c − b)2 , i = 0,1,2.

Vrijedi

γ2(t) =Rθ0,2(b, c; t) + P2θ1,2(b, c; t) + P3θ2,2(b, c; t)

γ′2(t) =2

(c − b)2 [(P2 − R)(c − t) + (P3 − P2)(t − b)]

γ′2(b) =2(P2 − R)

c − b

Page 182: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Da bi po dijelovima kvadratna krivulja bila klase C(1),mora biti

R − P1

b − a=

P2 − Rc − b

.

Buduci da je R = (1− λ)P1 + λP2, imamo

R − P1 =[(1− λ)P1 + λP2]− P1

=λ(P2 − P1)

P2 − R =P2 − [(1− λ)P1 + λP2]

=(1− λ)(P2 − P1)

Zbog toga je

λ(P2 − P1)

b − a=

(1− λ)(P2 − P1)

c − b

Page 183: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)odakle slijedi

λ(c − b) = (1− λ)(b − a)

Dakle, korisnik može odrediti 3 od 4 realne vrijednostia, b, c, λ.Razumni default može biti

a = 0, b = 1, c = 2, λ =12.

Primijetimo da prethodna konstrukcija ne ovisi o P0 i P3.

Page 184: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Na ovaj nacin korisnik može konstruirati po dijelovimakvadratnu krivulju klase C(1) iz kontrolnog poligona san + 1 vrhova, za bilo koji n.Za proizvoljni poligon {Pi}ni=0 definiramo u = {ui}ni=1,ui < ui+1.Domena po dijelovima kvadratne krivulje je segment[u1,un], pri cemu je podsegment [ui ,ui+1] domena i-togkvadratnog dijela, kojih ukupno ima n − 1.λi izmedu i-tog i (i + 1)-og segmenta, i = 1, . . . ,n − 2dobiva se rješavanjem jednadžbe

λi(ui+2 − ui+1) = (1− λi)(ui+1 − ui)

Page 185: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Sada još moramo definirati novi konstruktivni algoritam.Vratimo se ponovo na slucaj sa dva kvadratnasegmenta.Ako su a, b i c zadani, tada je

λ =b − ac − a

.

Definirajmo sada

Q0 = P0, Q1 = P1, Q2 = R, Q3 = R, Q4 = P2, Q5 = P3.

Page 186: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Konstruktivni algoritam za krivulju sa Bernsteinovimgeneraliziranim baznim funkcijama za t ∈ [a,b] glasi

P [1]1 =

b − tb − a

Q0 +t − ab − a

Q1

P [1]2 =

b − tb − a

Q1 +t − ab − a

Q2

P [2]2 =

b − tb − a

P [1]1 +

t − ab − a

P [1]2

odakle je γ(t) = P [2]2 (t).

Prema definiciji od R je

Q2 =c − bc − a

Q1 +b − ac − a

Q4.

Page 187: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Tako je

P [1]2 =

b − tb − a

Q1 +t − ab − a

Q2

=b − tb − a

Q1 +t − ab − a

(c − bc − a

Q1 +b − ac − a

Q4

)=

(b − tb − a

+t − ab − a

c − bc − a

)Q1 +

t − ac − a

Q4

=c − tc − a

Q1 +t − ac − a

Q4

Page 188: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Analogno, za t ∈ [b, c]

P [1]2 =

c − tc − b

Q3 +t − bc − b

Q4

P [1]3 =

c − tc − b

Q4 +t − bc − b

Q5

P [2]3 =

c − tc − b

P [1]2 +

t − bc − b

P [1]3

odakle je γ(t) = P [2]3 (t).

Page 189: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Ponovo zbog definicije od R je

P [1]2 =

c − tc − b

Q3 +t − bc − b

Q4

=c − tc − b

(c − bc − a

Q1 +b − ac − a

Q4

)+

t − bc − b

Q4

=c − tc − a

Q1 +

(c − tc − b

b − ac − a

+t − bc − b

)Q4

=c − tc − a

Q1 +t − ac − a

Q4

Primijetimo da je konacna jednadžba za racunanje P [1]2

uvijek ista, bez obzira u kojem segmentu se nalazi t .Ovime smo izveli novi algoritam.

Page 190: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

AlgoritamNeka su zadani

kontrolni poligon {Pi}3i=0,realne vrijednosti a < b < c.

Tada se krivulja γ(t) može izvredniti na sljedeci nacin:1 P [0]

i (t) = Pi za i = 0, . . . ,3.2 Za t ∈ [a,b] izracunaj

P [1]1 =

b − tb − a

P [0]0 +

t − ab − a

P [0]1

P [1]2 =

c − tc − a

P [0]1 +

t − ac − a

P [0]2

Page 191: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Algoritam (nastavak)

Za t ∈ [b, c] izracunaj

P [1]2 =

c − tc − a

P [0]1 +

t − ac − a

P [0]2

P [1]3 =

c − tc − b

P [0]2 +

t − bc − b

P [0]3

3 Za t ∈ [a,b] izracunaj

P [2]2 =

b − tb − a

P [1]1 +

t − ab − a

P [1]2

Za t ∈ [b, c] izracunaj

P [2]3 =

c − tc − b

P [1]2 +

t − bc − b

P [1]3

Page 192: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Algoritam (nastavak)4 Vrijednost krivulje je tada

γ(t) =

{P [2]

2 t ∈ [a,b]

P [2]3 t ∈ [b, c]

Našli smo konstruktivni algoritam za po dijelovimakvadratne krivulje, koji koristi samo originalne kontrolnetocke.Preostalo nam je još naci izraz za krivulju koji jupredstavlja kao linearnu kombinaciju odredenih funkcijamiješanja, ciji su koeficijenti originalne kontrolne tocke.

Page 193: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Neka su

Q[0]i = Qi ,

tada definirajmo

ζ[0]i (t) =

θi,2(a,b; t) t ∈ [a,b], i = 0,1,20 t ∈ [b, c], i = 0,1,20 t ∈ [a,b], i = 3,4,5θi−3,2(b, c; t) t ∈ [b, c], i = 3,4,5

Krivulja se tada može zapisati kao

γ(t) =5∑

i=0

Q[0]i ζ

[0]i (t).

Page 194: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Originalne funkcije miješanja.

Page 195: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Medutim u ovom obliku jednadžbe R se pojavljuje dvaputa.Odstranit cemo to ponavljanje tako da definiramo

Q[1]i =

{Q[0]

i , i = 0,1,2Q[0]

i+1, i = 3,4

i

ζ[1]i (t) =

ζ[0]i (t), i = 0,1ζ[0]2 (t) + ζ

[0]3 (t), i = 2

ζ[0]i+1(t), i = 3,4

Page 196: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Funkcije miješanja nakon prve redukcije.

Page 197: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Buduci da je

Q[1]2 = (1− λ)Q[1]

1 + λQ[1]3 , i λ =

b − ac − a

,

vrijedi sljedece

γ(t) =4∑

i=0

Q[1]i ζ

[1]i (t)

=Q[1]0 ζ

[1]0 (t) + Q[1]

1 ζ[1]1 (t) + ((1− λ)Q[1]

1 + λQ[1]3 )ζ

[1]2 (t)+

+ Q[1]3 ζ

[1]3 (t) + Q[1]

4 ζ[1]4 (t)

=Q[1]0 ζ

[1]0 (t) + Q[1]

1 ζ[1]1 (t) + (Q[1]

1 (1− λ)ζ[1]2 (t) + Q[1]

3 λζ[1]2 (t))+

+ Q[1]3 ζ

[1]3 (t) + Q[1]

4 ζ[1]4 (t)

=Q[1]0 ζ

[1]0 (t) + Q[1]

1 (ζ[1]1 (t) + (1− λ)ζ

[1]2 (t))+

+ Q[1]3 (λζ

[1]2 (t) + ζ

[1]3 (t)) + Q[1]

4 ζ[1]4 (t)

Page 198: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Korištenjem prethodnih rezultata definiramo

Q[2]i =

{Q[1]

i , i = 0,1Q[1]

i+1, i = 2,3

i

ζ[2]i (t) =

ζ[1]0 (t), i = 0ζ[1]1 (t) + (1− λ)ζ

[1]2 (t), i = 1

λζ[1]2 (t) + ζ

[1]3 (t), i = 2

ζ[1]4 (t), i = 3

Funkcije ζ [2]i (t), i = 0,1,2,3 su klase C(1) na domeni

krivulje [a, c], i ne ovise o kontrolnim tockama.

Page 199: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Konacne funkcije miješanja za λ = 0.4.

Page 200: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Kvadratne funkcije miješanja sa 6 podsegmenata.

Page 201: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Prema tome, moguce je konstruirati po dijelovimakvadratnu krivulju klase C(1).Dobivanje pogodne generalizacije postaje punokompliciranije kada

uvjeti glatkoce nisu jednaki u svakom spojukada je stupanj polinoma veci od 2

Za to je potrebno uvesti formalizam, u kojem se mogureprezentirati konstruktivni algoritmi i jednadžbe krivuljapreko funkcija miješanja u kompaktnom obliku.Taj formalizam se zove reprezentacija B-splajnovima

Page 202: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Definicija

Niz u = {ui}si=0 razlicitih realnih vrijednosti zove se nizprijelomnih tocaka.Pridruženi niz m = {mi}si=0 pozitivnih cijelih brojeva, odkojih je mi pridružen ui , zove se vektor multipliciteta.Nepadajuci niz realnih brojeva t = {tj} takvih da jemi = card{j : tj = ui} zove se vektor cvorova.

Definicija

Broj elemenata u vektoru cvorova t zove se duljina, ioznacava se sa card(t).

Neka je N + 1 =∑s

i=0 mi duljina od t.Tada interval [ui ,ui+1〉 definira domenu jednogpolinomijalnog dijela.mi se odnosi na glatkocu spoja dvaju dijelova.

Page 203: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Algoritam (de Boorov rekurzivni algoritam za B-splajnove)

Za definiranje po dijelovima polinomijalne krivulje γ(t)stupnja k, potrebno je da je domena krivulje jednaka[tk , tN−k 〉.

1 P [0]i = Pi .

2 Za dani t ≥ tk , nadi j takav da je t ∈ [tj , tj+1〉.3 Za ` = 1, . . . , k

za i = j − k + `, . . . , j

P [`]i =

t − titi+k+1−` − ti

P [`−1]i +

ti+k+1−` − tti+k+1−` − ti

P [`−1]i−1 .

4 γ(t) = P [k ]j .

Page 204: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Vidimo da ovaj algoritam izgleda slicno Bézierovomkonstruktivnom algoritmu.P [`]

i je uvijek konveksna kombinacija od P [`−1]i−1 i P [`−1]

i ,koja ovisi o t-u.Ta konveksna kombinacija je razlicita za razlicitevrijednosti od i , ` i k .Nakon što je odreden indeks j , za racunanje P [1]

ipotrebne su tocke Pj−k , . . . ,Pj .

Dakle, na nultoj razini potrebno nam je k + 1 tocka.Na prvoj razini racuna se k tocaka.Na drugoj razini racuna se k − 1 tocaka.itd.Na k -toj razini racuna se samo jedna tocka.

Broj tocaka na svakoj razini odgovara broju tocakaukljucenih u svaku razinu Bézierovog algoritma, bezobzira na ukupan broj kontrolnih tocaka u poligonu.

Page 205: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Za kontrolni poligon sa n + 1 tocaka, ako želimodefinirati po dijelovima polinomijalnu krivulju stupnja ktada moramo definirati vektor t sa tocnoN + 1 = n + k + 2 elementa.

Ako pogledamo u algoritam, tada j može poprimitivrijednosti k , . . . ,N − k − 1.To znaci da su na nultoj razini potrebne tocke Pi zai = 0, . . . ,N − k − 1, odnosno ukupno N − k kontrolnihtocaka.Odatle slijedi:

n + 1 =N − kN + 1 =n + k + 2

cinjenica da je za bilo koji interval [tj , tj+1〉 potrebnosamo k + 1 kontrolnih tocaka kako bi se izracunalavrijednost krivulje stupnja k γ(t), cini ovu krivuljulokalnom.Za svaki t ∈ [tj , tj+1〉 radi se o istom polinomu.

Page 206: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Sljedeci interval ce koristiti druge kontrolne tocke zadefiniciju polinoma, iako neke od njih mogu biti iste kaou prethodnom intervalu.Multiplicitet nam govori koliko je kontrolnih tocakazajednickih u dva susjedna intervala, tj. u njihovimreprezentacijama.Može se pokazati da ako je k − p + 1 tocaka zajednickou reprezentacijama dva susjedna polinomijalna dijela,tada se ta dva dijela spajaju sa glatkocom C(k−p).

Page 207: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

PrimjerNeka su zadani:

k = 3t = {0,0,0,0,1,4,5,5,5,5}t = 2, odakle slijedi da je j = 4 (t4 = 1 ≤ 2 < t5 = 4)

Za ` = 1,2,3 vrijedi

P [`]i =

t − titi+4−` − ti

P [`−1]i +

ti+4−` − tti+4−` − ti

P [`−1]i−1 , i = 1 + `, . . . ,4.

Za ` = 1,P [1]

2 =t − t2t5 − t2

P [0]2 +

t5 − tt5 − t2

P [0]1

=2− 04− 0

P [0]2 +

4− 24− 0

P [0]1

=12

P [0]2 +

12

P [0]1

Page 208: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

P [1]3 =

t − t3t6 − t3

P [0]3 +

t6 − tt6 − t3

P [0]2

=2− 05− 0

P [0]3 +

5− 25− 0

P [0]2

=25

P [0]3 +

35

P [0]2

P [1]4 =

t − t4t7 − t4

P [0]4 +

t7 − tt7 − t4

P [0]3

=2− 15− 1

P [0]4 +

5− 25− 1

P [0]3

=14

P [0]4 +

34

P [0]3

Page 209: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Za ` = 2

P [2]3 =

t − t3t5 − t3

P [1]3 +

t5 − tt5 − t3

P [1]2

=2− 04− 0

P [1]3 +

4− 24− 0

P [1]2

=12

P [1]3 +

12

P [1]2

P [2]4 =

t − t4t6 − t4

P [1]4 +

t6 − tt6 − t4

P [1]3

=2− 15− 1

P [1]4 +

5− 25− 1

P [1]3

=14

P [1]4 +

34

P [1]3

Page 210: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Za ` = 3

P [3]4 =

t − t4t5 − t4

P [2]4 +

t5 − tt5 − t4

P [2]3

=2− 14− 1

P [2]4 +

4− 24− 1

P [2]3

=13

P [2]4 +

23

P [2]3

Konacno, γ(2) = P [3]4 .

Primijetimo da su rekurzivno definirani kontrolnipoligoni na svakoj razini u potpunosti ovisni o t.

Page 211: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: (a) P [1]i i P [2]

i ; (b) P [2]i i P [3]

i .

Page 212: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Svi uzastopni poligoni prikazani zajedno.

Page 213: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Kao i kod Bézierovih krivulja, ovaj novi oblik krivuljenece opcenito interpolirati kontrolne tocke.Iz de Boorovog algoritma vidimo da ce krivulja imatioblik

γ(t) =n∑

i=0

PiBi,k (t),

gdje je svaki Bi,k (t) po dijelovima polinom stupnja k .Tocno k + 1 od njih su netrivijalni na svakom intervaluizmedu cvorova.

Page 214: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

B-splajn funkcije miješanja

Želimo naci kolekciju funkcija {Bi,k (t)}ni=0 sarekurzivnim oblikom, tako da predstavljajugeneralizaciju Bernsteinovih funkcija miješanja.Buduci da je k stupanj po dijelovima polinoma, želimoda de Boorov algoritam rezultira reprezentacijom

γ(t) =∑

i

PiBi,k (t)

=∑

i

P [`]i Bi,k−`(t), ` = 0, . . . , k

Za danu vrijednost t ∈ [tj , tj+1〉, potrebne su samo k + 1vrijednosti P [0]

i , i = j − k , . . . , j , što znaci

γ(t) =

j∑i=j−k+`

P [`]i Bi,k−`(t), ` = 0, . . . , k

Page 215: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

γ(t) =∑

i

(t − ti

ti+k+1−` − tiP [`−1]

i +ti+k+1−` − tti+k+1−` − ti

P [`−1]i−1

)Bi,k−`(t)

=∑

i

P [`−1]i

(t − ti

ti+k+1−` − tiBi,k−`(t)+

+ti+k+2−` − t

ti+k+2−` − ti+1Bi+1,k−`(t)

)Buduci da želimo da je

γ(t) =∑

i

P [`−1]i Bi,k−`+1(t),

zato funkcije Bi,k−`+1 moraju zadovoljavati rekurziju

Bi,k−`+1(t) =t − ti

ti+k+1−` − tiBi,k−`(t)+

ti+k+2−` − tti+k+2−` − ti+1

Bi+1,k−`(t).

Page 216: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Definicija (de Boor – Coxova rekurzija)Neka je t0 ≤ t1 ≤ · · · ≤ tN niz realnih brojeva.Za k = 0, . . . ,N − 1 i i = 0, . . . ,N − k − 1

definiramo i-ti (normalizirani) B-splajn stupnja k kao

Bi,0(t) =

{1, za t ∈ [ti , ti+1〉0, inace

a za k > 0

Bi,k (t) =

{t−ti

ti+k−tiBi,k−1(t) +

ti+k+1−tti+k+1−ti+1

Bi+1,k−1(t), za ti<ti+k+1

0, inace

Page 217: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Napomena

Za slucaj kada je k = 0 i ti = ti+1 tada ne postoji nitijedna vrijednost unutar poluintervala [ti , ti+1〉, i tadapostavljamo da je Bi,0(t) ≡ 0.Za slucaj kada je k > 0 i ti = · · · = ti+k < ti+k+1 djelitelju prvom izrazu rekurzije je 0?!

U tom slucaju je Bi,k−1(t) ≡ 0 prema definiciji.Tada bi bilo

Bi,k (t) =ti+k+1 − t

ti+k+1 − ti+1Bi+1,k−1(t).

Page 218: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer

Želimo pronaci oblik funkcije Bi,1(t).Primijetimo da Bi,1(t) ovisi samo o Bi,0(t) i Bi+1,0(t).Pretpostavimo da je ti < ti+1 < ti+2.Tada Bi,0(t) 6= 0 za t ∈ [ti , ti+1〉, i Bi+1,0(t) 6= 0 zat ∈ [ti+1, ti+2〉.Tada slijedi da je Bi,1(t) razlicit od 0 za t ∈ [ti , ti+2〉.Sada je

Bi,1(t) =t − ti

ti+1 − tiBi,0(t) +

ti+2 − tti+2 − ti+1

Bi+1,0(t)

=

{ t−titi+1−ti

, za t ∈ [ti , ti+1〉ti+2−t

ti+2−ti+1, za t ∈ [ti+1, ti+2〉

Page 219: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Bi,1(ti+1) = 1, i Bi,1(t) je po dijelovima linearna funkcijakoja je razlicita od nule na dva susjedna intervalacvorova.Indukcijom možemo zakljuciti da je Bi,k (t) po dijelovimapolinom stupnja k .

Slika: (a) B-splajn stupnja 0; (b) B-splajn stupnja 1.

Page 220: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

LemaAko je t < ti ili t ≥ ti+k+1, tada je Bi,k (t) = 0, tj. Bi,k (t) možebiti razlicit od 0 samo na intervalu [ti , ti+k+1〉.

Dokaz.Dokaz se provodi indukcijom.

Prema definiciji, tvrdnja je istinita za k = 0.Pretpostavimo da je tvrdnja istinita za B-splajnovestupnja k − 1.Dakle, Bi,k−1(t) = 0 za t < ti i t ≥ ti+k , aBi+1,k−1(t) = 0 za t < ti+1 i t ≥ ti+k+1.Ubacujuci te tvrdnje u de Boor – Coxovu rekurziju,dobivamo da prvi izraz može biti razlicit od 0 zat ∈ [ti , ti+k 〉, a drugi izraz može biti razlicit od 0 zat ∈ [ti+1, ti+k+1〉.

Page 221: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dokaz (nastavak).

Prema tome, Bi,k (t) može biti razlicit od 0 na uniji tihdvaju intervala, tj. za t ∈ [ti , ti+k+1〉.

Lema

Bi,k (t) > 0 za t ∈ 〈ti , ti+k+1〉.

Konkretinije, Bi,k (ti+k+1) = 0, a Bi,k (ti) može biti jednak ilirazlicit 0, ovisno o cvorovima.

Dokaz.Prema definiciji, Bi,0 > 0 za t ∈ 〈ti , ti+1〉 pa je prvatvrdnja istinita za k = 0.

Page 222: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dokaz (nastavak).Pretpostavimo da je prva tvrdnja istinita za B-splajnovestupnja k − 1.Dakle, Bi,k−1(t) > 0 za t ∈ 〈ti , ti+k 〉 i Bi+1,k−1(t) > 0 zat ∈ 〈ti+1, ti+k+1〉.Ubacujuci te tvrdnje u de Boor – Coxovu rekurziju,dobivamo da je prvi izraz pozitivan za t > ti , a drugiizraz je pozitivan za t < ti+k+1.Prema tome, Bi,k (t) je pozitivan na presijeku tih dvajuintervala, tj. Bi,k (t) > 0 za t ∈ 〈ti , ti+k+1〉.Buduci da je Bj,0(tj+1) = 0 za sve j , druga tvrdnja vrijediza k = 0.Pretpostavimo da je Bj,k−1(tj+k ) = 0 za sve j .

Page 223: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dokaz (nastavak).Tada je

Bi,k (ti+k+1) =ti+k+1 − titi+k − ti

Bi,k−1(ti+k+1)+

+ti+k+1 − ti+k+1

ti+k+1 − ti+1Bi+1,k−1(ti+k+1)

=ti+k+1 − titi+k − ti

· 0 + 0 · 0 = 0

zbog prethodne leme za ti+k < ti+k+1zbog pretpostavke indukcije za ti+k = ti+k+1zbog pretpostavke indukcije

Za slucaj kada je ti = ti+1, vrijedi Bi,1(ti) = Bi,1(ti+1) =1, ali ako je ti < ti+1 tada je Bi,1(ti) = 0.

Page 224: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

DefinitionFunkcija koja je razlicita od 0 samo na konacnom intervalurealnog pravca zove se lokalna funkcija.

B-splajnovi su lokalne funkcije za sve i i k .

KorolarAko je t ∈ 〈tj , tj+1〉, za tj < tj+1, i i ∈ {j − k , j − k + 1, . . . , j}tada je Bi,k (t) > 0 za njih ukupno k + 1

Dokaz.Iz prethodne leme znamo da je nosac od Bi,k (t)sadržan u [ti , ti+k+1〉.Ako je tj ∈ {ti , ti+1, . . . , ti+k}, tada je Bi,k (t) > 0 zat ∈ 〈tj , tj+1〉.Dakle, i = j , j − 1, . . . , j − k .

Page 225: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

TeoremAko je γ(t) krivulja definirana de Boorovim algoritmom iα(t) =

∑ni=0 PiBi,k (t), gdje su Bi,k (t) definirane de Boor –

Coxovom rekurzijom, tada je γ(t) = α(t).

Dokaz.Za t ∈ [tj , tj+1〉 je

α(t) =n∑

i=0

PiBi,k (t)

=

j∑i=j−k

PiBi,k (t)

buduci da su to jedini B-splajnovi koji su razliciti od 0 u t .

Page 226: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dokaz (nastavak).Iz rekurzije slijedi

α(t) =

j∑i=j−k

Pi

(t − ti

ti+k − tiBi,k−1(t) +

ti+k+1 − tti+k+1 − ti+1

Bi+1,k−1(t))

=

j∑i=j−k

Piti+k+1 − t

ti+k+1 − ti+1Bi+1,k−1(t) +

j∑i=j−k

Pit − ti

ti+k − tiBi,k−1(t)

=

j+1∑i=j−k+1

Pi−1ti+k − tti+k − ti

Bi,k−1(t) +

j∑i=j−k

Pit − ti

ti+k − tiBi,k−1(t)

Page 227: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dokaz (nastavak).

Nosac od Bj+1,k−1(t) se nalazi unutar [tj+1, tj+k+1〉, paje Bj+1,k−1(t) = 0 za t ∈ [tj , tj+1〉.Nosac od Bj−k ,k−1(t) se nalazi unutar [tj−k , tj〉, pa jeBj−k ,k−1(t) = 0 za t ∈ [tj , tj+1〉.Zbog toga nam ostaje

α(t) =

j∑i=j−k+1

(Pi−1

ti+k − tti+k − ti

Bi,k−1(t) + Pit − ti

ti+k − tiBi,k−1(t)

)

=

j∑i=j−k+1

(Pi−1

ti+k − tti+k − ti

+ Pit − ti

ti+k − ti

)Bi,k−1(t)

=

j∑i=j−k+1

P [1]i Bi,k−1(t).

Page 228: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dokaz (nastavak).Indukcijom se dalje pokazuje da je

α(t) =

j∑i=j

P [k ]i Bi,0(t)

=P [k ]j

=γ(t)

KorolarZa t ∈ [ti , ti+1〉, krivulja B-splajnova je konveksnakombinacija od Pi−k , . . . ,Pi . To se zove svojstvo konveksneljuske.

Page 229: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Krivulja i njen kontrolni podpoligon za unutarnji interval.

Page 230: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Svojstva B-spajnova

Definicija

Pretpostavimo da je t vektor cvorova sa N + 1 elemenata.Tada postoji tocnon N − k B-splajnova stupnja k koji sudefinirani na vektoru t.Definiramo notaciju

Sk ,t =

{N−k−1∑

i=0

PiBi,k (t) : Pi ∈ R

}.

Sk ,t se zove prostor B-splajnova stupnja k na vektorucvorova t.

Page 231: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Lema

Za vektor cvorova t = {ti}Ni=0 i za t ∈ [tk , tN−k 〉 vrijedi

N−k−1∑i=0

Bi,k (t) = 1, za sve k ≥ 0.

Dalje, za t < tk ili t > tN−k je

N−k−1∑i=0

Bi,k (t) < 1.

Page 232: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

TeoremAko je Bi,k (t) B-splajn stupnja k definiran na vektorucvorova t, tamo gdje derivacija postoji (izmedu cvorova iponekad u samim cvorovima) ona se može izracunatipomocu izraza

B′i,k (t) = k(

Bi,k−1(t)ti+k − ti

−Bi+1,k−1(t)

ti+k+1 − ti+1

).

Page 233: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

TeoremZa krivulju B-splajnova

γ(t) =N−k−1∑

i=0

PiBi,k (t),

j -ta derivacija je dana sa

d j

dt j γ(t) =

N−(k−j)−1∑i=0

Qj,iBi,k−j(t),

gdje su

Qj,i =

{Pi , za j = 0(k − j + 1)

Qj−1,i−Qj−1,i−1ti+k−j+1−ti

, za j > 0,

a Qj−1,−1 = Qj−1,N−(k−j)−1 = Θ.

Page 234: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

KorolarPretpostavimo da vrijede uvjeti prethodnog teorema. Tadaza t ∈ [tj , tj+1〉, i = j − (k − 1) + `, . . . , j , i ` = 1, . . . , k − 1vrijedi

Q[`]1,i = k

P [`]i − P [`]

i−1

ti+k−` − ti.

KorolarMoguce je izvrijedniti i tocku na krivulji i derivaciju u njoj sajednom primijenom de Boorovog algoritma, jer je

Q[k−1]1,j = k

P [k−1]j − P [k−1]

j−1

tj+1 − tj.

Ovi korolari slijede iz primjene de Boorovog algoritma naγ′(t) =

∑N−ki=0 Q1,iBi,k−1(t) i iz prethodnog teorema.

Page 235: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

DefinicijaDefiniramo

PPk ,u,m ={f (t) : f (t)|〈ui ,ui+1〉 polinom stupnja manje od ili

jednak k, i f ∈ C(k−mi ) u ui}.

Ako je prostor po dijelovima polinoma definiran na [a,b],tada oznacavamo

PPk ,u,m[a,b].

Lako se može pokazati da je PPk ,u,m vektorski prostor.

TeoremAko je t vektor cvorova dobiven iz u i m, tada je

Bi,k ∈ PPk ,u,m[tk , tN−k ].

Page 236: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

KorolarAko je zadan vektor cvorova {ti , ti+1, . . . , ti+k+1} koji imarazlicite rastuce vrijednosti {ui1 , . . . ,uis}, pri cemu se svakaod njih ponavlja sa multiplicitetima {mi1 , . . . ,mis}, tada jeBi,k ∈ C(k−mij

) u uij .

TeoremBi,k je unimodalan, tj. postoji tocno jedam ekstrem na〈ti , ti+k+1〉.

Page 237: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Neprekidnost u krajevima krivulje

Pretpostavimo da imamo definiranu krivuljuγ(t)

∑N−k−1i=0 PiBi,k (t) sa pripadajucim vektorom

cvorova {t0, . . . , tN}.Njezina domena je [tk , tN−k 〉.

Pocetna krajnja tocka

Vrijedi tk = ujk .Ako je tk = tk+1, tada je B0,k ≡ 0 i nece imati nikakavdoprinos u γ.Zato pretpostavljamo da je tk < tk+1.Neka je tk+1−mjk

= · · · = tk , i mora biti mjk ≤ k + 1.

Za mjk < k + 1 B0,k je klase C(k−mjk ) u tk .Za mjk = k + 1 je t0 = t1 = · · · = tk < tk+1 i B0,k imaprekid u tk .

Page 238: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Zbog definicije B-splajnova oni su neprekidni zdesna:

B0,k (tk ) = limt→t+k

B0,k (t)

= limt→t+k

tk+1 − ttk+1 − t1

B1,k−1(t)

= limt→t+k

tk+1 − ttk+1 − t1

tk+1 − ttk+1 − t2

B2,k−2(t)

=...

= limt→t+k

(tk+1 − ttk+1 − tk

)k

Bk,0

=1

To znaci da su Bi,k (t) i = 0, . . . neprekidni sa unutarnjestrane lijevog ruba domene.

Page 239: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Završna krajnja tocka

Pretpostavljamo da je tN−k−1 < tN−k kako ne bi bioBN−k−1,k ≡ 0.Ako je tN−k = · · · = tN , i multiplicitet tocke tN−k je k + 1,BN−k−1,k ima prekid u tN−k .Isto kao i kod pocetne krajnje tocke

limt→t−N−k

BN−k−1,k (t) = limt→t−N−k

(t − tN−k−1

tN−k − tN−k−1

)k

BN−k−1,0(t)

=1

Medutim iz de Boor – Coxove rekurzije slijedi da je

BN−k−1,k (tN−k ) = 0.

Zbog toga BN−k−1,k (t) nije neprekidna sa unutarnjestrane desnog ruba domene.

Page 240: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Ako želimo neprekidnost i na tom rubu domenemoramo modificirati de Boor – Coxovu rekurziju.

Definicija

Neka je zadan vektor cvorova {ti}Ni=0, i pretpostavimo da jej = max{i : ti < ti+1, i ∈ {0, . . . ,N − 1}}. Definiramo

Bi,0(t) =

1, za t ∈ [ti , ti+1〉, i < j1, za t ∈ [tj , tj+1], i = j0, inace

Ova modifikacija utjece samo na zadnji netrivijalni B-splajnsvih stupnjeva, koji time postaje neprekidan u desnom rubudomene. BN−k−1,k (tN−k ) = 1.

Page 241: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Bernsteinove funkcije kao B-splajnovi

TeoremNeka su

u = {a,b} i m = {k + 1, k + 1},a t = {t0 = t1 = · · · = tk < tk+1 = · · · = t2k+1} je vektorcvorova, gdje su t0 = a i tk+1 = b.

Tada za t ∈ [a,b], ` = 0, . . . , k i i = 0, . . . , ` vrijedi

Bi+k−`,`(t) = θi,`

(t − ab − a

).

Dakle, za ovaj poseban izbor vektora cvorova B-splajnovisvode se na Bernsteinove funkcije miješanja.

Page 242: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

KorolarZa t = {t0 = t1 = · · · = tk < tk+1 = · · · = t2k+1} je

Sk ,t = Pk [tk , tk+1],

i za ovaj poseban izbor vektora cvorova krivulja B-splajnovasvodi se na Bézierovu krivulju.

TeoremAko je t = {t0 = t1 = · · · = tk < tk+1 = · · · = t2k+1}, tada suB-splajnovi linearno nezavisni i cine bazu prostora Sk ,t.

Page 243: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Uniformni B-splajnovi

Razmatramo slucaj kada su udaljenosti izmedususjednih cvorova jednake, tj.

ti = t0 + ih, h ∈ R+.

Lako se može pokazati da ako vektor cvorovatransformiramo tako da je h = 1 i t0 = 0, B-splajnovi senece promijeniti.Ovime se i racunanje B-splajnova i krivulja B-splajnovaznatno pojednostavljuje.Dakle, ti = i i domena krivulja B-splajnova je [k ,n + 1].Tada je za sve i-ove

Bi+1,0(t) =

{1, t ∈ [i + 1, i + 2〉0, t /∈ [i + 1, i + 2〉

=Bi,0(t − 1)

Prema tome, Bi+1,0(t) je translatirana verzija od Bi,0(t).

Page 244: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Indukcijom cemo pokazati da to vrijedi i za B-splajnovevišeg stupnja.Pretpostavimo da vrijedi

Bj+1,k−1(t) = Bj,k−1(t − 1), za svet i j .

Tada je

Bi+1,k (t) =t − (i + 1)

((i + 1) + k)− (i + 1)Bi+1,k−1(t)+

+((i + 1) + k + 1)− t

((i + 1) + k + 1)− ((i + 1) + 1)B(i+1)+1,k−1(t)

=(t − 1)− i(i + k)− i

Bi+1,k−1(t) +(i + k + 1)− (t − 1)

(i + k + 1)− (i + 1)B(i+1)+1,k−1(t)

=(t − 1)− i(i + k)− i

Bi,k−1(t − 1) +(i + k + 1)− (t − 1)

(i + k + 1)− (i + 1)Bi+1,k−1(t − 1)

odakle jeBi+1,k (t) = Bi,k (t − 1).

Ovime smo dokazali sljedeci teorem.

Page 245: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

TeoremZa vektor cvorova t definiran tako da je ti = i , je

Bi+1,k (t) = Bi,k (t − 1) za sve t .

KorolarZa vektor cvorova t definiran tako da je ti = i , vrijedi

Bi+j,k (t) = Bi,k (t − j),

za sve t, i za sve i, j i k za koje su B-splajnovi definirani.

Page 246: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

NapomenaZbog svojih svojstava krivulje uniformnih B-splajnovamogu se osim de Boorovim algoritmom racunati na dvadrugacija nacina:

1 matricnom metodom,2 spremanje u tablicu vrijednosti samo jednog B-splajna,

buduci da se ostali mogu dobiti translacijom tog jednogB-splajna.

Ove dvije metode su znacajno brže od de Boorovogalgoritma.Medutim uniformni B-splajnovi nisu toliko fleksibilni kaoneuniformni.

Page 247: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Matricna metoda za racunanje krivuljauniformnih kubicnih B-splajnova

Prema prethodnom korolaru postoji samo jedanistaknuti B-splajn (svi ostali izgledaju isto, samo sudefinirani na translatiranim domenama).Na intervalu [tj , tj+1〉 postoji 4 netrivijalna kubicnaB-splajna: Bj−3,3(t), Bj−2,3(t), Bj−1,3(t) i Bj,3(t).Dozvoljavajuci da indeksi vektora cvorova i kontrolnihtocaka zapocinju sa −3, za [tj , tj+1〉 i j = 0, . . . ,n − 3možemo pisati

γ(t) = [ Bj−3,3(t) Bj−2,3(t) Bj−1,3(t) Bj,3(t) ]

Pj−3Pj−2Pj−1Pj

.

Page 248: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Medutim za uniformne B-splajnove vrijedi

Bj−3,3(t) =B−3,3(t − j)Bj−2,3(t) =B−2,3(t − j)Bj−1,3(t) =B−1,3(t − j)

Bj,3(t) =B0,3(t − j)

Kako je [tj , tj+1〉 = [j , j + 1〉, slijedi t − j ∈ [0,1〉.Dakle, za t ∈ [0,1〉 je

γ(t+j) = [ B−3,3(t) B−2,3(t) B−1,3(t) B0,3(t) ]

Pj−3Pj−2Pj−1Pj

.

Page 249: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slijedi, ako znamo vrijednosti B-splajnova B−3,3(t),B−2,3(t), B−1,3(t), B0,3(t) za t ∈ [0,1〉 znat cemoizvrijedniti tocku γ(t) za bilo koji t .Postupak se vrši na sljedeci nacin.

1 Izaberi vrijednosti xp, p = 0, . . . ,m, takve da su0 = x0 < · · · < xm = 1.

2 Izvrijedni Bi,3(xp) za i = −3,−2,−1,0 i p = 0, . . . ,m.3 Za j = 0, . . . ,n − 3 izracunaj

γ(xp+j) = [ B−3,3(xp) B−2,3(xp) B−1,3(xp) B0,3(xp) ]

Pj−3Pj−2Pj−1Pj

,pri cemu

p =

{0, . . . ,m − 1, za j = 0, . . . ,n − 40, . . . ,m, za j = n − 3 .

Page 250: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Iako se ova metoda cini vrlo jednostavnom, potrebno jeizracunati i spremiti m + 1 vrijednosti za 4 razlicitaB-splajna.Postupak racunanja možemo razvijati i dalje i definirati

B =[ B−3,3(t) B−2,3(t) B−1,3(t) B0,3(t) ]

=[ t3 t2 t 1 ]C

buduci da je svaki B-splajn polinom na segmentu [0,1].Za t ∈ [0,1〉 se može izracunati

B−3,3(t) =(1− t)3

3!

B−2,3(t) =3t3 − 6t2 + 4

3!

B−1,3(t) =−3t3 + 3t2 + 3t + 1

3!

B0,3(t) =t3

3!

Page 251: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Sada možemo zapisati elemente matrice C:

C =

−1/6 1/2 −1/2 1/61/2 −1 1/2 0−1/2 0 1/2 01/6 2/3 1/6 0

.Napokon možemo sve to zapisati zajedno. Za t ∈ [0,1〉je

γ(t+j) = [ t3 t2 t 1 ]

−1/6 1/2 −1/2 1/61/2 −1 1/2 0−1/2 0 1/2 01/6 2/3 1/6 0

Pj−3Pj−2Pj−1Pj

.

Page 252: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Vektorski prostori B-splajnova

LemaNeka je

Sk ,t =

{∑i

PiBi,k (t) : Pi ∈ Rq

}skup svih linearnih kombinacija modificiranih normaliziranihB-splajnova stupnja k na vektoru cvorova t sa koeficijentimau Rq. Tada je Sk ,t vektorski prostor.

Page 253: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

PrimjerUsporedimo

vektor cvorova {0,0,0,0,1,2,2,2,2}s vektorom cvorova {0,1,2,3,4,5,6,7,8}.

Ako je k = 3 i n = 4, tada postoji 5 B-splajnova kojemožemo koristiti za generiranje krivulja u oba slucaja.

1 Za prvi vektor cvorova domena krivulje je[t3, t5] = [0,2].

U tom slucaju B0,3 je klase C(−1) u t = 0, i vrijediB0,3(0) = 1.Bi,3, za i = 1,2,3,4 su neprekidne u t = 0, i vrijediBi,3(0) = 0.Zbog toga je

γ(t3) =4∑

i=0

PiBi,3(t3) = P0.

Page 254: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Analaogno je B4,3 klase C(−1) u t = 2, i vrijediB4,3(2) = 1 (modificirana vrijednost).Bi,3, za i = 0,1,2,3 su neprekidne u t = 2, i vrijediBi,3(2) = 0.Zbog toga je

γ(t5) =4∑

i=0

PiBi,3(t5) = P4.

2 Za drugi vektor cvorova domena krivulje je[t3, t5] = [3,5].

U tom slucaju svi B-splajnovi su klase C(2) na cijelojdomeni.Vrijedi B0,3(t3) > 0, B1,3(t3) > 0, B2,3(t3) > 0 iB3,3(t3) = B4,3(t3) = 0.

Page 255: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)Zbog toga je

γ(t3) =4∑

i=0

PiBi,3(t3) =2∑

i=0

PiBi,3(t3).

Analogno vrijedi B0,3(t5) = B1,3(t5) = 0, B2,3(t5) > 0,B3,3(t5) > 0 i B4,3(t5) > 0.

γ(t5) =4∑

i=0

PiBi,3(t5) =4∑

i=2

PiBi,3(t5).

Kada se krivulja promatra kao parametarska funkcija, akoeficijenti {Pi} su tocke u R3, ti koeficijenti nam daju uvid unjen smještaj i oblik.

Page 256: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer

Sljedece slike prikazuju primjere krivulja B-splajnova sarazlicitim vektorima cvorova i razlicitim stupnjevima, alidefinirane sa istim kontrolnim poligonom.Ovi primjeri pokazuju veliku fleksibilnost B-splajnovanad Bézierovom krivuljom.

Page 257: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: (a) k = 2, t = {0,0,0,1,2,3,3,3};(b) k = 3, t = {0,0,0,0,1.5,3,3,3,3}.

Page 258: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: (a) k = 3, t = {0,0,0,0,0.5,3,3,3,3};(b) k = 3, t = {0,0,0,0,2.5,3,3,3,3}.

Page 259: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Pretpostavimo da sut sa card(t) = n + k + 2τττ sa card(τττ) = m + k + 2

dva vektora cvorova koji definiraju prostore B-splajnovaSk ,t i Sk ,τττ za m,n > k .Razmatrat cemo prostore funkcija sa istim domenama,kada je Sk ,τττ potprostor od Sk ,t.Neka je tk = τk i tn+1 = τm+1 da bi domene bilejednake.Neka su u i υυυ vektori prijelomnih tocaka za t i τττ redom, ineka su m i µµµ odgovarajuci vektori multipliciteta.Ako je Sk ,τττ je gladi u ui nego Sk ,t, tada je multiplicitetod ui iz υυυ niži od multuiplicitet od ui iz u (može biti cak ijednak 0, pa ui /∈ υυυ).U tom slucaju bi moglo biti Sk ,τττ ⊂ Sk ,t.

Page 260: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

TeoremPretpostavimo da su t i τττ vektori cvorova sa duljinaman + k + 2 i m + k + 2, gdje je n > m ≥ k. Ako t sadržielemente od τττ sa istim ili vecim multiplicitetom, tada je

Sk ,τττ ⊂ Sk ,t.

Page 261: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

LemaNeka je τττ proizvoljni vektor cvorova sa odgovarajucimB-splajnovima Bi,k (t).

Neka je t ∈ R takav da je τ` ≤ t < τ`+1, tako dat = τττ ∪ {t} predstavlja novi vektor cvorova saodgovarajucim B-splajnovima Cj,k (t).

Tada je

Bi,k (t) =

Ci,k , i≤`−k−1

t − titi+k+1 − ti

Ci,k (t) +ti+k+2 − t

ti+k+2 − ti+1Ci+1,k (t), `−k≤i≤`

Ci+1,k (t), `+1≤i

Page 262: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

KorolarZa τττ i t definirane u prethodnoj lemi vrijedi

n∑i=0

PiBi,k (t) =n+1∑j=0

QjCj,k (t),

gdje su

Qj =

Pj , j ≤ `− k

t − tjtj+k+1 − tj

Pj +tj+k+1 − ttj+k+1 − tj

Pj−1, `− k + 1 ≤ j ≤ `

Pj−1, `+ 1 ≤ j

Page 263: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

KorolarNeka je τττ proizvoljni vektor cvorova sa pripadajucimprostorom B-splajnova Sk ,τττ .

Neka je t ∈ R takav da je τ0 ≤ t < τn+k+1, tako dat = τττ ∪ {t} predstavlja novi vektor cvorova sapripadajucim prostorom B-splajnova Sk ,t.

Ako t /∈ [tk , tn+1〉, tada Sk ,t promatramo na istoj domenikao i Sk ,τττ .

Tada jeSk ,τττ ⊂ Sk ,t.

Page 264: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Definicija

Pretpostavimo da imamo dva vektora cvorova τττ i t, gdje jeτττ ⊂ t, odnosno

t = {ti} = τττ ∪ ηηη

gdje je ηηη = {ηi}qi=0 neki nepadajuci niz. ηηη može sadržavatiistu vrijednost više puta. Tada se t zove profinjenje od τττ .

TeoremPretpostavimo

τττ je proizvoljni vektor cvorova takav da je τi < τi+k+1 zasve i, sa pripadajucim prostorom B-splajnova Sk ,τττ ,t je neko profinjenje od τττ takvo da je tj < tj+k+1 za svej, sa pripadajucim prostorom B-splajnova Sk ,t.

Tada jeSk ,τττ ⊂ Sk ,t.

Page 265: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer

Slika: Krivulja i originalni kontrolni poligon;τττ = {0,0,0,0,1,4,5,7,10,10,10,10}.

Page 266: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Slika: Originalni i profinjeni kontrolni poligoni za umetnuti novicvor; t = {0,0,0,0,1,2,4,5,7,10,10,10,10}.

Page 267: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Slika: Originalni i profinjeni kontrolni poligoni za umetnute novecvorove na pola puta izmedu svih razlicitih τ -ova;t = {0,0,0,0,0.5,1,2.5,4,4.5,5,6,7,8.5,10,10,10,10}.

Page 268: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Slika: Originalni i profinjeni kontrolni poligoni za umetnuta dvanova cvora izmedu svaka dva razlicita τ -ova; t ={0,0,0,0,0.25,0.75,1,2,3,4,4.4,4.7,5,6,6,7,8,9,10,10,10,10}.

Page 269: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Slika: Originalni i profinjeni kontrolni poligoni za višestrukeumetnute cvorove;t = {0,0,0,0,1,2,2,2,2,4,5,7,7,7,7,10,10,10,10}.

Page 270: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Primjer (nastavak)

Slika: Profinjenje profinjene krivulje na isti nacin;t1 = {0,0,0,0,0.5,1,2.5,4,4.5,5,6,7,8.5,10,10,10,10} it2 = {0,0,0,0,0.25,0.5,0.75,1,1.75,2.5,3.25,4,4.25,4.5,4.75,5,5.5,6,6.5,7,7.75,8.5,9.25,10,10,10,10}.

Page 271: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

TeoremNeka je γ(t) =

∑i PiBi,k (t) krivulja B-splajnova sa

vektorom cvorova t0.Pretpostavimo da je tj = {tj,p}p profinjenje odtj−1 = {tj−1,q}q, tj. tj−1 ⊂ tj ukljucujuci multiplicitete.Neka je ∆j = maxp |tj,p − tj,p−1|.Dalje, neka je Dj(t) po dijelovima linearna krivulja kojapredstavlja kontrolni poligon vektora cvorova j-togprofinjenja.

Tada‖γ(t)− Dj‖ ≤ C(‖∆j‖)2‖γ′‖,

gdje je C konstanta koja ne ovisi niti o vektorima cvorova nitio funkciji γ.

Page 272: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

TeoremAko je k ≥ 0 cijeli broj, a t je vektor cvorova sa n + k + 2elemenata, k ≤ n, tada je {Bi,k ,t, i = 0, . . . ,n} linearnonezavisan skup u Sk ,t i cini njegovu bazu.

Teorem

Sk ,t = PPk ,u,m.

Page 273: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Raspored cvorova

Potrebni su nam konkretni kriteriji za odabir vektora cvorova.

Teorem

Neka je {ti}n+k+1i=0 vektor cvorova sa odgovarajucim

B-splajnovima {Bi,k (t)}ni=0, i neka je γ(t) =∑n

i=0 PiBi,k (t),t ∈ [tk , tn+1] promatrana krivulja B-splajnova. Pretpostavimoda je ti < ti+k+1 za sve i tako da niti jedna bazna funkcija(B-splajn) nije degenerirana. Pretpostavimo da postojiindeks j takav da je tj = · · · = tj+k−1. Tada vrijedi sljedece.

1 Ako je tj−1 < tj < tj+k (multipliciteta k), krivulja je klaseC(0) u tj i interpolira Pj−1.

2 Ako je tj−1 = tj (multipliciteta k + 1) tada je krivuljaklase C(−1) u tj−1 i vrijedi

limt→t−j−1

γ(t) = Pj−2, i limt→t+j−1

γ(t) = Pj−1.

Page 274: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Teorem (nastavak)3 Ako je tj = tj+k (multipliciteta k + 1) tada je krivulja

klase C(−1) u tj i vrijedi

limt→t−j

γ(t) = Pj−1, i limt→t+j

γ(t) = Pj .

4 Ako je tj+k−1 < tj+k ≤ tn+1, tada je

limt→t+j

γ′(t) =k

tj+k − tj(Pj − Pj−1).

5 Ako je tk ≤ tj−1 < tj , tada je

limt→t−j

γ′(t) =k

tj − tj−1(Pj−1 − Pj−2).

Page 275: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Korolar

Za vektor cvorova t = {ti}n+k+1i=0 takav da je t0 = · · · = tk i

tn+1 = · · · = tn+k+1 krivulja

γ(t) =n∑

i=0

PiBi,k (t)

interpolira tocke P0 u t = tk i Pn u t = tn+1, itangentna je na P1 − P0 u t = tk , i na Pn − Pn−1 ut = tn+1.

Page 276: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Za k = 3 vektor cvorova je t = {0,1,2,3,4,5}, bezvišestrikih cvorova. Svi dijelovi krivulje spajaju se sa glatkocomC(2). Na slici su prikazane i konveksne ljuske kontrolnih tocakasvakog pojedinog dijela.

Page 277: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Za k = 3 vektor cvorova je t = {0,1,1,2,3,4}, sa jednimdvostrukim cvorom. Dio krivulje oznacen sa Q4 sveo se na tocku.Konveksne ljuske od Q3 i Q5 sijeku se u bridu P2P3 na kojoj moraležati njihova spojna tocka. Krivulja je klase C(1) u toj tocci.

Page 278: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Za k = 3 vektor cvorova je t = {0,1,1,1,2,3}, sa jednimtrostrukim cvorom. Dijelovi krivulje oznacen sa Q4 i Q5 sveli su sena tocke. Konveksne ljuske od Q3 i Q6 sijeku se u tocci P3 u kojojmora ležati njihova spojna tocka. Krivulja je klase C(0) u toj tocci.

Page 279: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: Za k = 3 vektor cvorova je t = {0,1,1,1,1,2}, sa jednimcetverostrukim cvorom. Dijelovi krivulje oznacen sa Q4, Q5 i Q6sveli su se na tocke. Konveksne ljuske od Q3 i Q7 imaju prazanpresjek, zbog cega krivulja ima prekid izmedu P3 i P4.

Page 280: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Definicija

Krivulja B-splajnova stupnja k sa vektorom cvorovat = {ti}n+k+1

i=0 gdje je t0 = · · · = tk i tn+1 = · · · = tn+k+1 zovese otvorena krivulja B-splajnova.

Definicija

Krivulja B-splajnova stupnja k definirana na [tk , tn+1] kodkoje ne vrijede uvijeti na multiplicitete nužni za interpolacijubilo koje od krajnjih kontrolnih tocaka zove se plivajucakrivulja B-splajnova.

Page 281: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

DefinicijaDefiniramo ∆i = ti+1 − ti .

Ako je ∆i = ∆i+1 za sve i, tada se sve krivuljeB-splajnova koje koriste t kao svoj vektor cvorova zovuuniformne plivajuce krivulje B-splajnova.Ako je t vektor cvorova koji odgovara otvorenoj krivuljiB-splajnova i ∆k+i = ∆k+i+1 za i = 0, . . . ,n − k − 1,tada se sve odgovarajuce otvorene krivulje zovuuniformne otvorene krivulje B-splajnova.Sve krivulje ciji vektori cvorova ne zadovoljavaju gornjeuvjete zovu se neuniformne krivulje B-splajnova.

Page 282: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Interpolacija B-splajnovima

Neka nam je zadan skup od s + 1 uredenih parovapodataka {(ui ,pi)}si=0.Problem interpolacije u prostoru Sk ,t svodi se napronalaženje koeficijenata Pj takvih da

pi =n∑

j=0

PjBj,k ,t(ui), i = 0, . . . , s.

Neka nam je zadan skup od s + 1 uredenih trojkipodataka {(ui ,pi ,qi)}si=0.Problem Hermiteove interpolacije u prostoru Sk ,t svodise na pronalaženje koeficijenata Pj takvih da

pi =n∑

j=0

PjBj,k ,t(ui), i = 0, . . . , s,

qi =n∑

j=0

PjB′j,k ,t(ui), i = 0, . . . , s.

Page 283: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

C(2) kubicna interpolacija u cvorovima

Koristit cemo neuniformne otvorene kubicneB-splajnove.Rješavat cemo problem interpolacije tocaka{(ui ,pi)}si=0 sa C(2) po dijelovima kubicnompolinomijalnom krivuljom.Cvorovi ce biti definirani u {ui}si=0.Da bi ovi uvjeti bili zadovoljeni, mora vrijediti sljedece:

Domena interpolacijeske krivulje je [u0,us].Krivulja mora biti klase C(2) na spojevima, zato unutarnjicvorovi moraju biti jednostruki s vrijednostima {ui}s−1

i=1 .Dakle, vektor cvorova t = {tj} mora biti definiran sa

tj =

u0, j = 0,1,2,3uj−3, j = 4, . . . , s + 2us, j = s + 3, s + 4, s + 5, s + 6

Postoji s + 3 razlicitih B-splajnova Bj,3 definiranih ovimvektorom cvorova.

Page 284: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Buduci da imamo s + 1 interpolacijskih tocaka, amoramo odrediti s + 3 koeficijenta Pj , ostaje nam 2stupnja slobode.Postoji nekoliko nacina kako da postavimo uvjete na tadva dodatna stupnja slobode.

1 Zahtijevamo da je γ′′(u0) = 0 i γ′′(us) = 0. Ova vrstainterpolanta zove se interpolant prirodnim splajnom.

2 Zahtijevamo da je interpolant klase C(3) u u1 i us−1. Tose zove uvijet bez cvora, jer prva dva segmenta [u0,u2]i zadnja dva segmenta [us−2,us] cvorova specificirajujedan kubicni polinom kao da u1 i us−1 i nisu cvorovi.

3 Zahtijevamo da su zadane tangente u krajnjim tockamakrivulje, tj. γ′(u0) = p′0 i γ′(us) = p′s. Ova vrstainterpolanta zove se kompletan interpolant kubicnimsplajnom i on se najcešce koristi.

Page 285: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Ako je n = s + 2, tada tražimo kompletan interpolantkubicnim splajnom oblika

γ(t) =n∑

i=0

PiBi,3(t),

takav da vrijedi

pj =γ(uj) =n∑

i=0

PiBi,3(uj) j = 0, . . . , s

p′j =γ′(uj) =n∑

i=0

PiB′i,3(uj) j = 0, s

Buduci da smo odredili da je interpolant otvorenakrivulja B-splajnova, mora biti

P0 = p0, Pn = ps.

Page 286: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dalje, u u0 = t0 = · · · = t3 samo B0,3 i B1,3 imajuderivacije razlicite od nule.

B0,3 je klase C(−1) u u0.B1,3 je klase C(0) u u0.Bi,3 je barem klase C(1) u u0 za i ≥ 2, a za t < u0 jeBi,3 ≡ 0. Dakle, B′i,3(u0) = 0.

Buduci da vrijedi∑n

i=0 B′i,3(t) = 0 za sve t , imamo

B′0,3(u0) = −B′1,3(u0).

SlicnoB′n−1,3(us) = −B′n,3(us).

Page 287: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Napokon moramo odrediti koji B-splajnovi poprimajuvrijednost razlicitu od nule u ui , i = 1, . . . , s − 1.Buduci da je ti+3 = ui < ui+1 = ti+4, samo Bi,3, Bi+1,3,Bi+2,3 i Bi+3,3 mogu biti razliciti od nule u ui .Ali na intervalu [ti+2, ti+3〉 samo Bi−1,3, Bi,3, Bi+1,3 iBi+2,3 mogu poprimiti vrijednosti razlicite od nule.Sada, Bi−1,3 i Bi+3,3 su klase C(2) u ti+3, i buduci dasvaki od njih poprima nulu na jednoj strani od tog cvorai vrijednosti razlicite od nule na drugoj, vrijedi

Bi−1,3(ui) = 0, Bi+3,3(ui) = 0.

Dakle slijedi

pi =i+2∑j=i

PjBj,3(ui).

Page 288: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dobivene zakljucke možemo iskoristiti za dobivanjesustava

B

P0P1P2...

Pn−2Pn−1Pn

=

p0p′0p1...

ps−1p′sps

.

Page 289: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Za bi,j = Bi,3(uj) i b′i,j = B′i,3(uj), matrica B je oblika

B =

1 0 0 0 · · · 0 0 0 0b′0,0 b′1,0 0 0 · · · 0 0 0 00 b1,1 b2,1 b3,1 · · · 0 0 0 0

. . .. . .

. . .0 0 0 0 · · · bn−3,s−1 bn−2,s−1 bn−1,s−1 00 0 0 0 · · · 0 0 b′n−1,s b′n,s0 0 0 0 · · · 0 0 0 1

.

Rješenje ovog (n + 1)× (n + 1) sustava linearnihjednadžbi daje koeficijente B-splajnova.Ova matrica može biti velikih dimenzija, ali jetridijagonalna pa za nju postoji mnogo efikasnihnumerickih metoda.Za parametarsku interpolaciju (Pi ∈ R3), sustav serješava posebno za svaku koordinatu koeficijenata.

Page 290: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Po dijelovima kubicna Hermiteova interpolacija

Neka je k = 3 i pretpostavimo da je zadano m + 1 trojkikoji se sastoje od vrijednosti parametra, tocke nakrivulji i njene derivacije {(ui ,pi ,qi)}mi=0.Ponovo konstruiramo vektor cvorova t za otvorenukrivulju B-splajnova sa

ti =

u0, i = 0,1,2,3uj , i = 2j + 2,2j + 3, j = 1, . . . ,m − 1um, i = 2m + 2,2m + 3,2m + 4,2m + 5

Prostor Sk ,t je klase C(1) za svaku vrijednost parametraui , i = 1, . . . ,m − 1, jer je multiplicitet svakogunutarnjeg cvora jednak 2.t ima N + 1 = 2m + 6 = n + 5 elemenata, i postojin + 1 = 2m + 2 razlicitih B-splajnova Bi,3 definiranihovim vektorom cvorova.

Page 291: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

S druge strane moramo riješiti sustav od 2m + 2linearnih jednadžbi za nepoznate koeficijente.

pj =γ(uj) =2m+1∑i=0

PiBi,3(uj) j = 0, . . . ,m

qj =γ′(uj) =2m+1∑i=0

PiB′i,3(uj) j = 0, . . . ,m

Primijetimo da je Bi,3(uj) 6= 0 i B′i,3(uj) 6= 0 zai = 2j ,2j + 1.

uj = t2j+2 = t2j+3, pa su jedini B-splajnovi (klase C(1)) zakoje je uj unutar nosaca B2j,3 i B2j+1,3.

Dakle slijedi

pj =

2j+1∑i=2j

PiBi,3(uj), qj =

2j+1∑i=2j

PiB′i,3(uj)

Page 292: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Dobivene zakljucke možemo iskoristiti za dobivanjesustava

H

P0P1P2...

Pn−2Pn−1Pn

=

p0q0p1q1...

psqs

.

Page 293: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Opcenito, elementi matrice H su oblika

h`,i =

{Bi,3(uj), ` = 2jB′i,3(uj), ` = 2j + 1 , i = 0, . . . ,2m + 1,

pri cemu je matrica H blok dijagonalna matrica, sa2× 2 blokovima na dijagonali

Hj =

[B2j,3(uj) B2j+1,3(uj)B′2j,3(uj) B′2j+1,3(uj)

].

Dakle,

H =

D0 0 0. . .

0 0 Dm

.

Page 294: Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje B-splajnovi Prikazivanje krivulja 5. dio kolegija Raˇcunalna grafika Nela Bosner

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnoviKonstruktivne podijelovimapolinomijalne krivulje

B-splajn funkcijemiješanja

Svojstva B-spajnova

Neprekidnost ukrajevima krivulje

Bernsteinove funkcijekao B-splajnovi

Uniformni B-splajnovi

Matricna metoda zaracunanje krivuljauniformnih kubicnihB-splajnova

Vektorski prostoriB-splajnova

Raspored cvorova

InterpolacijaB-splajnovima

C(2) kubicnainterpolacija ucvorovima

Po dijelovimakubicna Hermiteovainterpolacija

Slika: (a) Podaci; (b) podaci, po dijelovima Hermiteov interpolant ikompletan interpolant kubicnim splajnom.