Sunteți pe pagina 1din 76

Curbe Bézier

Mihai-Sorin Stupariu

Sem. al II-lea, 2021 - 2022

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ă

Sursa: Duce et al, SVG tutorial

Curbe Bézier 3 / 56
Curbe parametrizate

Acelaşi principiu funcţionează şi pentru suprafeţe

Sursa: Knowledge Autodesk

Curbe Bézier 4 / 56
Curbe parametrizate

Exemple de curbe ı̂n planul R2

1. Curbe reprezentate folosind ecuaţii (reprezentări implicite)

Curbe Bézier 5 / 56
Curbe parametrizate

Exemple de curbe ı̂n planul R2


2. Curbe reprezentate folosind ecuaţii (reprezentări) parametrice

Curbe Bézier 6 / 56
Curbe parametrizate

Exemple de curbe ı̂n planul R2


2. Curbe reprezentate folosind ecuaţii (reprezentări) parametrice

Curbe Bézier 7 / 56
Curbe parametrizate

Definiţie - curbă parametrizată

Fie I ⊂ R un interval. O curbă parametrizată de clasă C k este dată de o


aplicaţie C k -diferenţiabilă c : I → Rn . Aplicaţia c se numeşte
parametrizare, iar mulţimea M := im(c) se numeşte imagine
geometrică a curbei.
Dacă n = 2 curba se numeşte plană (curbă 2D), iar dacă n = 3 curba se
numeşte strâmbă (curbă 3D).

Curbe Bézier 8 / 56
Curbe parametrizate

Exemple
(i) Curbele

c1 : R → R2 , c1 (t) = (2 + 4t + 1, −2 − 4t);

c 2 : R → R2 , c2 (t) = (4 − 3 cos t, 3 + 2 sin t);


c20 :R→R ,2
c20 (t) = (4 − 3 cos 3t, 3 + 2 sin 3t);
c200 : R → R2 , c200 (t) = (4 − 3 cos(1 − t), 3 + 2 sin(1 − t));
c3 : R → R2 , c3 (t) = (2 − t + t 2 − t 3 + 6t 4 , 1 + t + 2t 2 + 3t 3 );
c4 : R → R2 , c4 (t) = (t 2 − 2t + 2, 2t 2 − 6t + 4) =
= t 2 (1, 0) + 2t(1 − t)(1, 1) + (1 − t)2 (2, 4);
c5 : [0, 1] → R2 , c5 (t) = (t 3 + 3t, −3t 2 + 3t) =
= t 3 (4, 0) + 3t 2 (1 − t)(2, 1) + 3t(1 − t)2 (1, 1) + (1 − t)3 (0, 0)
sunt curbe parametrizate plane de clasă C ∞ .
Curbe Bézier 9 / 56
Curbe parametrizate

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 .

(iii) Curbele c7 : R → R3 , c7 (t) = (2 cos t, 2 sin t, t) şi

c8 : [0, 1] → R3 , c8 (t) = (−2t 3 + 3t 2 , 4t 3 − 6t 2 + 3t, t 3 ) =


= t 3 (1, 1, 1) + 3t 2 (1 − t)(1, 0, 0) + 3t(1 − t)2 (0, 1, 0) + (1 − t)3 (0, 0, 0)

sunt curbe strâmbe de clasă C ∞ .

Curbe Bézier 10 / 56
Curbe parametrizate

Definicţie - curbe polinomiale / polinomiale pe porţiuni

1. O curbă polinomială de grad d este o curbă definită de o


parametrizare polinomială, i.e. de o aplicaţie c = (c1 , . . . , cn ) : I → Rn cu
proprietatea că c1 , . . . , cn sunt funcţii polinomiale de grad cel mult d şi cel
puţin una dintre ele are grad exact d.

2. O curbă dată de o aplicaţie c : [u0 , uL ] → Rn se numeşte polinomială


pe porţiuni dacă există o diviziune

u0 < u1 < . . . < ui < ui+1 < . . . < uL

a intervalului [u0 , uL ] astfel ca pentru orice i = 0, . . . , L − 1, restricţia


c|[ui ,ui+1 ] a aplicaţiei c la intervalul [ui , ui+1 ] să fie polinomială.

Curbe Bézier 11 / 56
Curbe parametrizate

Exemple

(i) Curbele c1 , c3 , c4 şi c5 din exemplul anterior sunt curbe polinomiale de


grade 1, 4, 2, respectiv 3.
(ii) Orice curbă polinomială c : [a, b] → Rn este o curbă polinomială pe
porţiuni.
(iii) Curbele c6 şi c60 sunt curbe polinomiale pe porţiuni care nu sunt curbe
polinomiale, deoarece avem

(t, −t 2 ), dacă t ∈ [−1, 0]



c6 (t) =
(t, t 2 ), dacă t ∈ [0, 1].

(t, −t), dacă t ∈ [−1, 0]
c60 (t) =
(t, t), dacă t ∈ [0, 1].

Curbe Bézier 12 / 56
Schema de Castejau

Remember - raport, combinaţie afină

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

O proprietate geometrică - reformulare

Curbe Bézier 17 / 56
Schema de Castejau

Schema de Casteljau (n = 2)

Curbe Bézier 18 / 56
Schema de Castejau

Exemplu - schema de Casteljau (n = 2)

Curbe Bézier 19 / 56
Schema de Castejau

Schema de Casteljau - forma generală

Curbe Bézier 20 / 56
Schema de Castejau

Algoritmul de Casteljau - Construcţia generală

Fie b0 , b1 , . . . , bn ∈ Rm . Pentru t ∈ [0, 1] se notează b0i (t) := bi


(i = 0, . . . , n) şi se definesc inductiv punctele de Casteljau

r r −1 r −1 r = 1, . . . , n
bi (t) := (1 − t)bi (t) + tbi+1 (t), (1)
i = 0, . . . , n − r

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

• Polinoamele Bernstein de gradul 2 formează o bază ı̂n spaţiul


vectorial al polinoamelor de grad mai mic sau egal cu 2, deci orice
curbă parametrizată polinomial (cu grad ≤ 2) poate fi scrisă folosind
polinoame Bernstein.

Curbe Bézier 24 / 56
Reprezentarea algebrică: forma Bernstein

Comentarii

• Polinoamele Bernstein de gradul 2 formează o bază ı̂n spaţiul


vectorial al polinoamelor de grad mai mic sau egal cu 2, deci orice
curbă parametrizată polinomial (cu grad ≤ 2) poate fi scrisă folosind
polinoame Bernstein.
• De fapt: curbele polinomiale de grad mai mic sau egal cu 2 sunt
curbele construite folosind algoritmul de Casteljau (sau folosind forma
Bernstein) pentru n = 2.

Curbe Bézier 24 / 56
Reprezentarea algebrică: forma Bernstein

Forma algebrică a curbelor Bézier - cazul general

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!

I Orice curbă Bézier este definită/controlată de un poligon de control,


acesta este ”memorat/stocat” şi determină geometria curbei.

Curbe Bézier 27 / 56
Reprezentarea algebrică: forma Bernstein

De reţinut!

I Orice curbă Bézier este definită/controlată de un poligon de control,


acesta este ”memorat/stocat” şi determină geometria curbei.
I Pentru construcţia/randarea curbelor Bézier este folosit algoritmul de
Casteljau sau reprezentarea cu polinoame Bernstein.

Curbe Bézier 27 / 56
Schimbări de parametru

Motivaţie

Q: Cum putem genera curbe cât mai complexe?

Curbe Bézier 28 / 56
Schimbări de parametru

Motivaţie

Q: Cum putem genera curbe cât mai complexe?


A:

Curbe Bézier 28 / 56
Schimbări de parametru

Motivaţie

Q: Cum putem genera curbe cât mai complexe?


A:
I Folosind mai multe puncte de control (creşte gradul curbei, deci calcule
mai complexe).

Curbe Bézier 28 / 56
Schimbări de parametru

Motivaţie

Q: Cum putem genera curbe cât mai complexe?


A:
I Folosind mai multe puncte de control (creşte gradul curbei, deci calcule
mai complexe).
I Racordând (“punând cap la cap”) arce de curbă de grad mai mic. În
practică: curbe de gradul 3 (cubice).

Curbe Bézier 28 / 56
Schimbări de parametru

În continuare...

I Elemente de avut ı̂n vedere:

Curbe Bézier 29 / 56
Schimbări de parametru

În continuare...

I Elemente de avut ı̂n vedere:


• Ce ı̂nseamnă racordul unor curbe?

Curbe Bézier 29 / 56
Schimbări de parametru

În continuare...

I Elemente de avut ı̂n vedere:


• Ce ı̂nseamnă racordul unor curbe?
• Cum definim o curbă Bézier pe un interval oarecare? (pas necesar
pentru a vorbi despre racord)

Curbe Bézier 29 / 56
Schimbări de parametru

În continuare...

I Elemente de avut ı̂n vedere:


• Ce ı̂nseamnă racordul unor curbe?
• Cum definim o curbă Bézier pe un interval oarecare? (pas necesar
pentru a vorbi despre racord)
• Ce ı̂nseamnă un “racord convenabil”? (astfel ca vectorii tangenţi /
acceleraţie să coincidă).

Curbe Bézier 29 / 56
Schimbări de parametru

În continuare...

I Elemente de avut ı̂n vedere:


• Ce ı̂nseamnă racordul unor curbe?
• Cum definim o curbă Bézier pe un interval oarecare? (pas necesar
pentru a vorbi despre racord)
• Ce ı̂nseamnă un “racord convenabil”? (astfel ca vectorii tangenţi /
acceleraţie să coincidă).

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

I Elemente de avut ı̂n vedere:


• Ce ı̂nseamnă racordul unor curbe?
• Cum definim o curbă Bézier pe un interval oarecare? (pas necesar
pentru a vorbi despre racord)
• Ce ı̂nseamnă un “racord convenabil”? (astfel ca vectorii tangenţi /
acceleraţie să coincidă).

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

I Remember: O curbă parametrizată este dată de o funcţie c : I → Rn


(I ⊂ R este un interval, c verifică anumite condiţii).

Curbe Bézier 30 / 56
Schimbări de parametru

Schimbări de parametru

I Remember: O curbă parametrizată este dată de o funcţie c : I → Rn


(I ⊂ R este un interval, c verifică anumite condiţii).
I Definiţie. Fie c : I → Rn şi c̄ : I¯ → Rn două curbe parametrizate.
Spunem că c şi c̄ diferă printr-o schimbare de parametru (sau că c̄
a fost obţinută din c printr-o schimbare de parametru) dacă există un
difeomorfism ϕ : I¯ → I (numit reparametrizare) astfel ca c̄ = c ◦ ϕ.
O reparametrizare ϕ păstrează (schimbă) orientarea dacă este
strict crescătoare (respectiv strict descrescătoare).

Curbe Bézier 30 / 56
Schimbări de parametru

Schimbări de parametru

I Remember: O curbă parametrizată este dată de o funcţie c : I → Rn


(I ⊂ R este un interval, c verifică anumite condiţii).
I Definiţie. Fie c : I → Rn şi c̄ : I¯ → Rn două curbe parametrizate.
Spunem că c şi c̄ diferă printr-o schimbare de parametru (sau că c̄
a fost obţinută din c printr-o schimbare de parametru) dacă există un
difeomorfism ϕ : I¯ → I (numit reparametrizare) astfel ca c̄ = c ◦ ϕ.
O reparametrizare ϕ păstrează (schimbă) orientarea dacă este
strict crescătoare (respectiv strict descrescătoare).
I Observaţie. Printr-o reparametrizare imaginea geometrică a curbei
considerate nu se modifică, se schimbă doar ”modul” in care
parcurgem curba.

Curbe Bézier 30 / 56
Schimbări de parametru

Schimbări afine de parametru

I O schimbare afină de parametru (reparametrizare


afină) este o aplicaţie de forma

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

Observaţie. Schimbările afine de parametru sunt singurele care


menţin o curbă polinomială ı̂n clasa curbelor polinomiale de acelaşi
grad.

Curbe Bézier 31 / 56
Schimbări de parametru

Schimbări afine de parametru - Exemple

Curbe Bézier 32 / 56
Schimbări de parametru

Schimbări afine de parametru - Exemple

(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

Schimbări afine de parametru - Exemple

(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

Pregătire - extinderea intervalului de definire a unei curbe


Bézier

Curbe Bézier 34 / 56
Schimbări de parametru

Formalizare - extinderea intervalului de definire a unei


curbe Bézier
Observaţie. Fie (b0 , b1 , . . . , bn ) un poligon de control din Rm şi fie b : [0, 1] → Rm curba Bézier asociată. Pentru un
interval arbitrar [α, β] ⊂ R (α 6= β), definim aplicaţia (numită curbă Bézier definită pe intervalul [α, β])

[α,β] 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

Formalizare - extinderea intervalului de definire a unei


curbe Bézier
Observaţie. Fie (b0 , b1 , . . . , bn ) un poligon de control din Rm şi fie b : [0, 1] → Rm curba Bézier asociată. Pentru un
interval arbitrar [α, β] ⊂ R (α 6= β), definim aplicaţia (numită curbă Bézier definită pe intervalul [α, β])

[α,β] 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

Intuiţie - vector tangent/vector acceleraţie

Curbe Bézier 36 / 56
Vector tangent

Vector tangent, vector acceleraţie - formalizare


I Definiţie. Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clasă C k (k ≥ 1) a
unei curbe şi t0 ∈ I fixat.
(i) Vectorul c 0 (t0 ) := (c10 (t0 ), . . . , cn0 (t0 )) se numeşte vector tangent (vector
viteză) la curbă ı̂n punctul corespunzător lui c(t0 ). Dreapta care trece prin punctul
c(t0 ) şi are direcţia dată de vectorul c 0 (t0 ) se numeşte tangentă la curba c ı̂n
punctul c(t0 ).
(ii) Dreapta care trece prin punctul c(t0 ) şi este perpendiculară la tangenta la
curbă ı̂n acest punct se numeşte normală la curba c ı̂n punctul c(t0 ).

Curbe Bézier 37 / 56
Vector tangent

Vector tangent, vector acceleraţie - formalizare


I Definiţie. Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clasă C k (k ≥ 1) a
unei curbe şi t0 ∈ I fixat.
(i) Vectorul c 0 (t0 ) := (c10 (t0 ), . . . , cn0 (t0 )) se numeşte vector tangent (vector
viteză) la curbă ı̂n punctul corespunzător lui c(t0 ). Dreapta care trece prin punctul
c(t0 ) şi are direcţia dată de vectorul c 0 (t0 ) se numeşte tangentă la curba c ı̂n
punctul c(t0 ).
(ii) Dreapta care trece prin punctul c(t0 ) şi este perpendiculară la tangenta la
curbă ı̂n acest punct se numeşte normală la curba c ı̂n punctul c(t0 ).
I Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clasă C k (k ≥ 2) a unei curbe
şi t0 ∈ I fixat. Vectorul c 00 (t0 ) := (c100 (t0 ), . . . , cn00 (t0 )) se numeşte vector
acceleraţie la curbă ı̂n punctul corespunzător lui c(t0 ).

Curbe Bézier 37 / 56
Vector tangent

Vector tangent, vector acceleraţie - formalizare


I Definiţie. Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clasă C k (k ≥ 1) a
unei curbe şi t0 ∈ I fixat.
(i) Vectorul c 0 (t0 ) := (c10 (t0 ), . . . , cn0 (t0 )) se numeşte vector tangent (vector
viteză) la curbă ı̂n punctul corespunzător lui c(t0 ). Dreapta care trece prin punctul
c(t0 ) şi are direcţia dată de vectorul c 0 (t0 ) se numeşte tangentă la curba c ı̂n
punctul c(t0 ).
(ii) Dreapta care trece prin punctul c(t0 ) şi este perpendiculară la tangenta la
curbă ı̂n acest punct se numeşte normală la curba c ı̂n punctul c(t0 ).
I Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clasă C k (k ≥ 2) a unei curbe
şi t0 ∈ I fixat. Vectorul c 00 (t0 ) := (c100 (t0 ), . . . , cn00 (t0 )) se numeşte vector
acceleraţie la curbă ı̂n punctul corespunzător lui c(t0 ).
I Observaţie Ecuaţiile parametrice ale tangentei la curba c prin punctul c(t0 ) sunt
0

 x1 = c1 (t0 ) + sc1 (t0 )
............... s ∈ R.
xn = cn (t0 ) + scn0 (t0 )

Curbe Bézier 37 / 56
Vector tangent

Alte concepte

I Definiţie. Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clasă


C k (k ≥ 1) a unei curbe
(i) Punctul c(t0 ) se numeşte punct regulat dacă c 0 (t0 ) 6= 0.
(ii) Punctul c(t0 ) se numeşte punct singular dacă c 0 (t0 ) = 0.
(iii) O curbă se numeşte regulată dacă toate punctele sale sunt
regulate.

Curbe Bézier 38 / 56
Vector tangent

Alte concepte

I Definiţie. Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clasă


C k (k ≥ 1) a unei curbe
(i) Punctul c(t0 ) se numeşte punct regulat dacă c 0 (t0 ) 6= 0.
(ii) Punctul c(t0 ) se numeşte punct singular dacă c 0 (t0 ) = 0.
(iii) O curbă se numeşte regulată dacă toate punctele sale sunt
regulate.

I Definiţie. Fie c : I → Rn , c = (c1 , . . . , cn ) o parametrizare de clasă


C k (k ≥ 1) a unei curbe şi [a, b] ⊂ I un interval.
(i) c|[a,b] : [a, b] → Rn se numeşte arc al curbei c;
Rb
(ii) lungimea arcului de curbă c|[a,b] este L(c|[a,b] ) = a kc 0 (t)kdt.

Curbe Bézier 38 / 56
Vector tangent

Modificarea vectorului tangent/acceleraţie la schimbări de


parametru

I Propoziţie. Fie c : I → Rn şi c̄ : I¯ → Rn două parametrizări de clasă


C k (k ≥ 2) ale unei curbe, astfel ca c̄ = c ◦ ϕ, unde ϕ : I¯ → I este o
schimbare de parametru. Pentru orice s ∈ I¯ au loc relaţiile

c̄ 0 (s) = ϕ0 (s) · c 0 (ϕ(s)),

c̄ 00 (s) = ϕ0 (s)2 · c 00 (ϕ(s)) + ϕ00 (s) · c 0 (ϕ(s)).


În particular, regularitatea unei curbe este o proprietate intrinsecă a
acesteia, ı̂n sensul că nu depinde de parametrizarea aleasă.

Curbe Bézier 39 / 56
Vector tangent

Modificarea vectorului tangent/acceleraţie la schimbări de


parametru

I Propoziţie. Fie c : I → Rn şi c̄ : I¯ → Rn două parametrizări de clasă


C k (k ≥ 2) ale unei curbe, astfel ca c̄ = c ◦ ϕ, unde ϕ : I¯ → I este o
schimbare de parametru. Pentru orice s ∈ I¯ au loc relaţiile

c̄ 0 (s) = ϕ0 (s) · c 0 (ϕ(s)),

c̄ 00 (s) = ϕ0 (s)2 · c 00 (ϕ(s)) + ϕ00 (s) · c 0 (ϕ(s)).


În particular, regularitatea unei curbe este o proprietate intrinsecă a
acesteia, ı̂n sensul că nu depinde de parametrizarea aleasă.
I Propoziţie. Lungimea unui arc de curbă este invariantă la schimbări
de parametru.

Curbe Bézier 39 / 56
Racordul arcelor de curbe Bézier

Derivatele unei curbe Bézier


Propoziţie. Fie b : [0, 1] → Rd o curbă Bézier.
(i) Derivatele de orice ordin calculate pentru t = 0 şi t = 1 depind
doar de poligonul de control. Mai mult, b0 (0) = n(b1 − b0 ),
b0 (1) = n(bn − bn−1 ), cu alte cuvinte, vectorii tangenţi la curba Bézier
ı̂n punctele b0 (respectiv bn ) sunt coliniari şi au acelaşi sens cu vectorii
−−−−
−→ −−−−
−→
b0 b1 (respectiv bn−1 bn ). În cazul ı̂n care aceşti vectori sunt nenuli,
ei reprezintă direcţia tangentelor la curbă ı̂n punctele respective.

(ii) Pentru orice t ∈ [0, 1] are loc egalitatea

b0 (t) = n(b1n−1 (t) − bn−1


0 (t)),
cu alte cuvinte, punctele construite ı̂n etapa (n − 1) a algoritmului de
Casteljau determină vectorul tangent la curba Bézier ı̂n punctul b(t).
Curbe Bézier 40 / 56
Racordul arcelor de curbe Bézier

Exemplu

Considerăm punctele

b0 = (1, −2), b1 = (3, 2), b2 = (3, −2), b3 = (−3, −2).


1
Schema de Casteljau corespunzătoare acestor puncte şi valorii t0 = 2
a parametrului este

(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

Condiţii de racord ı̂ntre curbe Bézier

Curbe Bézier 42 / 56
Racordul arcelor de curbe Bézier

Condiţii de racord ı̂ntre curbe Bézier

Curbe Bézier 43 / 56
Racordul arcelor de curbe Bézier

Condiţii de racord ı̂ntre curbe Bézier

Curbe Bézier 44 / 56
Racordul arcelor de curbe Bézier

Condiţii de racord ı̂ntre curbe Bézier


Propoziţie. Fie (b0 , . . . , bn−1 , bn ) şi (bn , bn+1 , . . . , b2n ) două poligoane de control
şi b : [u0 , u1 ] → Rm , respectiv eb : [u1 , u2 ] → Rm curbele Bézier asociate
(u0 < u1 < u2 ; această condiţie va fi subı̂nţeleasă ı̂n cele ce urmează).
(i) Cele două curbe au un racord de clasă G C 1 ı̂n punctul bn dacă şi numai dacă
punctele bn−1 , bn , bn+1 sunt coliniare.
(ii) Cele două curbe au un racord de clasă C 1 ı̂n punctul bn dacă şi numai dacă
punctele bn−1 , bn , bn+1 sunt coliniare şi are loc egalitatea de rapoarte
r (bn−1 , bn , bn+1 ) = r (u0 , u1 , u2 ).
(iii) Cele două curbe au un racord de clasă C 2 ı̂n punctul bn dacă şi numai dacă
sunt verificate condiţiile:
• punctele bn−1 , bn , bn+1 sunt coliniare şi are loc egalitatea de rapoarte
r (bn−1 , bn , bn+1 ) = r (u0 , u1 , u2 );
• există un punct d cu proprietatea că bn−2 , bn−1 , d, respectiv d, bn+1 , bn+2 sunt
triplete de puncte coliniare şi, ı̂n plus, au loc egalităţile

r (bn−2 , bn−1 , d) = r (d, bn+1 , bn+2 ) = r (u0 , u1 , u2 ).

Punctul d se numeşte punct de Boor asociat racordului celor două curbe.

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

Racordul este de clasă G C 1 . Avem:


−−−−
−→ −−−−
−→
b2 b3 = b3 − b2 = (1, −1), b2 b4 = b4 − b2 = (3, −3),
−−−−
−→ −−−−
−→
deci vectorii b2 b3 şi b2 b4 sunt liniar dependenţi, adică punctele b2 , b3 , b4 sunt
coliniare; ı̂n particular cubicele Bézier b : [1, 4] → R2 şi e
b : [4, 7] → R2 asociate
poligoanelor de control (b0 , b1 , b2 , b3 ), respectiv (b3 , b4 , b5 , b6 ) au un racord de clasă
G C 1 ı̂n b3 .

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

Racordul nu este de clasă C 1 . Pe de altă parte,


−−−−
−→ −−−−
−→
b2 b3 = b3 − b2 = (1, −1), b3 b4 = b4 − b3 = (2, −2),
u1 −u0
adică r (b2 , b3 , b4 ) = 12 , iar r (u0 , u1 , u2 ) = u2 −u1
= 1, aşadar

r (b2 , b3 , b4 ) 6= r (u0 , u1 , u2 ),

ceea ce arată că racordul nu este de clasă C 1 .

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

cu alte cuvinte curbele Bézier c : [1, 4] → R2 , respectiv e


c : [4, 10] → R2 asociate celor
două poligoane de control au un racord de clasă C 1 ı̂n b3 .

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

r (b1 , b2 , d) = r (d, b4 , b5 ) = r (u00 , u10 , u20 ),

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

Comentariu. Dacă raportul r (b1 , b2 , d) (respectiv r (d, b4 , b5 )) nu ar fi fost egal cu 12 ,


am fi putut modifica punctul b1 pe dreapta b2 d (respectiv punctul b5 pe dreapta db4 ),
astfel ca raportul respectiv să fie 12 ; altfel spus, prin modificarea poligonului de control se
poate obţine un racord de clasă C 2 .

Curbe Bézier 51 / 56
Racordul arcelor de curbe Bézier

Ce date sunt necesare pentru a putea construi două cubice


Bézier care au un racord de clasă C 1 ? Dar un racord de
clasă C 2 ?

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)

şi numerele reale


u0 = 0, u1 = 1, u2 = 2.
Pornind de la aceste date putem construi poligoane 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 [0, 1],
respectiv [1, 2] să aibă un racord de clasă C 2 .

Curbe Bézier 53 / 56
Exerciţii

Exerciţii

1. Considerăm poligonul de control (b0 , b1 , b2 , b3 ), unde

b0 = (2, 3), b1 = (4, 3), b2 = (4, 5), b3 = (−2, 9).

Scrieţi schema de Casteljau corespunzătoare acestui poligon de control şi


valorii t = 12 a parametrului.
2. Scrieţi forma Bernstein a curbei Bézier asociate poligonului de control
b0 = (−2, 1), b1 = (1, 5), b2 = (3, 0).
3. În R2 considerăm poligoanele de control P = (b0 , b1 , b2 ) respectiv
Pe = (b2 , b3 , b4 ), unde

b0 = (−6, −4), b1 = (3, 3), b2 = (λ − 1, 3), b3 = (7, µ + 1), b4 = (−3, −1).

Fie b : [2, 5] → R2 , respectiv e


b : [5, 8] → R2 curbele Bézier asociate lui P,
b au un racord de clasă G C 1 sau C 1 ı̂n b2 .
respectiv P. Discutaţi dacă b şi e
e

Curbe Bézier 54 / 56
Exerciţii

Exerciţii

4. Considerăm poligonul de control

b0 = (1, 1), b2 = (2, 0), b3 = (0, 0)

ş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

S-ar putea să vă placă și