Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Matematica


Index » educatie » Matematica
» Curbe si suprafete B-spline


Curbe si suprafete B-spline


Curbe si suprafete B-spline

B-splines sunt utilizate pe scara larga in grafica computerizata CAD pentru modelare si design deoarece poseda multe proprietati geometrice si calculabile.

In acest domeniu, curbele B-spline sunt folosite pentru a trage curbe, suprafete si obiecte tridimensionale. In loc de a discretiza suprafete, B-spline poate trage suprafete netede, ceea ce reprezinta un mare avantaj.

Curba B-spline este o curba de forma libera definita exclusiv printr-un set de puncte, numite puncte de control. Curba este descrisa matematic prin functii polinomiale definite pe portiuni, ceea ce le confera proprietatea de control local (deplasarea unui punct de control are ca efect modificarea formei curbei numai in vecinatatea punctului).

Curbele spline sunt curbe de interpolare prin puncte de control care respecta conditia de continuitate si de curbura. Controlul formei fiind facut prin puncte de control si schimbarea unghiului de tangenta, le face mai dificil de manevrat pentru crerarea asa ziselor desene libere.



O curba spline este o succesiune de curbe segmentate care sunt conectate impreuna pentru a forma o singura curba continua. De exemplu, in analiza matematica, o colectie de curbe Beizer, legate cap la cap poate fi numita o curba spline.

Cele mai multe forme sunt totusi prea complicat de definit utilizand o singura curba Beizer.

Curbele Beizer, spre deosebire de curbele spline utilizeaza curbe de aproximare care nu trebuie sa treaca prin toate punctele de control.

Difernetele principale intre curbele Beizer si B-spline sunt :

forma curbei, aceasta fiind determinata numai de punctele de control fara a se utiliza prima derivata ceea ce face manevrarea lor mai usoara.

gradul sau ordinul curbei este dat de catre punctele de control n+1 pentru gradul n fiind astfel posibila obtinerea unei continuitati mai ridicate.

este mai neteda decat curba spline deoarece foloseste derivate de ordin superior.

Cuvantul "spline" poate fi de asemena utilzat ca verb. Cuvantul "spline"provine din industria de nave, in acest caz insemnand o fasie subtire de lemn.

Curbele pot fi descrise matematic prin ecuatii neparametrice sau prin ecuatii parametrice. O exprimare explicita neparametrica pentru o curba 3D are forma:

P = [ x y z ] T = [ x f (x) g (x) ] T

Unde P este vectorul de pozitie al punctului P

Reprezenatrea neparametrica a unei curbe lucreaza ca si un sistem local pentru punctele curbei, forma generala fiind:

P (u) = [ x y z ] T = [ x(u) y(u) z(u) ] T pentru umin ≤ u ≤ umin

Proprietatile curbelor B-spline

Curbele B-spline impartasesc multe proprietati importante cu curbele Beizer, deoarece primele sunt o generalizare a celor din urma. Mai mult de atata, Curbele B-spline prezinta chiar mai multe proprietati decat curbele Beizer.

In cele ce urmeaza o sa prezentam curba B-spline C(u) de grad p definita de n+1 puncte de control si a unui vector nod U = ( u0, u1, ,um) cu primul p+1 si ultimul p+1 puncte de control, adica (i.e., u0 = u1 = = up si um-p = um-p+1 = = um).

Va prezentam cele mai importante proprietati dintre acestea:

Curba B-spline C(u) este o curba neteda ( piecewise) a carui fiecare componenta are gradul p .

Dupa cum s-a mentionat in pagina precedenta, curba C(u) poate fi privita ca o succesiune de curbe segmentate, definite prin fiecare punct de control. In fig. 1, se prezinta cazul in care n = 10, m = 14 si p = 3, primele patru puncte (noduri) si ultimele patru puncte (noduri) sunt de fixare (sprijin) iar celelalte 7 puncte (noduri) interne sunt distribuite uniform.

Sunt opt puncte (span) de control, fiecare corespunde unui segment de curba. In figura din stanga jos punctele de control arata ca niste triunghiuri.

fig. 1

Aceasta proprietate ne permite sa proiectam forme complexe cu cel mai mic grad polinomial. De exemplu, figura din dreapta de mai sus arata o curba Beizer cu acelasi set de puncte de control. Ea insa nu poate urma linia de control polyline chiar daca gradul sau este 10.

In general, cu cat gradul este mai mic, cu atat curba B-spline urmareste cat mai aproape conturul polyline.

Urmatoarele figuri de mai jos, folosesc acelasi control polyline, curbele fiind (clamped) sprijinite pe punctele de control si uniform distribuite.

Prima figura are gradul 3, cea de a doua are gradul polinomial 5 iar cea de a treia are este de grad 7.

Prin urmare cu cat gradul este mai mic, cu atat curba B-spline generata este mai aprope de controlul polyline. (controlul formei)

fig. 2

Egalitatea m = n + p + 1 trebuie trebuie satisfacuta:

Fiecare punct de control are nevoie de o functie de baza si numarul functiei de baza satisface conditia: m = n + p + 1

(Clamped) Sprijinirea curbei B-spline C(u) trece prin ultimile doua puncte de control P0 si Pn.

Retineti ca baza functiei N 0, p (u este coeficientul de control al punctului P 0 si este non-zero pe (u 0, u p +1). Deoarece u 0 = u 1 = = = u p = 0 for a clamped B-spline curve, N 0,0 ( u ), N 1,0 ( u ), ., N p -1,0 ( u ) are zero and only N p ,0 ( u ) is non-zero (recall from the triangular computation scheme). Consequently, if u = 0, then N 0, p (0) is 1 and C (0) = P 0 . A similar discussion can show C (1) = P n uP = u = 0 pentru o curba B-spline sprijinita (clamped) , N0,0 (u), N1,0 (u), ., Np -1,0 (u) sunt zero si numai N p, 0 (u) este non-zero (retragerea de la sistem triunghiular de calcul). In consecinta, daca u = 0, atunci N 0, p (0) este de 1 si C (0) = P0. O discutie similara poate demonstra C ( 1) = P n .

Curbele Beizer sunt curbe speciale ale curbelor B-spline.If n = p ( ie , the degree of a B-spline curve is equal to n , the number of control points minus 1), and there are 2( p + 1) = 2( n + 1) knots with p + 1 of them clamped at each end, this B-spline curve reduces to a Bézier curve.

Daca n = p (de exemplu, gradul curbei B-spline este egal cu n, numarul de puncte de control minus 1), si exista 2 (p + 1) = 2 (n + 1) noduri cu p + 1 fixate (sprijinite) (clamped) la fiecare capat, aceasta curba B-spline se reduce la o curba Bézier. Mai simplu spus, cand numarul de noduri este egal cu gradul n=p curba B-spline degenereaza intr-o curba Bézier. Forma de baza a functiei este data de pozitia nodurilor.

Controlul formei curbelor B-spline

Pentru a avea control asupra curbelor B-spline in grafica pe calculator curbele trebuie sa indeplineasca o serie de conditii. Este de dorit ca acestea sa aibe un aspect regulat, neted, fara discontinuitati, oscilatii sau bucle intre punctele de control.

Totodata, influenta punctelor asupra aspectului general al curbei trebuie sa fie limitata in sensul ca modificarea pozitiei unui punct de control trebuie sa aiba un efect local, schimband aspectul curbei numai intr-o vecinatate restransa a punctului respectiv.

Aceasta proprietate a curbei poarta denumirea de control local si permite proiectarea interactiva a formelor obiectelor prin incercari repetate.

Este de dorit ca ecuatiile analitice ale curbelor sa fie cat mai simple. In general se utilizeaza curbe descrise prin functii polinomiale de grad redus (2 sau 3).

O astfel de curba nu va putea acoperi intregul set de puncte de control. Solutia consta in separarea setului de puncte de control in subgrupe de puncte si construirea unor curbe de grad redus pentru fiecare subgrupa. Curba cautata va rezulta din asamblarea acestor curbe elementare (portiuni de curba) si deci ea nu va fi descrisa de o ecuatie unica pe intregul domeniu de definitie.

Aspectul neted al curbei rezultate va fi obtinut prin impunerea conditiilor de continuitate si derivabilitate functiei asociate, in punctele de jonctiune a doua portiuni de curba.

Construind in acest mod curbe de interpolare, utilizand curbe descrise de functii polinomiale de grad 3 se obtine curba spline cubica naturala.

Dezavantajul acesteia este controlul global pe care il exercita fiecare punct de control asupra curbei. Determinarea acestei curbe avand n+1 puncte de control necesita rezolvarea unui sistem liniar de 4*n ecuatii cu 4*n necunoscute. Acest sistem furnizeaza coeficientii functiilor polinomiale de grad 3 asociate celor n portiuni de curba care definesc curba de interpolare.

O alta metoda pentru constructia unei curbe de interpolare spline cubica utilizeaza un set de curbe SPLINE DE BAZA. Curba de interpolare se obtine ca o combinatie liniara (suma ponderata) a acestora. Si in acest caz se obtine o curba de interpolare asupra careia fiecare punct de control exercita o influenta globala.

Asigurarea controlului local asupra unei curbe spline cubice de interpolare nu pot poate fi obtinuta decat renuntand la unele conditii asupra curbei. Renuntand la cerinta ca curba sa treaca prin punctele de control conduce la obtinerea unor curbe de aproximare numite CURBE B-SPLINE CUBICE (figura 3).

figura 3

Renuntand la cerinta de derivabilitate de ordin II a curbei, se va obtine o curba de interpolare de tip Romm-Catmull (figura 4).

Curbele B-Spline cubice sunt formate prin combinatii liniare ale unor curbe spline numite B-Spline sau baze. Curba B-Spline cubica este in general si ea o curba spline.

figura 4

Pentru reprezentarea acestui tip de curba se utilizeaza o forma parametrica. Fiind date n+1 puncte de control, P0, . ,Pn, vom diviza intervalul [0,n] al parametrului u in n subintervale [ui, ui+1], cu 0 <= t <= 1 si t(0)=ui si t(1)=ui+1.

Avantajele utilizarii curbelor B-spline

Curbele B-spline solicita mai multe informatii ( de exemplu gradul de curbura si un vector nod ), precum si o teorie mai complexa decat curbele Beizer. Dar ea are mai multe avantaje pentru a compensa acest neajuns.

In primul rand, o curba spline poate fi o curba Beizer.

In al doilea rand, cel mai important este acela ca, curbele B-spline pot satisface toate proprietatile pe care curbele Beizer le au.

In cel de al trilea rand, curbele B-spline ofera un control mai mare de flexibilitate decat o pot face curbele Beizer. De exemplu, gradul unei curbe B-spline este separat de numarul de puncte de control. Putem schimba pozitia unui punct de control la nivel global, fara a schimba toata forma curbei. (locale modificari de proprietate)

Curbele B-spline prezinta o forma mai fina de control. Mai mult de atat, exista si alte tehnici pentru crearea si editarea formei curbei, cum ar fi schimbarea de noduri.

Dezavantajele utilizarii curbelor B-spline

Dezavantajul specific este urmatorul: o modificare a obiectului de exemplu rotire, ridicare, deformare ar fi extrem de dificil de realizat poate chiar imposibil.

Alte dezavantajele sunt numai in ceea ce priveste timpul de procesare, care in cazul utilizarii curbelor B-Spline de ordine mari creste exponential cu gradul curbei.

Suprafete B-spline

Aceeasi ,metoda a tensorului produs, folosit la reprezentarea curbelor beizer, este extins in cadrul curbelor B-spline petru a crea setul rectangular al punctelor de control. Aceste puncte formeaza varfurile (Verices) poliedrului de control care aproximeaza suprafata asociata curbei rezultante.

Given the following information: Avand in vedere urmatoarele informatii:

  1. a set of m +1 rows and n +1 control points p i,j , where 0 <= i <= m and 0 <= j <= n ; un set de 1 m linii si n +1 puncte de control p i, j, unde 0 <= i <= m si 0 <= j <= n;
  2. a knot vector of h + 1 knots in the u -direction, U = ; un nod de vector h + 1 noduri in u-directie, U = (u 0, u 1, ., u) h;
  3. a knot vector of k + 1 knots in the v -direction, V = ; un nod de vector k + 1 noduri in v-directie, V = (v 0, v 1, v ., k);
  4. the degree p in the u -direction; and gradul p la u-directie; si
  5. the degree q in the v -direction; de gradul I in v-directie;

the B-spline surface defined by these information is the following: B-spline de suprafata definite de aceste informatii este urmatoarea:

where N i,p ( u ) and N j,q ( v ) are B-spline basis functions of degree p and q , respectively. Note that the fundamental identities , one for each direction, must hold: h = m + p + 1 and k = n + q + 1. Therefore, a B-spline surface is another example of tensor product surfaces. As in Bézier surfaces, the set of control points is usually referred to as the control net and the range of u and v is 0 and 1. unde N i, p (u) si N j, q (v) sunt curbe B-spline bazate pe functiile de grad p si q

De retinut ca, fundamentale identitati, cate unul pentru fiecare directie, trebuie sa detina: h = m + p + 1 si k = n + q + 1.

Marele avantaj al curbelor B-spline fata de curbele Beizer este dat de controlul local mult mai usor si mai riguros al suprafetei.

The following figure shows a B-spline surface defined by 6 rows and 6 columns of control points. Urmatoarele cifre arata un B-spline suprafata definite de 6 randuri si 6 coloane de puncte de control.

The knot vector and the degree in the u -direction are U = and 2. The two-dimensional basis functions are shown as wireframe surfaces.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate