Nela Bosner Konike Prikazivanje krivuljanela/rgpredavanja/prikazivanje_krivulja.pdf · krivulje...

Preview:

Citation preview

Prikazivanjekrivulja

Nela Bosner

Konike

Bézierovekrivulje

B-splajnovi

Prikazivanje krivulja5. dio kolegija Racunalna 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.

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.

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.

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.

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.

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.

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.

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

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

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.

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.

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

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

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.

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.

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.

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}

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.

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

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

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

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.

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.

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?

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

)

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.

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′.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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).

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.

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

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 .

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

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)

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.

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

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.

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)

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

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)

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.

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

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.

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.

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.

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

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

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.

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)

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:

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).

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]

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.

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).

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.

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).

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.

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.

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).

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.

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.

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.

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.

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.

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.

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!

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.

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

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))

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.

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.

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.

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).

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.

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.

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)!

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).

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).

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.

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.

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).

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).

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.

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.

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.

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.

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.

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.

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).

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.

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

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.

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

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 .

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.

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.

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].

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.

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.

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).

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

).

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.

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).

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).

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

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.

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))

.

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].

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)

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.

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

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).

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

.

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.

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.

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, ε);

}}

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

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].

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.

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.

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 .

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.

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].

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.

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.

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)

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.

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.

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.

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.

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

.

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).

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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).

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τ.

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.

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.

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.

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.

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)‖

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).

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).

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.

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].

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.

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).

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.

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).

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}.

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).

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.

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.

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.

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.

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.

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)

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.

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.

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.

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

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

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

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.

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)

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.

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.

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

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).

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.

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

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

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.

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).

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.

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

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.

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)

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.

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.

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.

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

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.

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 .

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.

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.

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).

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

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

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

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.

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 .

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.

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.

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

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).

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

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).

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〉

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.

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〉.

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.

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 .

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.

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 .

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 .

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)

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).

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.

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.

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.

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.

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

).

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 = Θ.

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.

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 ].

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〉.

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 .

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.

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.

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.

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.

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.

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).

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.

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.

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.

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

.

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

.

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 .

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!

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

.

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.

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.

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.

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.

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.

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}.

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}.

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.

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.

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

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

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.

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.

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}.

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}.

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}.

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}.

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}.

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}.

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 γ.

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.

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.

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).

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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).

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).

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

.

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.

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.

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)

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

.

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

.

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.

Recommended