CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),

Documente similare
Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Cursul 8 Funcţii analitice Vom studia acum comportarea şirurilor şi seriilor de funcţii olomorfe, cu scopul de a dezvălui o proprietate esenţială a ac

PROGRAMA CONCURSULUI NAŢIONAL

Cursul 7 Formula integrală a lui Cauchy Am demonstrat în cursul precedent că, dacă D C un domeniu simplu conex şi f : D C o funcţie olomorfă cu f cont

Microsoft Word - cap1p4.doc

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

Pachete de lecţii disponibile pentru platforma AeL

Spatii vectoriale

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u

Examenul de bacalaureat 2012

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

Laborator 4 Modele sistemice liniare. Reprezentare numerică. Conversii. Conexiuni 4.1 Tema Formarea deprinderilor de utilizare a convenţiilor MATLAB d

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

G.I.S. Curs 3

I

Calcul Numeric

Aero-BCD, , Prof. L. Costache & M. Olteanu Notițe de Adrian Manea Seminar 5 Șiruri și serii de funcții. Serii de puteri 1 Șiruri de funcții D

Distanţa euclidiană (indusă de norma euclidiană) (în R k ). Introducem în continuare o altă aplicaţie, de această dată pe produsul cartezian R k XR k,

Coordonate baricentrice Considerăm în plan un triunghi ABC şi un punct Q în interiorul său, fixat arbitrar. Notăm σ c = aria ( QAB) σ a = aria ( QBC),

Capitolul MD. 10 Metoda funcţiilor Liapunov Fie sistemul diferenţial x = f (t, x), t t 0, x D R n. (10.1) Presupunem că x = 0 este punct de echilibru,

ETTI-AM2, , M. Joița & A. Niță Notițe de Adrian Manea Seminar 11 Transformarea Laplace Aplicații Transformarea Z Ecuații și sisteme diferenți

Prelegerea 3 În această prelegere vom învăţa despre: Clase speciale de latici: complementate. modulare, metrice, distributive şi 3.1 Semi-distributivi

Examenul de bacalaureat 2012

Examenul de bacalaureat 2012

MD.09. Teoria stabilităţii 1

Algebra si Geometri pentru Computer Science

OPERATII DE PRELUCRAREA IMAGINILOR 1

Cursul 10 Fractali de tip Newton Vom prezenta în continuare o nouă modalitate de generare a fractalilor, modalitate care îşi are originea într-o probl

Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P

Analiz¼a Matematic¼a - Curs 6 M¼ad¼alina Roxana Buneci

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

Noțiuni matematice de bază

Geometrie afină Conf. Univ. Dr. Cornel Pintea cpintea math.ubbcluj.ro Cuprins 1 Săptămâna Endomorfismele unui spaţiu afin Transla

Tiberiu Trif Analiză matematică 2 Calcul diferențial și integral în R n

Subiectul 1

Slide 1

Analiză de flux de date 29 octombrie 2012

Microsoft Word - probleme_analiza_numerica_ses_ian09.rtf

Microsoft Word - TIC5

Lucian L. TURDEANU Georgeta D. POP (MANEA) BAZELE GEOMETRICE ALE FOTOGRAMETRIEI CONSPRESS BUCUREŞTI 2009

METODE NUMERICE ÎN INGINERIE

C:/Users/Lenovo/Dropbox/activitate matematica/cursuri/MS ETTI /msetti.dvi

Analiză statică Analiza fluxului de date 23 octombrie 2014

Calcul Numeric

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Microsoft Word - 2 Filtre neliniare.doc

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

Retele Petri si Aplicatii

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

Microsoft Word - Programa finala olimpiadei matematica 2007 gimnaziu.doc

gaussx.dvi

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Curs 10 Aplicaţii ale calculului diferenţial. Puncte de extrem 10.1 Diferenţiale de ordin superior S¼a trecem acum la de nirea diferenţialelor de ordi

Cursul 14 Mulţimea lui Mandelbrot Mulţimile şi funcţiile cu caracter excepţional (mulţimea lui Cantor, insula lui Koch, funcţiile lui Weierstrass şi T

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

Geometrie afină Conf. Univ. Dr. Cornel Pintea cpintea math.ubbcluj.ro Cuprins 1 Săptămâna 1 Structura afină a unui spaţiu vectorial Vari

Microsoft Word - a5+s1-5.doc

1

Microsoft Word - Curs_09.doc

Microsoft Word - Curs_10.doc

BAC 2007 Pro Didactica Programa M1 2 Rezolvarea variantei 36 versiune finală Redactia Pro Didactica Suportul pe net:

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Slide 1

Teoreme cu nume 1. Problema (Năstăsescu IX, p 147, propoziţia 5) Formula lui Chasles Pentru orice puncte M, N şi P avem MN + NP = MP.

Microsoft Word - FiltrareaNyquist-rezumat.doc

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

BAC 2007 Pro Didactica Programa M1 2 Rezolvarea variantei 61 versiune finală Redactia Pro Didactica Suportul pe net:

Cuantizare Vectoriala.doc

Microsoft Word - Programa_Evaluare_Nationala_2011_Matematica.doc

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

{ 3x + 3, x < 1 Exemple. 1) Fie f : R R, f(x) = 2x + 4, x 1. Funcţia f este derivabilă pe R\{1} (compunere de funcţii elementare), deci rămâne să stud

Lucrarea 7 Filtrarea imaginilor BREVIAR TEORETIC Filtrarea imaginilor se înscrie în clasa operaţiilor de îmbunătăţire, principalul scop al acesteia fi

Elemente de aritmetica

Aproximarea functiilor prin metoda celor mai mici patrate

Microsoft Word - Tsakiris Cristian - MECANICA FLUIDELOR

Autoevaluare curs MN.doc

Cursul 6 Cadru topologic pentru R n În continuarea precedentei părţi, din cursul 5, dedicată, în întregime, unor aspecte de ordin algebric (relative l

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

Şcoala ………

Microsoft Word - Curs_08.doc

E_d_Informatica_sp_MI_2015_bar_02_LRO

INDICATORI AI REPARTIŢIEI DE FRECVENŢĂ

Examenul de bacalaureat 2012

TEORIA MĂSURII Liviu C. Florescu Universitatea Al.I.Cuza, Facultatea de Matematică, Bd. Carol I, 11, R Iaşi, ROMANIA, e mail:

8

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa

MECANICA FLUIDELOR

E_d_Informatica_sp_SN_2014_bar_10_LRO

2

CONCURSUL DE MATEMATICĂ APLICATĂ "ADOLF HAIMOVICI" ETAPA JUDEȚEANĂ 18 martie 2017 Filiera Tehnologică : profilul Tehnic Clasa a IX -a Problema 1. 2 Se

Microsoft Word - D_ MT1_II_001.doc

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

Matematica VI

C:/Users/Lenovo/Dropbox/activitate matematica/cursuri/MS ETTI /msetti.dvi

Electricitate II

SUBPROGRAME

Slide 1

Transcriere:

CURE ÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t), y(t), z(t)) cu x, y, z polinoame de grad n. Maximul gradelor polinoamelor x, y, z se numeşte gradul curbei. Alegerea funcţiilor din această clasă pentru parametrizări de curbe (şi suprafeţe) este justificată de calculele simple necesare pentru evaluarea lor, ceea ce ne conduce la mărirea vitezei de lucru şi la reducerea cumulării erorilor de calcul. Cu ajutorul curbelor şi suprafeţelor astfel parametrizate se pot modela o mare diversitate de forme. Un argument în plus îl constituie teorema lui Weierstrass care afirmă că orice funcţie continuă f : [a, b] R este limita uniformă a unui şir de funcţii polinomiale. Cu alte cuvinte o funcţie continuă poate fi reprezentată, cu precizie arbitrar fixată, de o funcţie polinomială. O observaţie simplă ne asigură că nu se restrânge generalitatea considerând curbe polinomiale cu parametrizarea definită pe intervalul [0, ]. Mai precis orice curbă polinomială C : [0, ] R 3 poate fi reparametrizată polinomial de o aplicaţie C : [0, ] R 3, iar aceasta se poate face cu ajutorul schimbării de variabilă φ : [0, ] [a, b], φ(s) = ( s) a + s b, considerând C = C φ. Fie C o curbă polinomială de grad n. Atunci putem scrie C(t) = x(t) y(t) = a 0 + a t +... + a n t n a 20 + a 2 t +... + a 2n t n z(t) a 30 + a 3 t +... + a 3n t n şi considerăm punctele A i (a i, a 2i, a 3i ), i = 0, n. Astfel, formal, C(t) se scrie sub forma: C(t) = A 0 + t A +... + t n A n. Scrierea este formală deoarece + t + t 2 +... + t n şi deci nu are semnificaţie geometrică (dacă suma ar fi, atunci C(t) ar fi o combinaţie baricentrică a punctelor A i, i = 0, n). S-a încercat, însă fară succes, găsirea unei interpretări în care modificarea unuia sau a multor puncte A i influenţează geometria curbei. Prin urmare, aceste puncte nu au semnificaţie geometrică şi deci exprimarea unei parametrizări polinomiale relativ la baza canonică = {, t,..., t n } nu este utilă. În încercarea de a proiecta forme cât mai variate pentru capotele de automobile, ézier, inginer la uzinele Renault, a avut ideea exprimării funcţiilor polinomiale de grad n relativ la baza ernstein = { n 0 (t), n (t),..., n n(t)} în locul bazei canonice. Polinoamele ernstein sunt definite astfel: n i (t) = C i n t i ( t) n i cu C i n = n! i! (n i)!.

2 CURE ÉZIER Observaţie. Polinoamele ernstein definite pe un interval arbitrar [a, b] se exprimă prin: ( ) u a i ( ) b u n i i n (u) = Cn i cu u [a, b]. b a b a Proprietăţi ale polinoamelor ernstein: ) i n(t) > 0 şi n i n (t) =, t [0, ]; i=0 2) n 0 (0) = (0) = 0, i =,..., n n n() = () = 0, i = 0,,..., n ; n i 3) Avem relaţia de recurenţă: n i i n (t) = ( t) i n (t) + t i n (t). O mulţime ordonată de puncte (b 0, b,..., b n ) se numeşte poligon de control (sau poligon caracteristic); punctele b 0, b,..., b n se numesc puncte de control (sau puncte caracteristice). Dacă b 0 = b n atunci avem un poligon închis. Se numeşte curbă ézier definită de poligonul de control de mai sus, curba polinomială exprimată în baza ernstein prin: n b(t) = b i i n (t). Proprietăţi. i=0 ) Gradul unei curbe ézier este mai mic cu o unitate decât numărul punctelor sale de control. 2) O curbă ézier interpolează extremităţile poligonului său de control, deoarece b(0) = b 0 şi b() = b n ; prin urmare, dacă b 0 = b n, curba ézier este închisă. Figure. Curbă ézier închisă 3) O curbă ézier este inclusă în înfăşurătoarea convexă a punctelor sale de control (curba ézier fiind o combinaţie convexă a punctelor de control). 4) O curbă ézier este invariantă faţă de inversarea ordinii punctelor sale de control, i.e. poligoanele de control (b 0, b,..., b n ) şi (b n, b n,..., b 0 ) definesc aceeaşi curbă. Această proprietate este o consecinţă a relaţiei evidente: i n(t) = n n i ( t). 5) O curbă ézier este invariantă la schimbări afine de parametru.

CURE ÉZIER 3 6) O curbă ézier este invariantă la transformări afine. Această proprietate este foarte utilă, de exemplu, atunci când curba este supusă unei succesiuni de rotaţii şi translaţii. Aşadar, se va aplica transformarea afină doar punctelor de control, după care se va genera curba ézier definită de acest nou poligon de control.. Algoritmul Horner ézier de evaluare a parametrizării ernstein a unei curbe ézier Considerăm poligonul de control (b 0, b,..., b n ) şi fie b(t) = n b(i) i n(t)= i=0 =C 0 ns n b 0 + C ns n t b +... + C n nt n b n =(C 0 ns b 0 + C nt b ) s n + C 2 ns n 2 t 2 b 2 +... + C n nt n b n =[(C 0 ns b 0 + C nt b ) s + C 2 ns n 2 t 2 b 2 ] s n 2 +... + C n nt n b n =[...[(C 0 ns b 0 + C nt b ) s + C 2 ns n 2 t 2 b 2 ] s +...] s + C n nt n b n unde s = t. Această metodă de eşalonare a operaţiilor, pentru evaluarea lui b(t) se numeşte metoda Horner ézier. Pentru calculul combinărilor vom folosi relaţia: Algoritmul Horner ézier: C i n = C i n combin combinări: Cn i b[i] punctul de control b i t parametrul punct = b(t) grad gradul curbei (n i + )/i s = t; fact=; /* fact = t k */ combin = ; /* intiţializarea C 0 n = */ punct = b[0] s; for(i=; i< grad; i++) { fact = t; combin = combin (grad-i+) / i; punct = (punct + fact combin b[i]) s; } punct += fact t b[grad]; 2. Reprezentarea procedurală a curbelor ézier. Algoritmul lui de Casteljau De Casteljau a dat o altă definiţie a curbelor ézier. Lucrările sale privind această problematică au fost elaborate înaintea celor ale lui ézier, dar nu au fost niciodată publicate, ci au fost păstrate sub forma unor rapoarte tehnice ale firmei Citroën. Rapoartele au devenit cunoscute mult mai târziu, când metoda dată de ézier devenise deja uzuală. Astfel aceste curbe poartă doar numele lui ézier. Pentru a deduce schema lui de Casteljau de generare a

4 CURE ÉZIER unui punct pe o curbă ézier definită de poligonul de control (b 0,..., b n ) definim operatorul (cf. de ex. [?]) E : {b 0,..., b n } {b,..., b n }, E(b i ) = b i+, şi scriem b(t) = (( t) I + t E) n b 0. Notăm: Avem forma recursivă: b r,r+,...,s (t) = (( t) + t E) s r b r. b r,...,s (t) = ( t + t E) ( t + t E) s r b r = ( t) b r,...,s + t E ( t + t E) s r b r = ( t) b r,...,s + t ( t + t E) s r b r = ( t) b r,...,s + t b r+,...,s. În cazul când s = r + avem: b rs (t) = ( t) b r + t b s (b r (t) = b r pentru r = s) iar pentru r = 0, s = n avem: b 0,,...,n (t) = ( t + t E) n 0 b 0 = b(t). Rezultă următoarea schemă de evaluare a unui punct de pe curba ézier, corespunzător parametrului t: b 0 b b 0, b 2 b,2 b 0,,2... b n b n 2,n b n 3,n 2,n... b 0,,...,n b n b n,n b n 2,n,n... b,2,...,n b 0,,...,n Fiecare punct din matricea triunghiulară se obţine ca o combinaţie convexă, cu coeficienţii ( t), t a două puncte situate pe coloana precedentă şi pe aceeaşi linie, respectiv linia de deasupra, i.e. de exemplu: b i,i+,i+2 = ( t) b i,i+ + t b i+,i+2. Dacă se reindexează punctele din matricea de mai sus, şi anume: b 0 0 b 0 b 0 b 0 2 b 0 b 2 0... b 0 n b n 2 b2 n 3... bn 0 b 0 n b n b2 n 2... bn b n 0 avem următoarea relaţie recursivă: b r j (t) = ( t) br j (t) + t b r j+ (t) cu r =, n, j = 0, n r. Pentru a schiţa algoritmul de calcul facem următoarele notaţii: bez[i] punctul de control b i t parametrul punct b(t)

grad gradul curbei Avem astfel următorul algoritm: for(i=0; i <= grad; i++) bezaux[i] = bez[i]; s = t; for(r=; r <= grad; i++) for(i=0; i <= (grad-r); i++) bezaux[i] = s bezaux[i] + t bezaux[i+]; punct = bezaux[0]; CURE ÉZIER 5 2.. Interpretarea geometrică a algoritmului de Casteljau. Fie b i, i = 0, 3 patru puncte (de control). Pentru fiecare t [0, ] definim: b 0 (t) = ( t) b 0 + t b b (t) = ( t) b + t b 2 b 2 (t) = ( t) b 2 + t b 3. Prin urmare, în prima etapă a schemei de Casteljau se realizează interpolarea afină a punctelor de control succesive. Pentru t fixat, punctele b 0 (t), b (t), b 2 (t) împart segmentele corespunzătoare în acelaşi raport (vezi figura). t t b3 t = 0.8 b2 b0 b Figure 2. Algoritmul lui de Casteljau În etapa următoare se interpolează aceste puncte şi se obţin: [ b 2 0 (t) = ( t) b 0 (t) + t b (t) b 2 (t) = ( t) b (t) + t b 2 (t). În fine Să facem calculele: b 3 0(t) = ( t) b 2 0(t) + t b 2 (t).

6 CURE ÉZIER b 2 0 (t) = ( t) [( t) b 0 + t b ] + t [( t) b + t b 2 ] = ( t) 2 b 0 + 2 t ( t) b + t 2 b 2 ) b 2 (t) = ( t) [( t) b + t b 2 ] + t [( t) b 2 + t b 3 ] = ( t) 2 b + 2 t ( t) b 2 + t 2 b 3 ) b 3 0 = ( t)3 b 0 + 2 t ( t) 2 b + ( t) 2 t 2 b 2 +t ( t) 2 b + 2 t 2 ( t) b 2 + t 3 b 3 = = ( t) 3 b 0 + 3 t ( t) 2 b + 3 t 2 ( t) b 2 + t 3 b 3 adică parametrizarea ézier a unei curbe cubice. Observaţie: (cf. e.g. [?]) Considerăm curba ézier definită de poligonul de control (b 0,..., b n ). Atunci punctele b n 2 0 (t), b n 2 (t) şi b n 2 2 (t) evaluate în etapa n 2 a schemei de Casteljau determină planul osculator al curbei în punctul b(t) (aceasta în cazul în care curba este definită în spaţiu). Numărul operaţiilor în evaluarea unui punct pe o curbă ézier de gradul n este liniar în n în cazul algoritmului Horner-ézier, şi respectiv pătratic, în cazul algoritmului de Casteljau. Totuşi este de preferat algoritmul de Casteljau, fiind numeric mai stabil şi furnizând în etapa n şi direcţia tangentei în punctul evaluat. 3. Relaţii între poligonul de control şi forma curbei ézier asociate Curbele ézier au fost introduse în ideea de a genera curbe care se apropie de forma poligonului de control. Pentru a reproduce forma unei curbe se consideră un poligon de control şi apoi se generează curba ézier asociată. Dacă forma obţinută este necorespunzătoare, se ajustează punctele de control până ce obţinem forma curbei cât mai apropiată de cea desenată liber. Modificarea adecvată a unor puncte ale poligonului iniţial necesită cunoaşterea modului în care o anumită schimbare în poziţia punctelor de control influenţează geometria curbei. Fie b(t) curba ézier definită de poligonul şi b(t) curba ézier definită de poligonul Avem: b(t) = n i=0,i j (b 0, b,..., b j, b j, b j+,..., b n ) (b 0, b,..., b j, c j, b j+,..., b n ). b(i) n i (t) + c j n j (t) = = n b(i) i n(t) + (c j b j ) j n(t) = i=0 = b(t) + b j c j n j (t) Rezultă că b(t) b(t) = n j (t) b j c j. Pentru j {, 2,..., n } polinoamele ernstein j n se anulează doar în 0 şi, astfel curba b se deplasează pe direcţia lui bj c j cu excepţia extremităţilor b 0 şi b n. Cum maximul funcţiei

n j CURE ÉZIER 7 este atins pentru t = j n rezultă că, înlocuind punctul de control b j cu c j curba este cel mai mult afectată într-o vecinătate a punctului b( j n ). b4 b3 b2 b0 b c Figure 3. Modificarea formei unui arc ézier când se schimbă un punct de control Posibilităţile de control a formei curbei ézier, precum şi stabilitatea numerică a algoritmului de Casteljan fac ca acestea să constituie standardul geometric ideal pentru reprezentarea curbelor polinomiale pe porţiuni. 4. Subdivizarea unei curbe ézier Fie b : [0, ] R 3 curba ézier definită de poligonul de control (b 0, b,..., b n ), şi exprimată în baza ernstein. Fie de asemenea α (0, ) fixat. Considerăm arcele γ = b [0,α] şi γ 2 = b [α,] (care admit parametrizări de grad n, fiind restricţii ale lui b). Ne punem problema găsirii punctelor de control care definesc aceste arce ca şi curbe ézier. Procesul prin care se asociază curbei ézier două arce ézier adiacente şi a căror reuniune este curba iniţială se numeşte proces de subdivizare. Dacă b este o curbă ézier definită de poligonul de control (b 0, b,..., b n ) şi α (0, ) ca mai sus atunci: poligonul de control asociat arcului b [0,α] este: (b 0 0 (α), b 0 (α),..., bn 0 (α)); poligonul de control asociat arcului b [α,] este: (b 0 n(α), b n (α),..., bn 0 (α)); punctele care intervin fiind generate de schema de Casteljau. Ideea de demonstraţie a acestei afirmaţii în ceea ce priveşte b [0,α] constă în a face schimbarea de parametru φ : [0, ] [0, α]; φ(τ) = α τ şi de a utiliza relaţia :

8 CURE ÉZIER i n(α τ) = n j i (α) n j (τ) j=0 Pentru celălalt arc b [α,] se va ţine cont de invarianţa curbei ézier la schimbarea ordinii punctelor de control, deci se va considera b(t) = b( t). Avem astfel arcul b [0, α] (vezi de ex. [EP]). Descriem mai jos procedura de subdivizare (aceasta va determina poligoanele de control de subdiviziune în punctul corespunzător lui α). Fie variabilele grad, i şi r de tip int iar alfa şi beta de tip double. Corpul funcţiei de subdivizare poate fi scris astfel: { /* subpoligonul stang */ } beta = alfa; for(i = 0; i <= grad; i + +) pstg[i] = b[i]; for (r = ; r <= grad; r + +) for (i = 0; i <= grad r; i + +) pstg[i] = beta pstg[i] + alfa pstg[i+]; /* subpoligonul drept */ alfa = alfa; beta = beta; for (i = 0; i <= grad; i + +) pdr[grad i] = b[i]; for (r = ; r <= grad; r + +) for (i = 0; i <= grad r; i + +) pdr[i] = beta pdr[i] + alfa pdr[i+]; Vom observa şi în figura următoare că procesul de subdivizare este controlat de schema de Casteljau şi valoarea lui α. 4.. Mărirea gradului parametrizării unei cubei ézier. Să considerăm curba ézier definită de poligonul de control (b 0,..., b n ). Se pune problema dacă această curbă poate fi generată de n + 2 puncte de control, adică dacă se poate reparametriza curba printr-un polinom de grad mai mare ca n. Propoziţie. Curba ézier definită de poligonul de control (b 0,..., b n ) şi curba ézier asociată poligonului (c 0,..., c n, c n+ ), unde c 0 = b 0, c n+ = b n c i = coincid. i n+ b i + ( i n+ ) b i, i =, n Creşterea gradului parametrizării unei curbe ézier este utilă de exemplu în generarea suprafeţelor (toate curbele care intervin trebuie să aibă acelaşi grad). 5. Racordul de clasă C şi C 2 a două arce ézier Curbele ézier deşi utile în desenul liber prezintă câteva dezavantaje şi anume, dacă curba ce trebuie modelată are formă complexă, atunci reprezentarea ei ézier necesită multe puncte

CURE ÉZIER 9 b2 b b3 b0 b50 b5 b4 Figure 4. Subdivizarea unei curbe ézier de grad 5 în punctul corespunzător parametrului α = 2 3 de control şi deci va avea grad mai mare. Cu cât gradul creşte, sunt implicate mai multe operaţii în evaluarea parametrizării şi deci din rotunjiri succesive se amplifică erorile. Pentru a evita lucrul cu parametrizări de grad mare (> 0) se fac modelări folosind curbe ézier compozite. O curbă ézier compozită este o curbă Γ obţinută prin racordarea mai multor arce ézier de acelaşi grad. Mai precis să presupunem că avem L arce ézier de grad n, definite respectiv de poligoanele de control (b in, b in+,..., b in+n ), i = 0,,..., L. Ultimul punct de control al fiecărui poligon coincide cu primul punct de control al poligonului următor. Cum o curbă ézier interpolează extremităţile poligonului de control, rezultă că reuniunea celor L arce defineşte o curbă continuă. Pe fiecare arc avem parametrizarea ernstein r i+ : [0, ] R 2, r i+ (t) = (problema se pune şi are soluţie şi în R 3 ). n b in+j j n (t), i = 0,,..., L j=0 Căutăm o parametrizare globală a curbei Γ.

0 CURE ÉZIER Fie [u 0, u L ] un interval arbritar. Considerăm divizarea u 0 < u <... < u L şi schimbările afine de parametru φ i : [u i, u i ] [0, ], φ i (u) = u u i. u i u i Astfel, putem defini o parametrizare globală a funcţiei ézier compozite: r : [u 0, u L ] R 3, r(u) = (r i φ i )(u), u [u i, u i ], i =,..., L. Evident r este continuă şi r(u i ) = b ni, i = 0,..., L. Şirul punctelor de diviziune ale intervalului [u 0, u L ] se numeşte şir de noduri, punctele r(u i ) se numesc puncte de joncţiune sau de racord. Notăm i = u i+ u i, i = 0,..., L. Parametrul u este parametrul global al curbei compozite iar t = local pentru parametrizarea ernstein a arcului r([u i, u i+ ]). u u i u i+ u i este parametrul În continuare vom deduce relaţiile între punctele de control a două arce adiacente pentru ca Γ să fie de clasă C în fiecare nod u i =, 2,..., L. Ne restrângem la cazul a două arce ézier şi considerăm r : [u 0, u 2 ] R 2 curba ézier compozită. Avem u 0 < u < u 2 iar poligoanele de control pe cele două porţiuni sunt (b 0, b,..., b n ), respectiv (b n, b n+,..., b 2n ). Atunci Γ este de clasă C în u dacă şi numai dacă punctele b n, b n, b n+ sunt coliniare şi b n = 0 b n + b n+. 0 + 0 + Să arătăm acest { lucru: r (ϕ Avem r(u) = (u)) pentru u [u 0, u ] r 2 (ϕ 2 (u)) pentru u [u, u 2 ]. Atunci r este de clasă C în u dacă şi numai dacă vectorii tangenţi la arcele r([u 0, u ]), r([u, u 2 ]) în punctul r(u ) coincid. Astfel, Dar ϕ (u) = u u 0 u u 0, ϕ 2 (u) = u u u 2 u d dt r (ϕ (u )) ϕ (u ) = d dt r 2(ϕ 2 (u )) ϕ 2(u ). d dt r () şi prin urmare condiţia este echivalentă cu u u 0 = d dt r 2(0) u 2 u. Pe de altă parte, r (t) = n b j j n(t) şi r 2(t) = n b n+j j n(t). j=0 Ştim că j n(t) = Cj nt j ( t) n j şi dorim să calculăm j n (0), respectiv j n (). Avem: { 0 n(t) = C0 n( t) n 0 n (t) = n ( n t)n 0 (0) = n 0 n () = 0 n(t) = C nt( t) n n (t) = C n[( t) n (n )t( t) n 2 ] { n (0) = n n() = 0 pentru j 2 şi j < n : j n(t) = Cj nt j ( t) n j j n (t) = [ Cj n j t j ( t) n j (n j)t j ( t) n j ] j=0

{ n n j (0) = 0 j () = 0 n n (t) = Cn n t n ( t) { n n n (0) = 0 n n () = n CURE ÉZIER n n n(t) = C n nt n n n (t) = nt n Rezultă astfel că: d dt r () = n(b n b n ), (t) = Cn n [(n )t n 2 ( t) t n ] { n n (0) = 0 n n () = n. d dt r 2(0) = n(b n+ b n ). Prin urmare avem: n(b n b n ) = n(b n+ b n ) b n b n = 0 b n+ 0 b n 0 ( 0 + b n ) = 0 b n+ + b n+ b n = 0 0 + b n+ + 0 + b n Să deducem acum condiţia de clasă C 2. Calculăm limitele laterale ale derivatei de ordinul al doilea: Derivata la stânga = d2 r dt 2 2 (ϕ (u )) (ϕ (u )) 2 + d dt (r )(ϕ (u )) ϕ (u ) }{{} =0 (ϕ fiind de grad ) = d2 r () dt 2 (u u 0. ) 2 Analog, derivata la dreapta = d2 r 2 dt 2 (0) (u 2 u ) 2. Avem următoarele expresii pentru derivatele de ordinul al doilea ale polinoamelor ernstein: [ 0 n (t) = n(n )( n t)n 2 0 (0) = n(n ) 0 n [ () = 0 2(n )( t) n 2 + (n )(n 2)t( t) n 3] n (t) = C n [ n (0) = 2n(n ) n () = 0 2 n (t) = C2 n[2( t) n 2 2(n 2)t( t) n 3 [ + 2(n 2)t( t) n 3 + +(n 2)(n 3)t 2 ( t) n 4 n ] 2 (0) = n(n ) 2 n [ () = 0 n pentru j > 2 şi j < n 2 2 (0) = 0 2 n () = 0 Mai avem de asemenea: [ n n 2 (0) = 0 () = n (n ) n n 2 [ n n (0) = 0 () = 2n (n ) n n

2 CURE ÉZIER [ n n (0) = 0 n n () = n (n ). Aşadar, condiţia ca r să fie de clasă C 2 în u se rescrie în forma: 2 (b n 2 2b n + b n ) = 0 2 (b n 2b n+ + b n+2 ). Întrucât r este de clasă C în u avem condiţia: Înlocuind, avem: 2 0 b n = 0 + b n + 0 0 + b n+ (b n 2 2b n + αb n + ( α)b n+ ) = = 2 (αb n + ( α)b n+ 2b n+ + b n 2 ) α. Avem succesiv: ] (α 2) α b 2 n = [ ] b n+2 + (α+) + α b 2 2 n+ 2 0 ) ) α b n = b n+2 + ( α + (α )α2 b ( α) 2 n+ ) 2 bn 2 + α2 2α +2α α 2 αb ( α 2 ) n = b n+2 + α2 +α 2 : α α b n+ (α ) unde α = 0 +. Astfel 0 = α [ b 2 n 2 + 0 2 0 = 2 ( 2 ( α α) bn 2 + (α 2) α 2 ( α) 2 ( α α α α b n 2 + α b n = α α b n+2 + α b n+. Am obţinut combinaţii afine de b n, b n 2 respectiv b n+, b n+2. Notăm d punctul de intersecţie a dreptelor b n b n 2 cu b n+ b n+2. Avem α α b n 2 + α b n = d b n = α b n 2 + ( α) d ( ) α α b n+2 + α b n+ = d b n+ = α d + ( α) b n+2. Concluzionăm că: r este de clasă C 2 în nodul de joncţiune u dacă şi numai dacă există un punct d astfel încât punctele din tripletele (b n 2, b n, d) şi (d, b n+, b n+2 ) să fie coliniare şi, în plus, să avem relaţia ( ). Punctul d asociat racordului de clasă C 2 a două arce ézier se numeşte punct de oor.