119
Uvod Parametriˇ cne krivulje ezierjeve krivulje de Casteljaujev algoritem Zlepki Uporabne krivulje Marjeta Knez Univerza v Ljubljani Fakulteta za matematiko in fiziko Seminar za uˇ citelje matematike Ljubljana, 31. januar 2020 1

Marjeta Knez - uni-lj.si

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uporabne krivulje

Marjeta Knez

Univerza v LjubljaniFakulteta za matematiko in fiziko

Seminar za ucitelje matematike

Ljubljana, 31. januar 2020

1

Page 2: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Potek predavanj

Uvod

Parametricno podane krivulje

Bezierjeve krivulje

Zlepki

2

Page 3: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

1. Uvod

3

Page 4: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: Kje srecamo krivulje?

Zanimanje za krivulje sega v davno zgodovino, se preden so bileobravnavane matematicno. Srecamo jih v likovni umetnosti, v naravi ...

4

Page 5: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: matematicen opis krivulj

Graficno je krivulje enostavno kreirati.

Kako matematicno opisati povsem splosne krivulje?

=⇒ Racunalnisko podprto geometrijsko oblikovanje (CAGD)

V poznih 50. letih se je z razvojem tehnologije in racunalnikovpojavila potreba po cimbolj natancnem in enostavnem prenosu oblikin idej od oblikovalcev do proizvodnje.

Glavni pobudniki: avtomobilska, letalska, ladijska industrija.

5

Page 6: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: matematicen opis krivulj

Graficno je krivulje enostavno kreirati.

Kako matematicno opisati povsem splosne krivulje?

=⇒ Racunalnisko podprto geometrijsko oblikovanje (CAGD)

V poznih 50. letih se je z razvojem tehnologije in racunalnikovpojavila potreba po cimbolj natancnem in enostavnem prenosu oblikin idej od oblikovalcev do proizvodnje.

Glavni pobudniki: avtomobilska, letalska, ladijska industrija.

5

Page 7: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: matematicen opis krivulj

Graficno je krivulje enostavno kreirati.

Kako matematicno opisati povsem splosne krivulje?

=⇒ Racunalnisko podprto geometrijsko oblikovanje (CAGD)

V poznih 50. letih se je z razvojem tehnologije in racunalnikovpojavila potreba po cimbolj natancnem in enostavnem prenosu oblikin idej od oblikovalcev do proizvodnje.

Glavni pobudniki: avtomobilska, letalska, ladijska industrija.

5

Page 8: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: matematicen opis krivulj

Graficno je krivulje enostavno kreirati.

Kako matematicno opisati povsem splosne krivulje?

=⇒ Racunalnisko podprto geometrijsko oblikovanje (CAGD)

V poznih 50. letih se je z razvojem tehnologije in racunalnikovpojavila potreba po cimbolj natancnem in enostavnem prenosu oblikin idej od oblikovalcev do proizvodnje.

Glavni pobudniki: avtomobilska, letalska, ladijska industrija.

5

Page 9: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: matematicen opis krivulj

Graficno je krivulje enostavno kreirati.

Kako matematicno opisati povsem splosne krivulje?

=⇒ Racunalnisko podprto geometrijsko oblikovanje (CAGD)

V poznih 50. letih se je z razvojem tehnologije in racunalnikovpojavila potreba po cimbolj natancnem in enostavnem prenosu oblikin idej od oblikovalcev do proizvodnje.

Glavni pobudniki: avtomobilska, letalska, ladijska industrija.

5

Page 10: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: matematicen opis krivulj

Graficno je krivulje enostavno kreirati.

Kako matematicno opisati povsem splosne krivulje?

=⇒ Racunalnisko podprto geometrijsko oblikovanje (CAGD)

V poznih 50. letih se je z razvojem tehnologije in racunalnikovpojavila potreba po cimbolj natancnem in enostavnem prenosu oblikin idej od oblikovalcev do proizvodnje.

Glavni pobudniki: avtomobilska, letalska, ladijska industrija.

5

Page 11: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: CAGD, CAD, CAM

CAGD - Computer Aided Geometric Design

Racunalnisko podprto geometrijsko oblikovanje je znanstvenopodrocje, ki se ukvarja z matematicnimi/numericnimi metodami zaopis razlicnih geometrijskih oblik za uporabo v racunalniski grafiki,numericni aproksimaciji, robotiki, pri vizualizaciji podatkov, itd.

CAD - Computer Aided Design

Racunalnisko podprto nacrtovanje. Programska oprema CAD seuporablja za nacrtovanje oz. dizajniranje ter za izdelavopodatkovnih baz potrebnih za proizvodnjo.

CAM - Computer Aided Manufacturing

Racunalnisko podprta proizvodnja je uporaba racunalnikov zanadzor proizvodnega procesa, posebej za nadzor strojev, orodij inrobotov v tovarnah. CAM sistemi producirajo datoteke z ustreznimizaporedji ukazov za vodenje CNC strojev.

6

Page 12: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: CAGD, CAD, CAM

CAGD - Computer Aided Geometric Design

Racunalnisko podprto geometrijsko oblikovanje je znanstvenopodrocje, ki se ukvarja z matematicnimi/numericnimi metodami zaopis razlicnih geometrijskih oblik za uporabo v racunalniski grafiki,numericni aproksimaciji, robotiki, pri vizualizaciji podatkov, itd.

CAD - Computer Aided Design

Racunalnisko podprto nacrtovanje. Programska oprema CAD seuporablja za nacrtovanje oz. dizajniranje ter za izdelavopodatkovnih baz potrebnih za proizvodnjo.

CAM - Computer Aided Manufacturing

Racunalnisko podprta proizvodnja je uporaba racunalnikov zanadzor proizvodnega procesa, posebej za nadzor strojev, orodij inrobotov v tovarnah. CAM sistemi producirajo datoteke z ustreznimizaporedji ukazov za vodenje CNC strojev.

6

Page 13: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: CAGD, CAD, CAM

CAGD - Computer Aided Geometric Design

Racunalnisko podprto geometrijsko oblikovanje je znanstvenopodrocje, ki se ukvarja z matematicnimi/numericnimi metodami zaopis razlicnih geometrijskih oblik za uporabo v racunalniski grafiki,numericni aproksimaciji, robotiki, pri vizualizaciji podatkov, itd.

CAD - Computer Aided Design

Racunalnisko podprto nacrtovanje. Programska oprema CAD seuporablja za nacrtovanje oz. dizajniranje ter za izdelavopodatkovnih baz potrebnih za proizvodnjo.

CAM - Computer Aided Manufacturing

Racunalnisko podprta proizvodnja je uporaba racunalnikov zanadzor proizvodnega procesa, posebej za nadzor strojev, orodij inrobotov v tovarnah. CAM sistemi producirajo datoteke z ustreznimizaporedji ukazov za vodenje CNC strojev.

6

Page 14: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

7

Page 15: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: zgodovina CAGD

Osnovni objekti v CAGD so parametricno podane krivulje in ploskve.

Paul de Casteljau (1930) in Pierre Bezier (1910-1999)

8

Page 16: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: zgodovina CAGD

Osnovni objekti v CAGD so parametricno podane krivulje in ploskve.

Paul de Casteljau (1930) in Pierre Bezier (1910-1999)

8

Page 17: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Uvod: zgodovina CAGD

Osnovni objekti v CAGD so parametricno podane krivulje in ploskve.

Paul de Casteljau (1930) in Pierre Bezier (1910-1999)

8

Page 18: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

2. Parametricno podanekrivulje

9

Page 19: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kaj je krivulja?

Krivulja je mnozica tock, ki jo lahko podamo na tri nacine:

implicitno

eksplicitno

parametricno

kroznica:

S(p,q)

-1 1 3

1

2

3

4

kroznica ={

(x , y); (x − p)2 + (y − q)2 = r2}

10

Page 20: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kaj je krivulja?

Krivulja je mnozica tock, ki jo lahko podamo na tri nacine:

implicitno

eksplicitno

parametricno

kroznica:

S(p,q)

-1 1 3

1

2

3

4

kroznica ={

(x , y); (x − p)2 + (y − q)2 = r2}

10

Page 21: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kaj je krivulja?

Krivulja je mnozica tock, ki jo lahko podamo na tri nacine:

implicitno

eksplicitno

parametricno

kroznica:

S(p,q)

-1 1 3

1

2

3

4

kroznica ={

(x , y); (x − p)2 + (y − q)2 = r2}

10

Page 22: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Implicitno podane ravninske krivulje

elipsa:

S(p,q) G1G2

-2 -1 1 4

1

2

4

{(x , y);

(x − p)2

a2+

(y − q)2

b2= 1

}

hiperbola:

S(p,q) G1G2

-2 1 4

12

4

{(x , y);

(x − p)2

a2− (y − q)2

b2= 1

}

11

Page 23: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Implicitno podane ravninske krivulje

elipsa:

S(p,q) G1G2

-2 -1 1 4

1

2

4

{(x , y);

(x − p)2

a2+

(y − q)2

b2= 1

}

hiperbola:

S(p,q) G1G2

-2 1 4

12

4

{(x , y);

(x − p)2

a2− (y − q)2

b2= 1

}

11

Page 24: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Se nekaj primerov...

-1 1

-1

1

x2/3 + y2/3 = 1

-1 1

-1

1

(x2 + y2 − 1)3 = x2y3

1 2

-1

1

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

1 2

-1

1

(x2+y2+12x+9)2 = 4(2x+3)3

12

(x2+y2)(x2+y2+x) = 4xy2

1 2

1

3y2 = x(x − 1)2

12

Page 25: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Eksplicitno podane krivulje: graf funkcije

Naj bo f : [a, b]→ R dana funkcija. Graf funkcije je krivulja

graf ={

(x , y); y = f (x), x ∈ [a, b]}

Primer:

f (x) =1

2x2 − 3

2x + 1

-1 1 2 3 4

-1

1

2

3

graf ={

(x , f (x)); x ∈ [−1, 4]}

13

Page 26: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Eksplicitno podane krivulje: graf funkcije

Naj bo f : [a, b]→ R dana funkcija. Graf funkcije je krivulja

graf ={

(x , y); y = f (x), x ∈ [a, b]}

Primer:

f (x) =1

2x2 − 3

2x + 1

-1 1 2 3 4

-1

1

2

3

graf ={

(x , f (x)); x ∈ [−1, 4]}

13

Page 27: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Eksplicitno podane krivulje: graf funkcije

Naj bo f : [a, b]→ R dana funkcija. Graf funkcije je krivulja

graf ={

(x , y); y = f (x), x ∈ [a, b]}

Primer:

f (x) =1

2x2 − 3

2x + 1

-1 1 2 3 4

-1

1

2

3

graf ={

(x , f (x)); x ∈ [−1, 4]}

13

Page 28: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Eksplicitno podane krivulje: graf funkcije

Naj bo f : [a, b]→ R dana funkcija. Graf funkcije je krivulja

graf ={

(x , y); y = f (x), x ∈ [a, b]}

Primer:

f (x) =1

2x2 − 3

2x + 1

-1 1 2 3 4

-1

1

2

3

graf ={

(t, f (t)); t ∈ [−1, 4]}

14

Page 29: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Parametricno podane krivulje

Izberemo dve funkciji f : [a, b]→ R in g : [a, b]→ R.

Parametricno podana krivulja:{(x , y); x = f (t), y = g(t), t ∈ [a, b]

}.

p = (f , g) imenujemo parametrizacija krivulje,

krivulja = {p(t); t ∈ [a, b]}

15

Page 30: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Parametricno podane krivulje

Izberemo dve funkciji f : [a, b]→ R in g : [a, b]→ R.

Parametricno podana krivulja:{(x , y); x = f (t), y = g(t), t ∈ [a, b]

}.

p = (f , g) imenujemo parametrizacija krivulje,

krivulja = {p(t); t ∈ [a, b]}

15

Page 31: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos(t), g(t) = sin(t) na [0, 2π]:

1 π 2π

-1

1

1 π 2π

-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (cos(t), sin(t)), je?

t

-1 1

-1

1

16

Page 32: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos(t), g(t) = sin(t) na [0, 2π]:

1 π 2π

-1

1

1 π 2π

-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (cos(t), sin(t)), je?

t

-1 1

-1

1

16

Page 33: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos(t), g(t) = sin(t) na [0, 2π]:

1 π 2π

-1

1

1 π 2π

-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (cos(t), sin(t)), je?

t

-1 1

-1

1

16

Page 34: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos (4t) cos(t), g(t) = cos (4t) sin(t) na [0, 2π]:

1 π 2π

-1

1

1 π 2π

-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (f (t), g(t)) :

-1 1

-1

1

17

Page 35: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos (4t) cos(t), g(t) = cos (4t) sin(t) na [0, 2π]:

1 π 2π

-1

1

1 π 2π

-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (f (t), g(t)) :

-1 1

-1

1

17

Page 36: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos (4t) cos(t), g(t) = cos (4t) sin(t) na [0, 2π]:

1 π 2π

-1

1

1 π 2π

-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (f (t), g(t)) :

-1 1

-1

1

17

Page 37: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos(32 t)

cos(t), g(t) = cos(32 t)

sin(t) na[0, 4π]:

1 2π 4π-1

1

1 2π 4π-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (f (t), g(t)) :

-1 1

-1

1

18

Page 38: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos(32 t)

cos(t), g(t) = cos(32 t)

sin(t) na[0, 4π]:

1 2π 4π-1

1

1 2π 4π-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (f (t), g(t)) :

-1 1

-1

1

18

Page 39: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer

Izberemo funkciji f (t) = cos(32 t)

cos(t), g(t) = cos(32 t)

sin(t) na[0, 4π]:

1 2π 4π-1

1

1 2π 4π-1

1

Krivulja, ki jo doloca parametrizacija p(t) = (f (t), g(t)) :

-1 1

-1

1

18

Page 40: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Polinomske parametricne krivulje

Primer: f (t) = 1 + 12t2− 10t3, g(t) = 1 + 3t− 3t2− t3, t ∈ [0, 1]

p(t) = (f (t), g(t)) = (1, 1)︸ ︷︷ ︸c0

+ (0, 3)︸ ︷︷ ︸c1

t + (12,−3)︸ ︷︷ ︸c2

t2 + (−10,−1)︸ ︷︷ ︸c3

t3

c0

c1

c2

c3

-10 -5 1 5 10

-3

-1

1

3

19

Page 41: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Polinomske parametricne krivulje

Primer: f (t) = 1 + 12t2− 10t3, g(t) = 1 + 3t− 3t2− t3, t ∈ [0, 1]

p(t) = (f (t), g(t)) = (1, 1)︸ ︷︷ ︸c0

+ (0, 3)︸ ︷︷ ︸c1

t + (12,−3)︸ ︷︷ ︸c2

t2 + (−10,−1)︸ ︷︷ ︸c3

t3

c0

c1

c2

c3

-10 -5 1 5 10

-3

-1

1

3

19

Page 42: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Polinomske parametricne krivulje

Primer: f (t) = 1 + 12t2− 10t3, g(t) = 1 + 3t− 3t2− t3, t ∈ [0, 1]

p(t) = (f (t), g(t)) = (1, 1)︸ ︷︷ ︸c0

+ (0, 3)︸ ︷︷ ︸c1

t + (12,−3)︸ ︷︷ ︸c2

t2 + (−10,−1)︸ ︷︷ ︸c3

t3

c0

c1

c2

c3

-10 -5 1 5 10

-3

-1

1

3

19

Page 43: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Polinomske parametricne krivulje

Primer: f (t) = 1 + 12t2− 10t3, g(t) = 1 + 3t− 3t2− t3, t ∈ [0, 1]

p(t) = (f (t), g(t)) = (1, 1)︸ ︷︷ ︸c0

+ (0, 3)︸ ︷︷ ︸c1

t + (12,−3)︸ ︷︷ ︸c2

t2 + (−10,−1)︸ ︷︷ ︸c3

t3

c0

c1

c2

c3

-10 -5 1 5 10

-3

-1

1

3

20

Page 44: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

3. Bezierjeve krivulje

21

Page 45: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bezierjeve krivulje

Bezierjeve krivulje = polinomske parametricne krivulje

Pn = prostor polinomov stopnje ≤ n

Namesto standardne baze{

1, t, t2, . . . , tn}

bomo uporabili druge‘bazne’ polinome.

Primer n = 1:

p(t) = c01 + c1t,

t ∈ [0, 1]

c0=(-1,1)

c1=(2,3)

1

1

3

22

Page 46: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bezierjeve krivulje

Bezierjeve krivulje = polinomske parametricne krivulje

Pn = prostor polinomov stopnje ≤ n

Namesto standardne baze{

1, t, t2, . . . , tn}

bomo uporabili druge‘bazne’ polinome.

Primer n = 1:

p(t) = c01 + c1t,

t ∈ [0, 1]

c0=(-1,1)

c1=(2,3)

1

1

3

22

Page 47: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bezierjeve krivulje

Bezierjeve krivulje = polinomske parametricne krivulje

Pn = prostor polinomov stopnje ≤ n

Namesto standardne baze{

1, t, t2, . . . , tn}

bomo uporabili druge‘bazne’ polinome.

Primer n = 1:

p(t) = c01 + c1t,

t ∈ [0, 1]

c0=(-1,1)

c1=(2,3)

1

1

3

22

Page 48: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bezierjeve krivulje

Bezierjeve krivulje = polinomske parametricne krivulje

Pn = prostor polinomov stopnje ≤ n

Namesto standardne baze{

1, t, t2, . . . , tn}

bomo uporabili druge‘bazne’ polinome.

Primer n = 1:

p(t) = b0(1− t) + b1t,

t ∈ [0, 1]

c0=b0=(-1,1)

c1=(2,3)

b1=(1,4)

1

1

3

23

Page 49: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Linearna Bernsteinova bazna polinoma

Naj bop(t) = b0(1− t) + b1t, t = [0, 1].

Pri izbranem parametru t tocka p(t) razdeli daljico med b0 in b1 vrazmerju t : 1− t.

Definiramo

B10 (t) = 1− t,

B11 (t) = t.

Imenujemo ju Bernsteinovabazna polinoma stopnje 1.

B01

B11

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

Velja:P1 = Lin

{B10 ,B

11

}.

24

Page 50: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Linearna Bernsteinova bazna polinoma

Naj bop(t) = b0(1− t) + b1t, t = [0, 1].

Pri izbranem parametru t tocka p(t) razdeli daljico med b0 in b1 vrazmerju t : 1− t.

Definiramo

B10 (t) = 1− t,

B11 (t) = t.

Imenujemo ju Bernsteinovabazna polinoma stopnje 1.

B01

B11

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

Velja:P1 = Lin

{B10 ,B

11

}.

24

Page 51: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Linearna Bernsteinova bazna polinoma

Naj bop(t) = b0(1− t) + b1t, t = [0, 1].

Pri izbranem parametru t tocka p(t) razdeli daljico med b0 in b1 vrazmerju t : 1− t.

Definiramo

B10 (t) = 1− t,

B11 (t) = t.

Imenujemo ju Bernsteinovabazna polinoma stopnje 1.

B01

B11

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

Velja:P1 = Lin

{B10 ,B

11

}.

24

Page 52: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kvadraticni Bernsteinovi bazni polinomi

Definiramo:

B20 (t) = (1− t)2,

B21 (t) = 2t(1− t),

B22 (t) = t2.

B02

B12

B22

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

1 = B20 (t) + B2

1 (t) + B22 (t)

t =1

2B21 (t) + B2

2 (t)

t2 = B22 (t)

=⇒ P2 = Lin{B20 ,B

21 ,B

22

}

25

Page 53: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kvadraticni Bernsteinovi bazni polinomi

Definiramo:

B20 (t) = (1− t)2,

B21 (t) = 2t(1− t),

B22 (t) = t2.

B02

B12

B22

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

1 = B20 (t) + B2

1 (t) + B22 (t)

t =1

2B21 (t) + B2

2 (t)

t2 = B22 (t)

=⇒ P2 = Lin{B20 ,B

21 ,B

22

}

25

Page 54: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kubicni Bernsteinovi bazni polinomi

Definiramo:

B30 (t) = (1− t)3,

B31 (t) = 3t(1− t)2,

B32 (t) = 3t2(1− t),

B33 (t) = t3.

B03

B13

B23

B33

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

1 = B30 (t) + B3

1 (t) + B32 (t) + B3

3 (t)

t =1

3B31 (t) +

2

3B32 (t) + B3

3 (t)

t2 =1

3B32 (t) + B3

3 (t)

t3 = B33 (t)

=⇒ P3 = Lin{B30 ,B

31 ,B

32 ,B

33

}

26

Page 55: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kubicni Bernsteinovi bazni polinomi

Definiramo:

B30 (t) = (1− t)3,

B31 (t) = 3t(1− t)2,

B32 (t) = 3t2(1− t),

B33 (t) = t3.

B03

B13

B23

B33

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

1 = B30 (t) + B3

1 (t) + B32 (t) + B3

3 (t)

t =1

3B31 (t) +

2

3B32 (t) + B3

3 (t)

t2 =1

3B32 (t) + B3

3 (t)

t3 = B33 (t)

=⇒ P3 = Lin{B30 ,B

31 ,B

32 ,B

33

}

26

Page 56: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bernsteinovi bazni polinomi stopnje 4

Definiramo:

B40 (t) = (1− t)4,

B41 (t) = 4t(1− t)3,

B42 (t) = 6t2(1− t)2,

B43 (t) = 4t3(1− t),

B44 (t) = t4.

B04

B14

B24

B34

B44

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

1 = B40 (t) + B4

1 (t) + B42 (t) + B4

3 (t) + B44 (t)

t =1

4B41 (t) +

1

2B42 (t) +

3

4B43 (t) + B4

4 (t)

t2 =1

6B42 (t) +

1

2B43 (t) + B4

4 (t)

t3 =1

4B43 (t) + B4

4 (t)

t4 = B44 (t)

=⇒ P4 = Lin{B40 , . . . ,B

44

}

27

Page 57: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bernsteinovi bazni polinomi stopnje 4

Definiramo:

B40 (t) = (1− t)4,

B41 (t) = 4t(1− t)3,

B42 (t) = 6t2(1− t)2,

B43 (t) = 4t3(1− t),

B44 (t) = t4.

B04

B14

B24

B34

B44

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

1 = B40 (t) + B4

1 (t) + B42 (t) + B4

3 (t) + B44 (t)

t =1

4B41 (t) +

1

2B42 (t) +

3

4B43 (t) + B4

4 (t)

t2 =1

6B42 (t) +

1

2B43 (t) + B4

4 (t)

t3 =1

4B43 (t) + B4

4 (t)

t4 = B44 (t)

=⇒ P4 = Lin{B40 , . . . ,B

44

}

27

Page 58: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bernsteinovi bazni polinomi stopnje n

Definiramo:

Bni (t) =

(n

i

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

Lastnosti:

Bni (t) ≥ 0 za t ∈ [0, 1]

n∑i=0

Bni (t) = 1

Pn = Lin {Bn0 ,B

n1 , . . . ,B

nn}.

28

Page 59: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bernsteinovi bazni polinomi stopnje n

Definiramo:

Bni (t) =

(n

i

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

Lastnosti:

Bni (t) ≥ 0 za t ∈ [0, 1]

n∑i=0

Bni (t) = 1

Pn = Lin {Bn0 ,B

n1 , . . . ,B

nn}.

28

Page 60: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bernsteinovi bazni polinomi stopnje n

Definiramo:

Bni (t) =

(n

i

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

Lastnosti:

Bni (t) ≥ 0 za t ∈ [0, 1]

n∑i=0

Bni (t) = 1

Pn = Lin {Bn0 ,B

n1 , . . . ,B

nn}.

28

Page 61: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bernsteinovi bazni polinomi stopnje n

Definiramo:

Bni (t) =

(n

i

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

Lastnosti:

Bni (t) ≥ 0 za t ∈ [0, 1]

n∑i=0

Bni (t) = 1

Pn = Lin {Bn0 ,B

n1 , . . . ,B

nn}.

28

Page 62: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Bezierjeva krivulja

Definicija

Naj bodo b0,b1, . . . ,bn dane tocke v Rd . Parametricno podana krivulja{p(t); t ∈ [0, 1]} ⊂ Rd ,

p(t) = b0Bn0 (t) + b1B

n1 (t) + b2B

n2 (t) + · · ·+ bnB

nn (t),

se imenuje Bezierjeva krivulja.

Tocke b0,b1, . . . ,bn imenujemo kontrolne tocke.

Ce jih povezemo z daljicami, dobimo kontrolni poligon.

29

Page 63: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer od prej:

p(t) = (1, 1)︸ ︷︷ ︸c0

1 + (0, 3)︸ ︷︷ ︸c1

t + (12,−3)︸ ︷︷ ︸c2

t2 + (−10,−1)︸ ︷︷ ︸c3

t3, t ∈ [0, 1]

Zapisemo v bazi Bernsteinovih baznih polinomov:

p(t) = (1, 1)︸ ︷︷ ︸b0

B30 (t) + (1, 2)︸ ︷︷ ︸

b1

B31 (t) + (5, 2)︸ ︷︷ ︸

b2

B32 (t) + (3, 0)︸ ︷︷ ︸

b3

B33 (t)

b0

b1 b2

b3

1 2 3 4 5

1

2

30

Page 64: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer od prej:

p(t) = (1, 1)︸ ︷︷ ︸c0

1 + (0, 3)︸ ︷︷ ︸c1

t + (12,−3)︸ ︷︷ ︸c2

t2 + (−10,−1)︸ ︷︷ ︸c3

t3, t ∈ [0, 1]

Zapisemo v bazi Bernsteinovih baznih polinomov:

p(t) = (1, 1)︸ ︷︷ ︸b0

B30 (t) + (1, 2)︸ ︷︷ ︸

b1

B31 (t) + (5, 2)︸ ︷︷ ︸

b2

B32 (t) + (3, 0)︸ ︷︷ ︸

b3

B33 (t)

b0

b1 b2

b3

1 2 3 4 5

1

2

30

Page 65: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Primer od prej:

p(t) = (1, 1)︸ ︷︷ ︸c0

1 + (0, 3)︸ ︷︷ ︸c1

t + (12,−3)︸ ︷︷ ︸c2

t2 + (−10,−1)︸ ︷︷ ︸c3

t3, t ∈ [0, 1]

Zapisemo v bazi Bernsteinovih baznih polinomov:

p(t) = (1, 1)︸ ︷︷ ︸b0

B30 (t) + (1, 2)︸ ︷︷ ︸

b1

B31 (t) + (5, 2)︸ ︷︷ ︸

b2

B32 (t) + (3, 0)︸ ︷︷ ︸

b3

B33 (t)

b0

b1 b2

b3

1 2 3 4 5

1

2

30

Page 66: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kontrolne tocke dolocajo obliko krivulje:

b0

b1 b2

b3

b0

b1

b2

b3

b0

b1

b2b3

b0

b1

b2

b3

31

Page 67: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kontrolne tocke dolocajo obliko krivulje:

b0

b1 b2

b3

b0

b1

b2

b3

b0

b1

b2b3

b0

b1

b2

b3

31

Page 68: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kontrolne tocke dolocajo obliko krivulje:

b0

b1 b2

b3

b0

b1

b2

b3

b0

b1

b2b3

b0

b1

b2

b3

31

Page 69: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Kontrolne tocke dolocajo obliko krivulje:

b0

b1 b2

b3

b0

b1

b2

b3

b0

b1

b2b3

b0

b1

b2

b3

31

Page 70: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Izris krivulje

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Kako izracunati tocko na Bezierjevi krivulji za izbran parameter t ∈ [0, 1]?

32

Page 71: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Izris krivulje

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Kako izracunati tocko na Bezierjevi krivulji za izbran parameter t ∈ [0, 1]?

32

Page 72: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Izris krivulje

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Kako izracunati tocko na Bezierjevi krivulji za izbran parameter t ∈ [0, 1]?

32

Page 73: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Izris krivulje

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Kako izracunati tocko na Bezierjevi krivulji za izbran parameter t ∈ [0, 1]?

32

Page 74: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Izris krivulje

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Kako izracunati tocko na Bezierjevi krivulji za izbran parameter t ∈ [0, 1]?

32

Page 75: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

4. de Casteljaujev algoritem

33

Page 76: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem

Naj bo

p(t) =n∑

i=0

biBni (t), t ∈ [0, 1].

n = 1: p(t) = b0(1− t) + b1t.

Tocka p(t) deli daljico med b0 in b1 v razmerju t : 1− t

n = 2: p(t) = b0(1− t)2 + b12t(1− t) + b2t2

b0

b1

b2

b0

b1

b2

-4 1

1

34

Page 77: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem

Naj bo

p(t) =n∑

i=0

biBni (t), t ∈ [0, 1].

n = 1: p(t) = b0(1− t) + b1t.

Tocka p(t) deli daljico med b0 in b1 v razmerju t : 1− t

n = 2: p(t) = b0(1− t)2 + b12t(1− t) + b2t2

b0

b1

b2

b0

b1

b2

-4 1

1

34

Page 78: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem

Naj bo

p(t) =n∑

i=0

biBni (t), t ∈ [0, 1].

n = 1: p(t) = b0(1− t) + b1t.

Tocka p(t) deli daljico med b0 in b1 v razmerju t : 1− t

n = 2: p(t) = b0(1− t)2 + b12t(1− t) + b2t2

b0

b1

b2

b0

b1

b2

-4 1

1

34

Page 79: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem

Naj bo

p(t) =n∑

i=0

biBni (t), t ∈ [0, 1].

n = 1: p(t) = b0(1− t) + b1t.

Tocka p(t) deli daljico med b0 in b1 v razmerju t : 1− t

n = 2: p(t) = b0(1− t)2 + b12t(1− t) + b2t2

b0

b1

b2

b0

b1

b2

-4 1

1

34

Page 80: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 13 :

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Daljice delimo v razmerju 13 : 2

3

35

Page 81: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 13 :

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Daljice delimo v razmerju 13 : 2

3

35

Page 82: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 13 :

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Daljice delimo v razmerju 13 : 2

3

35

Page 83: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 13 :

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Daljice delimo v razmerju 13 : 2

3

35

Page 84: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 12 :

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Daljice delimo v razmerju 12 : 1

2

36

Page 85: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 12 :

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Daljice delimo v razmerju 12 : 1

2

36

Page 86: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 12 :

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Daljice delimo v razmerju 12 : 1

2

36

Page 87: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 12 :

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

b0

b1 b2

b3

1 3 5

1

2

Daljice delimo v razmerju 12 : 1

2

36

Page 88: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 14 :

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

Daljice delimo v razmerju 14 : 3

4

37

Page 89: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 14 :

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

Daljice delimo v razmerju 14 : 3

4

37

Page 90: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 14 :

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

Daljice delimo v razmerju 14 : 3

4

37

Page 91: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 14 :

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

Daljice delimo v razmerju 14 : 3

4

37

Page 92: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 14 :

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

Daljice delimo v razmerju 14 : 3

4

37

Page 93: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 14 :

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

Daljice delimo v razmerju 14 : 3

4

37

Page 94: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

de Casteljaujev algoritem - geometrijsko

Izracun tocke na krivulji pri parametru t = 14 :

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

b0

b1

b2

b3

b4

b5

-4 1 4

1

6

Daljice delimo v razmerju 14 : 3

437

Page 95: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Algoritem: de Casteljau

Vhodni podatki: kontrolne tocke b0,b1, . . . ,bn

parameter t

for i = 0, 1, . . . , n

b0i = bi

end for

for r = 1, . . . , n

for i = 0, . . . , n − r

bri = (1− t)br−1

i + tbr−1i+1

end for

end for

Izhod: bn0

38

Page 96: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Odvod Bezierjeve krivulje

Odvod Bezierjeve krivulje:

p′(t) = nn−1∑i=0

(bi+1 − bi )Bn−1i (t).

Odvod Bezierjeve krivulje v krajiscih:

p′(0) = n(b1 − b0), p′(1) = n(bn − bn−1).

Odvod Bezierjeve krivulje pri parametru t lahko izracunamo iz deCasteljaujeve sheme:

p′(t) = n(bn−11 (t)− bn−1

0 (t)).

39

Page 97: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Odvod Bezierjeve krivulje

Odvod Bezierjeve krivulje:

p′(t) = nn−1∑i=0

(bi+1 − bi )Bn−1i (t).

Odvod Bezierjeve krivulje v krajiscih:

p′(0) = n(b1 − b0), p′(1) = n(bn − bn−1).

Odvod Bezierjeve krivulje pri parametru t lahko izracunamo iz deCasteljaujeve sheme:

p′(t) = n(bn−11 (t)− bn−1

0 (t)).

39

Page 98: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Odvod Bezierjeve krivulje

Odvod Bezierjeve krivulje:

p′(t) = nn−1∑i=0

(bi+1 − bi )Bn−1i (t).

Odvod Bezierjeve krivulje v krajiscih:

p′(0) = n(b1 − b0), p′(1) = n(bn − bn−1).

Odvod Bezierjeve krivulje pri parametru t lahko izracunamo iz deCasteljaujeve sheme:

p′(t) = n(bn−11 (t)− bn−1

0 (t)).

39

Page 99: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Reparametrizirana Bezierjeva krivulja

Reparametrizirana Bezierjeva krivulja:

q(u) =n∑

i=0

biBni

(u − a

b − a

), u ∈ [a, b].

Odvod reparametrizirane Bezierjeve krivulje v krajiscih:

q′(a) =n

b − a(b1 − b0), q′(b) =

n

b − a(bn − bn−1).

40

Page 100: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Reparametrizirana Bezierjeva krivulja

Reparametrizirana Bezierjeva krivulja:

q(u) =n∑

i=0

biBni

(u − a

b − a

), u ∈ [a, b].

Odvod reparametrizirane Bezierjeve krivulje v krajiscih:

q′(a) =n

b − a(b1 − b0), q′(b) =

n

b − a(bn − bn−1).

40

Page 101: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

5. Sestavljene Bezierjevekrivulje - zlepki

41

Page 102: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Sestavljene Bezierjeve krivulje

0 20 40 60 800

20

40

60

80

0 20 40 60 800

20

40

60

80

0 20 40 60 800

20

40

60

80

42

Page 103: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Sestavljene Bezierjeve krivulje

0 20 40 60 800

20

40

60

80

0 20 40 60 800

20

40

60

80

0 20 40 60 800

20

40

60

80

42

Page 104: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Sestavljene Bezierjeve krivulje

0 20 40 60 800

20

40

60

80

0 20 40 60 800

20

40

60

80

0 20 40 60 800

20

40

60

80

42

Page 105: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Sestavljene Bezierjeve krivulje

Interval parametrov [a, b] razdelimo na m delov:

a = u0 < u1 < u2 < · · · < um−1 < tm = b.

Zlepek iz Bezierjevih krivulj stopnje n je podan s parametrizacijos : [a, b]→ Rd ,

s(u) =

p1(u) =n∑

i=0

c(1)i Bn

i

(u − u0u1 − u0

), u ∈ [a, u1)

p2(u) =n∑

i=0

c(2)i Bn

i

(u − u1u2 − u1

), u ∈ [u1, u2)

...

pm(u) =n∑

i=0

c(m)i Bn

i

(u − um−1um − um−1

), u ∈ [um−1, um]

43

Page 106: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Sestavljene Bezierjeve krivulje

Interval parametrov [a, b] razdelimo na m delov:

a = u0 < u1 < u2 < · · · < um−1 < tm = b.

Zlepek iz Bezierjevih krivulj stopnje n je podan s parametrizacijos : [a, b]→ Rd ,

s(u) =

p1(u) =n∑

i=0

c(1)i Bn

i

(u − u0u1 − u0

), u ∈ [a, u1)

p2(u) =n∑

i=0

c(2)i Bn

i

(u − u1u2 − u1

), u ∈ [u1, u2)

...

pm(u) =n∑

i=0

c(m)i Bn

i

(u − um−1um − um−1

), u ∈ [um−1, um]

43

Page 107: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

C 1 kvadraticni zlepek

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

44

Page 108: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

C 1 kvadraticni zlepek

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

44

Page 109: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

C 1 kvadraticni zlepek

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

44

Page 110: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

C 1 kvadraticni zlepek

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

44

Page 111: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

C 2 kubicni zlepek

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

45

Page 112: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

C 2 kubicni zlepek

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

45

Page 113: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

C 2 kubicni zlepek

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

45

Page 114: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

C 2 kubicni zlepek

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

-1 1

-1

1

45

Page 115: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

1

1

1

1

1

1

1

1

46

Page 116: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

1

1

1

1

1

1

1

1

46

Page 117: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

1

1

1

1

1

1

1

1

46

Page 118: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

1

1

1

1

1

1

1

1

46

Page 119: Marjeta Knez - uni-lj.si

Uvod Parametricne krivulje Bezierjeve krivulje de Casteljaujev algoritem Zlepki

Hvala za pozornost!

47