Documente Academic
Documente Profesional
Documente Cultură
Mihai-Sorin Stupariu
Curbe Bézier 1 / 56
Curbe parametrizate
Mecanism
Input: O mulţime de puncte (poligon de control)
Output: Curba reprezentată
Resurse online pentru curbele Bézier:
https://javascript.info/bezier-curve;
https://www.jasondavies.com/animated-bezier/
Curbe Bézier 2 / 56
Curbe parametrizate
Mecanism
Input: O mulţime de puncte (poligon de control)
Output: Curba reprezentată
Curbe Bézier 3 / 56
Curbe parametrizate
Curbe Bézier 4 / 56
Curbe parametrizate
Curbe Bézier 5 / 56
Curbe parametrizate
Curbe Bézier 6 / 56
Curbe parametrizate
Curbe Bézier 7 / 56
Curbe parametrizate
Curbe Bézier 8 / 56
Curbe parametrizate
Exemple
(i) Curbele
c1 : R → R2 , c1 (t) = (2 + 4t + 1, −2 − 4t);
Exemple
(ii) Curba c6 : [−1, 1] → R2 , c6 (t) = (t, t|t|) este de clasă C 1 , dar nu este
de clasă C 2 , iar curba c60 : [−1, 1] → R2 , c60 (t) = (t, |t|) este de clasă C 0 ,
dar nu este de clasă C 1 .
Curbe Bézier 10 / 56
Curbe parametrizate
Curbe Bézier 11 / 56
Curbe parametrizate
Exemple
Curbe Bézier 12 / 56
Schema de Castejau
Curbe Bézier 13 / 56
Schema de Castejau
O proprietate geometrică
Curbe Bézier 14 / 56
Schema de Castejau
O proprietate geometrică
Curbe Bézier 15 / 56
Schema de Castejau
O proprietate geometrică
Curbe Bézier 16 / 56
Schema de Castejau
Curbe Bézier 17 / 56
Schema de Castejau
Schema de Casteljau (n = 2)
Curbe Bézier 18 / 56
Schema de Castejau
Curbe Bézier 19 / 56
Schema de Castejau
Curbe Bézier 20 / 56
Schema de Castejau
Curbe Bézier 21 / 56
Reprezentarea algebrică: forma Bernstein
Variantă algebrică
Curbe Bézier 22 / 56
Reprezentarea algebrică: forma Bernstein
Exemplu
Curbe Bézier 23 / 56
Reprezentarea algebrică: forma Bernstein
Comentarii
Curbe Bézier 24 / 56
Reprezentarea algebrică: forma Bernstein
Comentarii
Curbe Bézier 24 / 56
Reprezentarea algebrică: forma Bernstein
Curbe Bézier 25 / 56
Reprezentarea algebrică: forma Bernstein
Proprietăţi elementare
Fie (b0 , . . . , bn ) un poligon de control din Rm şi b : [0, 1] → Rm curba Bézier asociată.
Curbe Bézier 26 / 56
Reprezentarea algebrică: forma Bernstein
Proprietăţi elementare
Fie (b0 , . . . , bn ) un poligon de control din Rm şi b : [0, 1] → Rm curba Bézier asociată.
(i) b este o curbă polinomială, având gradul mai mic sau egal cu n;
(ii) curba b interpolează extremităţile poligonului de control, i.e. b(0) = b0 , b(1) = bn ;
ı̂n particular, dacă poligonul de control este ı̂nchis, curba Bézier asociată este
ı̂nchisă;
(iii) proprietatea acoperirii convexe: punctele curbei Bézier b se află ı̂n acoperirea
convexă a punctelor de control;
(iv) invarianţa la schimbări afine de parametru: dacă ϕ : [0, 1] → [α, β],
ϕ(t) = α + t(β − α) este o schimbare afină de parametru şi dacă b[α,β] este curba
Bézier asociată poligonului de control (b0 , . . . , bn ), dar definită pe intervalul [α, β],
atunci b = b[α,β] ◦ ϕ;
Curbe Bézier 26 / 56
Reprezentarea algebrică: forma Bernstein
Proprietăţi elementare
Fie (b0 , . . . , bn ) un poligon de control din Rm şi b : [0, 1] → Rm curba Bézier asociată.
(i) b este o curbă polinomială, având gradul mai mic sau egal cu n;
(ii) curba b interpolează extremităţile poligonului de control, i.e. b(0) = b0 , b(1) = bn ;
ı̂n particular, dacă poligonul de control este ı̂nchis, curba Bézier asociată este
ı̂nchisă;
(iii) proprietatea acoperirii convexe: punctele curbei Bézier b se află ı̂n acoperirea
convexă a punctelor de control;
(iv) invarianţa la schimbări afine de parametru: dacă ϕ : [0, 1] → [α, β],
ϕ(t) = α + t(β − α) este o schimbare afină de parametru şi dacă b[α,β] este curba
Bézier asociată poligonului de control (b0 , . . . , bn ), dar definită pe intervalul [α, β],
atunci b = b[α,β] ◦ ϕ;
(v) invarianţă afină: dacă τ : Rm → Rm este o aplicaţie afină, atunci curba Bézier
asociată poligonului de control date de (τ (b0 ), . . . , τ (bn )) este curba τ (bn );
(vi) (Invarianţa la combinaţii baricentrice): fie (b0 , . . . , bn ), respectiv (e b0 , . . . , e
bn )
două poligoane de control şi b, respectiv e b curbele Bézier corespunzătoare. Pentru
orice α ∈ R, curba Bézier asociată poligonului de control
((1 − α)b0 + αe b0 , . . . , (1 − α)bn + e
bn ) este curba (1 − α)b + αe b.
m
(vii) dacă e b : [0, 1] → R este curba Bézier asociată poligonului de control (bn , . . . , b0 ),
atunci e b(t) = b(1 − t), ı̂n particular, aceste curbe au aceeaşi imagine geometrică.
Curbe Bézier 26 / 56
Reprezentarea algebrică: forma Bernstein
De reţinut!
Curbe Bézier 27 / 56
Reprezentarea algebrică: forma Bernstein
De reţinut!
Curbe Bézier 27 / 56
Schimbări de parametru
Motivaţie
Curbe Bézier 28 / 56
Schimbări de parametru
Motivaţie
Curbe Bézier 28 / 56
Schimbări de parametru
Motivaţie
Curbe Bézier 28 / 56
Schimbări de parametru
Motivaţie
Curbe Bézier 28 / 56
Schimbări de parametru
În continuare...
Curbe Bézier 29 / 56
Schimbări de parametru
În continuare...
Curbe Bézier 29 / 56
Schimbări de parametru
În continuare...
Curbe Bézier 29 / 56
Schimbări de parametru
În continuare...
Curbe Bézier 29 / 56
Schimbări de parametru
În continuare...
Curba albastră, curba verde şi curba roşie au racord. Curba neagră nu are racord cu niciuna dintre ele. Racordul
dintre curba albastră şi cea verde este “convenabil”.
I Ce ne aşteptăm?
Curbe Bézier 29 / 56
Schimbări de parametru
În continuare...
Curba albastră, curba verde şi curba roşie au racord. Curba neagră nu are racord cu niciuna dintre ele. Racordul
dintre curba albastră şi cea verde este “convenabil”.
I Ce ne aşteptăm?
• Să caracterizăm racordul dintre curbe Bézier folosind poligoanele de
control.
Curbe Bézier 29 / 56
Schimbări de parametru
Schimbări de parametru
Curbe Bézier 30 / 56
Schimbări de parametru
Schimbări de parametru
Curbe Bézier 30 / 56
Schimbări de parametru
Schimbări de parametru
Curbe Bézier 30 / 56
Schimbări de parametru
b−a ad − bc
ϕ : [c, d] → [a, b], ϕ(t) = t+ ,
d −c d −c
unde [a, b], [c, d] ⊂ R sunt două intervale (care nu se reduc la un
punct).
Curbe Bézier 31 / 56
Schimbări de parametru
Curbe Bézier 32 / 56
Schimbări de parametru
(ii) Aplicaţiile c2 , c20 şi c200 din Exemplul (i) sunt parametrizări diferite ale
2 2
elipsei de ecuaţie (x1 −4) 9 + (x2 −3)
4 = 1. Schimbările de parametru
utilizate sunt t 7→ 3t, respectiv t 7→ 1 − t.
Curbe Bézier 33 / 56
Schimbări de parametru
(ii) Aplicaţiile c2 , c20 şi c200 din Exemplul (i) sunt parametrizări diferite ale
2 2
elipsei de ecuaţie (x1 −4) 9 + (x2 −3)
4 = 1. Schimbările de parametru
utilizate sunt t 7→ 3t, respectiv t 7→ 1 − t.
(iii) Aplicaţia ϕ : [0, 1] → [0, 1], ϕ(t) = 1 − t este o schimbare afină de
parametru care schimbă orientarea. Aplicând această schimbare de
parametru curbei polinomiale de gradul 2 dată de c : [0, 1] → R2 ,
c(t) = (t 2 + 4t + 1, t + 2) obţinem curba parametizată
c̄ : [0, 1] → R2 , c̄(t) = (t 2 − 6t + 6, −t + 3). Imaginea geometrică a
celor două curbe este un arc al parabolei x1 − x22 + 3 = 0, care uneşte
punctele A = (1, 2) şi B = (6, 3). Parametrizarea c ”parcurge” acest
arc de la A la B, ı̂n vreme ce c̄ ”parcurge” acest arc ı̂n sens invers.
Curbe Bézier 33 / 56
Schimbări de parametru
Curbe Bézier 34 / 56
Schimbări de parametru
[α,β] m [α,β]
b : [α, β] → R , b := b ◦ ψ,
unde
u−α
ψ : [α, β] → [0, 1] ψ(u) =
β−α
este schimbarea afină de parametru de la intervalul [α, β] la intervalul [0, 1]. În cele ce urmează vom renunţa la scrierea
intervalului de definiţie ca indice superior, acest interval rezultând din context.
Curbe Bézier 35 / 56
Schimbări de parametru
[α,β] m [α,β]
b : [α, β] → R , b := b ◦ ψ,
unde
u−α
ψ : [α, β] → [0, 1] ψ(u) =
β−α
este schimbarea afină de parametru de la intervalul [α, β] la intervalul [0, 1]. În cele ce urmează vom renunţa la scrierea
intervalului de definiţie ca indice superior, acest interval rezultând din context.
Exemplu. Considerăm poligonul de control (b0 , b1 , b2 ) cu b0 = (0, 0), b1 = (2, 0), b2 = (2, 4). Curba Bézier asociată
definită pe intervalul [0, 1] este
2 2 2
b : [0, 1] → R , b(t) = (4t − 2t , 4t )
iar curba Bézier asociată aceluiaşi poligon, dar definită pe intervalul [2, 4] este
2
b : [2, 4] → R ,
e b(u) = b ◦ ψ(u),
e
cu ψ(u) = u−2
4−2
, deci
−u 2 + 8u − 12
!
u−2
2
b(u) = b
e = , (u − 2) .
2 2
Curbe Bézier 35 / 56
Vector tangent
Curbe Bézier 36 / 56
Vector tangent
Curbe Bézier 37 / 56
Vector tangent
Curbe Bézier 37 / 56
Vector tangent
Curbe Bézier 37 / 56
Vector tangent
Alte concepte
Curbe Bézier 38 / 56
Vector tangent
Alte concepte
Curbe Bézier 38 / 56
Vector tangent
Curbe Bézier 39 / 56
Vector tangent
Curbe Bézier 39 / 56
Racordul arcelor de curbe Bézier
Exemplu
Considerăm punctele
(1, −2)
(3, 2) (2, 0)
(3, −2) (3, 0) ( 52 , 0)
(−3, −2) (0, −2) ( 23 , −1) (2, − 21 ).
1
Vectorul tangent la curbă corespunzător valorii t = 2 a parametrului
este (−3, −3).
Curbe Bézier 41 / 56
Racordul arcelor de curbe Bézier
Curbe Bézier 42 / 56
Racordul arcelor de curbe Bézier
Curbe Bézier 43 / 56
Racordul arcelor de curbe Bézier
Curbe Bézier 44 / 56
Racordul arcelor de curbe Bézier
Curbe Bézier 45 / 56
Racordul arcelor de curbe Bézier
Exemplu
În R2 considerăm punctele b0 = (0, 2), b1 = (1, 3), b2 = (3, 3), b3 = (4, 2), b4 = (6, 0),
b5 = (4, −6), b6 = (1, −1). Fie u0 = 1, u1 = 4, u2 = 7. Ce racord au cubicele Bézier
b : [1, 4] → R2 şi eb : [4, 7] → R2 asociate poligoanelor de control (b0 , b1 , b2 , b3 ),
respectiv (b3 , b4 , b5 , b6 )?
Curbe Bézier 46 / 56
Racordul arcelor de curbe Bézier
Exemplu
În R2 considerăm punctele b0 = (0, 2), b1 = (1, 3), b2 = (3, 3), b3 = (4, 2), b4 = (6, 0),
b5 = (4, −6), b6 = (1, −1). Fie u0 = 1, u1 = 4, u2 = 7. Ce racord au cubicele Bézier
b : [1, 4] → R2 şi eb : [4, 7] → R2 asociate poligoanelor de control (b0 , b1 , b2 , b3 ),
respectiv (b3 , b4 , b5 , b6 )?
r (b2 , b3 , b4 ) 6= r (u0 , u1 , u2 ),
Curbe Bézier 47 / 56
Racordul arcelor de curbe Bézier
Exemplu
În R2 considerăm punctele b0 = (0, 2), b1 = (1, 3), b2 = (3, 3), b3 = (4, 2), b4 = (6, 0),
b5 = (4, −6), b6 = (1, −1). Fie u0 = 1, u1 = 4, u2 = 7. Ce racord au cubicele Bézier
b : [1, 4] → R2 şi eb : [4, 7] → R2 asociate poligoanelor de control (b0 , b1 , b2 , b3 ),
respectiv (b3 , b4 , b5 , b6 )?
Fiind un racord G C 1 , se pot modifica intervalele astfel ca raportul să fie de clasă
C 1 . Alegând ı̂n schimb u00 = 1, u10 = 4 şi u20 = 10, avem
u10 − u00 3 1
r (u00 , u10 , u20 ) = = = = r (b2 , b3 , b4 ),
u20 − u10 6 2
Curbe Bézier 48 / 56
Racordul arcelor de curbe Bézier
Exemplu
În R2 considerăm punctele b0 = (0, 2), b1 = (1, 3), b2 = (3, 3), b3 = (4, 2), b4 = (6, 0),
b5 = (4, −6), b6 = (1, −1). Fie u0 = 1, u1 = 4, u2 = 7. Ce racord au cubicele Bézier
b : [1, 4] → R2 şi eb : [4, 7] → R2 asociate poligoanelor de control (b0 , b1 , b2 , b3 ),
respectiv (b3 , b4 , b5 , b6 )?
Comentariu. Este de remarcat faptul că b = c (ca funcţii), ı̂n vreme ce parametrizările
b şiec au aceeaşi imagine geometrică, dar sunt diferite ca aplicaţii. Acest exemplu arată
e
că un racord care are doar continuitate geometrică G C 1 poate deveni, prin alegerea
convenabilă a intervalelor pe care este definită parametrizarea (este suficient să
modificăm unul din capete!) de clasă C 1 . Cu alte cuvinte, continuitatea geometrică G C 1
este legată numai de forma poligonului de control, iar faptul că un racord are clasă C 1
este legat atât de poligonul de control, cât şi de intervalele pe care sunt definite
parametrizările.
Curbe Bézier 49 / 56
Racordul arcelor de curbe Bézier
Exemplu
În R2 considerăm punctele b0 = (0, 2), b1 = (1, 3), b2 = (3, 3), b3 = (4, 2), b4 = (6, 0),
b5 = (4, −6), b6 = (1, −1). Fie u0 = 1, u1 = 4, u2 = 7. Ce racord au cubicele Bézier
b : [1, 4] → R2 şi eb : [4, 7] → R2 asociate poligoanelor de control (b0 , b1 , b2 , b3 ),
respectiv (b3 , b4 , b5 , b6 )?
Racordul este de clasă C 2 . Să analizăm ı̂n continuare dacă acest racord este şi de clasă
C 2 . Pentru aceasta trebuie să determinăm punctul d de intersecţie a dreptelor b1 b2 şi
b4 b5 : dreapta b1 b2 are ecuaţia implicită x2 = 3, iar dreapta b4 b5 are ecuaţia
3x1 − x2 − 18 = 0 şi punctul lor de intersecţie este d = (7, 3). Avem:
−−−−
−→ −−−−
−→ 1
b1 b2 = (2, 0), b2 d = (4, 0), r (b1 , b2 , d) = ,
2
−−−−
−→ −−−−
−→ 1
db4 = (−1, −3), b4 b5 = (−2, −6), r (d, b4 , b5 ) = ,
2
deci au loc egalităţile
c este de clasă C 2 .
ceea ce arată că racordul curbelor c şi e
Curbe Bézier 50 / 56
Racordul arcelor de curbe Bézier
Exemplu
În R2 considerăm punctele b0 = (0, 2), b1 = (1, 3), b2 = (3, 3), b3 = (4, 2), b4 = (6, 0),
b5 = (4, −6), b6 = (1, −1). Fie u0 = 1, u1 = 4, u2 = 7. Ce racord au cubicele Bézier
b : [1, 4] → R2 şi eb : [4, 7] → R2 asociate poligoanelor de control (b0 , b1 , b2 , b3 ),
respectiv (b3 , b4 , b5 , b6 )?
Curbe Bézier 51 / 56
Racordul arcelor de curbe Bézier
Curbe Bézier 52 / 56
Racordul arcelor de curbe Bézier
Exemplu
Considerăm punctele:
b0 = (100, 100), b1 = (200, 200), d = (600, 200), b5 = (300, −300), b6 = (100, −300)
Curbe Bézier 53 / 56
Exerciţii
Exerciţii
Curbe Bézier 54 / 56
Exerciţii
Exerciţii
şi fie b : [0, 1] → R2 curba Bézier asociată. Calculaţi b( 13 ) şi stabiliţi dacă
punctul (1, 13 ) aparţine imaginii lui b.
5. Pentru o curbă Bézier b, calculaţi vectorii b0 (0) şi b0 (1) direct, folosind
forma Bernstein.
6. Considerăm punctele b0 = (4, 2), b1 = (4, 4), b2 = (2, 4) şi fie
b : [0, 1] → R2 curba Bézier asociată poligonului de control (b0 , b1 , b2 ).
Determinaţi vectorii tangenţi la această curbă ı̂n punctele b(0), b( 12 ), b(1).
7. Dacă punctele b0 , b1 , b2 , b3 sunt vârfurile unui pătrat, stabiliţi care este
punctul obţinut aplicând algoritmul de Casteljau pentru valoarea
parametrului t = 21 şi care este tangenta la curbă ı̂n acest punct.
Curbe Bézier 55 / 56
Exerciţii
Exerciţii
8. În R2 considerăm punctele
b0 = (0, 0), b1 = (2, 2), b2 = (2, 4), b3 = (3, 3),
b4 = (5, 1), b5 = (4, 0), b6 = (2, −1)
şi numerele reale
u0 = 0, u1 = 1, u2 = 3.
Fie b : [0, 1] → R şi b : [1, 3] → R2 curbele Bézier asociate. Stabiliţi ce
2 e
clasă are racordul celor două curbe ı̂n punctul b3 .
9. Considerăm punctele:
b0 = (0, 2), b1 = (0, 4), d = (4, 2), b5 = (4, −2), b6 = (0, −3)
şi numerele reale
u0 = 1, u1 = 2, u2 = 3.
Determinaţi poligoanele de control (b0 , b1 , b2 , b3 ) şi (b3 , b4 , b5 , b6 ) astfel
ı̂ncât curbele Bézier asociate b şi e
b definite pe intervalele [1, 2], respectiv
[2, 3] să aibă un racord de clasă C 2 .
Curbe Bézier 56 / 56