Sunteți pe pagina 1din 30

CURBE DE FORMA

LIBERA
Prof. univ. dr. ing. Florica Moldoveanu

Curs Sisteme de Prelucrare Grafică – UPB, Automatică şi Calculatoare


2017-2018
1
Utilizari
Pentru forme neconvenţionale (care nu sunt cunoscute
prin functii din geometria analitica: cerc, elipsa, s.a.):
• desen artistic,
• arhitectura,
• caractere de text (fonturi),
• animatie: traiectorii oarecare în spaţiu,
• definirea suprafetelor de forma libera,
• descrierea formelor extrase din imagini,
• etc.

2
SPG – Curbe de forma libera
Cum sunt definite?
• Prin puncte din plan (curbe 2D) sau din spaţiu
(curbe 3D)
• In unele cazuri se mai dau tangente în punctele
respective
2 tipuri de curbe de forma libera:
• De interpolare: trec prin toate punctele date
• De aproximare: punctele date controleaza forma
curbei

3
SPG – Curbe de forma libera
Ecuatiile parametrice ale unei curbe de forma libera
Reprezentarea parametrica vectoriala
p(u) = a3u3 + a2u2 + a1u + a0
0<= u <= 1
p(u), a0, a1, a2, a3 – vectori de 2/ 3 componente

Ex : p(u) = [px(u) py(u) pz(u)]


a0 = [a0x a0y a0z]
P(u) = (X(u), y(u), z(u)) - punct de pe curba

aix, aiy, aiz – coeficientii algebrici ai curbei

4
SPG – Curbe de forma libera
Prin ce se deosebesc diferitele tipuri de
curbe de forma libera?

• Prin condiţiile geometrice pe care le satisfac: datele geometrice prin care


sunt definite.

“Forma algebrică”:

• NU evidentiaza diferenţele dintre diferite tipuri de curbe de forma libera:

O aceeași secvență de puncte poate defini diferite tipuri de curbe, cu


proprietati diferite, de ex. Bézier sau B-spline.

• Modelarea matematică prin “forma geometrică” pune în evidenţă


caracteristicile fiecarui tip de curbe.

5
SPG – Curbe de forma libera
Curbe Hermite (1)
Condițiile geometrice impuse unei curbe Hermite:

punctele extreme și tangentele în punctele extreme

-datele geometrice prin care este definita curba: P0, P1, P0u, P1u

Forma algebrica:

6
SPG – Curbe de forma libera
Curbe Hermite(2)
▪ Se obtin expresiile coeficientilor algebrici, a0, a1,a2, a3,
in functie de conditiile geometrice
▪ Se inlocuiesc coeficientii algebrici in forma algebrica, grupand termenii pt a evidentia
conditiile geometrice.
▪ Rezulta forma geometrica a curbelor Hermite:

Forma geometrica vectoriala a curbelor Hermite

P0, P1, P0u, P1u sunt conditiile geometrice


F1, F2, F3, F4 – se numesc ʺfunctii de amestecʺ
(blending functions) sau ˮde ponderareˮ pentru conditiile
geometrice: determina contributia conditiilor geometrice
in calculul punctelor intermediare de pe curba

7
SPG – Curbe de forma libera
Curbe Hermite(3)
Formele matriciale

Formele matriciale permit extinderea


directa a modelelor curbelor la suprafete!

- vectorul conditiilor geometrice pentru o curba Hermite

Matricea de bază
Hermite Forma geometrica matriciala
a curbelor Hermite
8
SPG – Curbe de forma libera
Curbe Hermite(4)

Compunerea curbelor Hermite De ce este necesara?


Pentru a obtine curbe care trec prin mai mult de 2 puncte

Afisarea curbelor definite parametric


Consideram o curba in planul XOY.
Se foloseste forma geometrica pe componente:
x(u) = fx(u)
y(u) = fy(u) 0<= u <= 1

Se discretizeaza curba calculand puncte


de pe ea si se afiseaza ca polilinie.
9
SPG – Curbe de forma libera
Afisarea unei curbe de forma libera (1)

typedef struct{
float x;
float y;
}P2D;

Implementare in C
folosind o functie
generica line(punct1,
punct2) 10
SPG – Curbe de forma libera
Afisarea unei curbe de forma libera (2)
Implementare in OpenGL

1.
- Se calculeaza punctele de pe curba (folosind o functie similara cu
Hermite din exemplul anterior) si se memoreaza intr-un buffer de varfuri
- Se cere afisarea poliliniei care uneste varfurile.

2. O implementare mai eficienta, folosind geometry shader:


- Se trimit la shader P0, P1, tangentele in P0 şi P1, matricea MVP
- In geometry shader se calculeaza punctele de pe curba folosind o
functie similara cu Hermite si se creaza topologia.

Explicatii privind geometry shader in laboratorul 2.

11
Curbe Bezier(1)
➢ Introduse in 1962, de catre matematicianul Pierre Bézier, pt proiectarea caroseriilor
automobilelor la uzinele Renault.
➢ Conditiile geometrice: o secventa de puncte, P0, P1,….,Pn – varfurile poligonului de
control al curbei - care determina forma si pozitia curbei – curbe de aproximare
➢ Proprietati
•Curba trece numai prin primul si ultimul punct si este tangenta in primul punct la
vectorul P0-P1 si in ultimul punct la vectorul Pn-1 - Pn
•Gradul polinomului care modeleaza curba depinde de numarul de puncte de control
•Forma curbei depinde
de toate punctele de control

12
SPG – Curbe de forma libera
Curbe Bezier(2)

Modelarea matematica

Ecuatia vectoriala
p(u) = Σ Pi * Bi,n(u)
0<= u <= 1, 0<= i <= n

polinoame de grad n pentru (n+1) puncte de


control

Polinoamele Bernstein sunt functiile de amestec pentru curbele Bezier.

Nenule pe intreg intervalul de definitie:


➢ forma curbei depinde de toate punctele de
control!
13
SPG – Curbe de forma libera
Curbe Bezier(3)

Cubica Bezier: 4 puncte de control


p(u) = P0*B0,3(u) + P1*B1,3(u) + P2*B2,3(u) + P3*B3,3(u)

p(u) = P0*(1-u)3 + P1*(3*u*(1-u)2) + P2*(3*u2*(1-u)) + P3*u3

Compunerea curbelor Bezier:


De ce este necesara?
-Gradul polinomului de aproximare depinde de numarul de puncte de control
-In practica nu se folosesc pentru modelarea curbelor functii polinomiale cu grad mai
mare de 3
- Doua curbe Bezier, C1[P0, P1, P2, P3] si C2[Q0, Q1, Q2, Q3] pot fi compuse
cu asigurarea continuitatii geometrice de ordinul 1 in punctul de jonctiune daca:
- Q0 coincide cu P3
- Segmentele P2-P3 si Q0-Q1 sunt colineare

14
SPG – Curbe de forma libera
Curbe Bezier(4)
Avantaje:
- Usor de definit în mod interactiv
-Poligonul de control permite stabilirea formei si pozitiei curbei
-Curba îşi are extremitatile in primul si ultimul varf al poligonului de control
-Tangentele în punctele extreme sunt primul si ultimul segment al poligonului de control
-Curba este complet inchisa in figura convexă definita de
punctele de control (proprietatea de închidere convexă)
-Invarianţa afină: curba obtinuta prin aplicarea unei transformari afine punctelor sale se poate
obtine transformand numai punctele de control si apoi calculand punctele de pe curba.
-Curbele Bezier de grad 2 (3 puncte de control) sunt folosite in proiectarea caracterelor din
fontul TrueType.

Dezavantaje:
-Numarul de puncte de control determina gradul polinomului de aproximare
-Functiile de amestec sunt nenule pe intreg intervalul de definitie fiecare
punct de pe curba depinde de toate punctele de control (control global)
 nu putem ajusta local forma curbei 15
SPG – Curbe de forma libera
Curbe Bezier(5)
Forma matriciala pentru cubica Bezier:

Forma matriciala geometrica pentru curbele Bezier cubice

Matricea de bază Bezier

Vectorul conditiilor geometrice pentru o curba cubica Bezier

16
SPG – Curbe de forma libera
Curbe Bezier(6)

Afisarea unei cubice Bezier definita in planul XOY

// Afiseaza curba Bezier


desen_curba(0, 1, 0.1, Bezier);

17
SPG – Curbe de forma libera
Curbe B-spline(1)

• Conditiile geometrice: o secventa de puncte care determina forma si


pozitia curbei – varfurile poligonului de control al curbei
•Sunt curbe de aproximare
• Elimina dezavantajele curbelor Bezier:
• Gradul polinomului care modeleaza o curba B-spline nu depinde
de numarul punctelor de control
• Punctele de pe o curba B-spline nu depind de toate punctele de
control
➢Deplasarea unui punct de control afecteaza forma curbei local
(proprietatea de control local)

18
SPG – Curbe de forma libera
Curbe B-spline(2)

Modelarea matematica

Curba B-spline de grad 2

Gradul polinoamelor nu depinde de numarul de puncte de control!


sunt functii polinomiale definite pe portiuni:

➢ O curba B-spline se obtine prin jonctiunea mai multor segmente de


curba, fiecare segment fiind determinat de:
-3 puncte de control consecutive – B-spline de grad 2
-4 puncte de control consecutive – B-spline de grad 3

19
SPG – Curbe de forma libera
Curbe B-spline(3)

Funcţiile B-spline de grad (k-1), k= 3 sau 4

Fiecare functie este nenula pe numai k


intervale consecutive!

20
SPG – Curbe de forma libera
Curbe B-spline(4)

Vectorul uniform al valorilor nodale pentru o curba B-spline deschisa

21
SPG – Curbe de forma libera
Curbe B-spline(5)
Curbe B-spline de grad 2, uniforme, neperiodice

0<=u<1 p(u) = P0*N03(u) + P1*N13(u) + P2*N23(u)


1<=u<2 p(u) = P1*N13(u) + P2*N23(u) + P3*N33(u) Ecuatia curbei
2<=u<3 p(u) = P2*N23(u) + P3*N33(u) + P4*N43(u)
3<=u<4 p(u) = P3*N33(u) + P4*N43(u) + P5*N53(u)

i<=u<i+1 pi(u) = ΣPj*Nj3(u) - ecuatia segmentului de curba pe intervalul [i, i+1]


i<= j <= i+2

➢ Curba B-spline din figura este compusa din 4 segmente de curba


conectate cu continuitate geometrica de ordinul 1 in punctele de jonctiune.
➢ Prin adaugarea unui punct de control se adauga un nou segment la curba
22
SPG – Curbe de forma libera
Curbe B-spline(6)
Curbe B-spline de grad 2, uniforme periodice

▪ Functiile B-spline neperiodice au aceeasi forma numai in interiorul


intervalului!
▪ Curbele B-spline uniforme periodice au aceeasi forma pe orice interval
i<= u <= i+1, fiind nenule pe numai:
-3 intervale consecutive (grad 2)
-4 intervale consecutive (grad 3)
➢ Ecuatia curbei se poate scrie pe portiuni:

Deoarece funcţiile B-spline uniforme periodice au aceeasi forma pe orice


interval, se poate utiliza o forma normalizata a ec. parametrice: 0<= u <= 1

0<= u <1
23
SPG – Curbe de forma libera
Curbe B-spline(7)
Curbe B-spline uniforme periodice de grad 2

Forma normalizata a ecuatiei parametrice

pi(u) = U2*Ms3*Gs3i – forma geometrica matriciala a unui segment de


curba B-spline uniformă periodică de grad 2

24
SPG – Curbe de forma libera
Curbe B-spline(8)

Curbe B-spline uniforme periodice de grad 2

25
SPG – Curbe de forma libera
Curbe B-spline(9)

Curbe B-spline uniforme periodice de grad 3

pi(u) = U*Ms4*Gs4i – forma geometrica matriciala a unui segment


de curba B-spline uniformă periodică de grad 3

26
SPG – Curbe de forma libera
Curbe B-spline(10)

Curbe B-spline uniforme periodice de grad 3

Curba B-spline de grad 3


netezeste poligonul de
control mai mult decat curba
B-spline de grad 2!

27
SPG – Curbe de forma libera
Curbe B-spline(11)

Proprietatile curbelor B-spline uniforme periodice

-Puncte de control confundate

-Curbe inchise

-Inchidere convexa

-Invarianta afina

28
SPG – Curbe de forma libera
Curbe B-spline(12)

Proprietati ale curbelor B-spline uniforme periodice de grad 2

29
SPG – Curbe de forma libera
Afisarea unei curbe B-spline

30
SPG – Curbe de forma libera

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