Pentru a vă înregistra, vă rugăm să trimiteți un email către administratorul site-ului.
Pune o întrebare

3.7k intrebari

6.8k raspunsuri

15.5k comentarii

2.5k utilizatori

2 plusuri 0 minusuri
1.2k vizualizari
În general întrebările care se pun la Scientia mie mi se par neinteresante pentru că se opresc la nivel de școală sau de popularizare (sînt și excepții, cu siguranță lăudabile). Iată aici o problemă care mi se pare interesantă mie, chiar dacă e ușurică.

Probabil toată lumea știe ce sînt parabolele din geometrie. De asemenea, probabil că mulți au folosit măcar o dată un soft de desen vectorial și au văzut, chiar și în unele programe simple, cum se trasează o curbă Bézier cubică, din cele care au cîte două puncte de control, folosite pentru a modifica forma curbei. (Formulele pentru curba Bézier le găsiți pe internet.)

Întrebarea mea are două părți:

1. Se dă un arc de parabolă oarecare. Poate el fi reprodus exact de o curbă Bézier cubică? Adică există o curbă Bézier care să treacă exact prin aceleași puncte ca arcul de parabolă dat?

2. Dacă da, unde trebuie puse cele două puncte de control?

Pentru simplitate și fără a pierde din generalitate se poate lua parabola y=x^2, între limite oarecare. Prin întinderea și rotirea ei se poate obține absolut orice parabolă posibilă, iar la curbele Bézier întinderile și rotirile se fac prin simpla întindere și rotire a grupului celor patru puncte care determină curba.

Îmi dau seama că întrebarea nu va atrage pe aproape nimeni --- parcă aud: „Ce naiba mai sînt și curbele astea Bézier?!...” ---, așa că m-aș bucura și pentru cele mai firave încercări de răspuns.
Expert (12.9k puncte) in categoria Matematica
0 0

Poate ar fi util sa postezi intrebarile si pe forum, daca vrei sa ai o audienta ceva mai larga. Zic si eu. Poate nu mult mai larga, dar oricum. smiley

0 0
Dacă aș fi în căutare de audiență largă știu unde să mă duc. Există alte forumuri românești mult mai active, iar pe unele forumuri străine sigur aș găsi ușor oameni interesați de aceleași lucruri. Am pus întrebarea la Scientia Q&A pentru că îmi place aici și am vrut să arăt ce fel de subiecte și abordări mi-ar plăcea să văd mai des.
1 0
 Nu auzisem de curbe Bezier și această întrebare mi-a dat ocazia să mă informez despre ele și să revăd proprietățile parabolei. 
 Adică am obținut beneficiul maxim pe care îl aștept de la Scientia QA, acela de oportunitate de învățare, înțelegere sau adâncire a unor cunostinte. 
  
 Strict despre problemă, cred că trebuie arătat că un arc de parabolă poate fi scris ca o curbă parametrică Bezier pătratică  (o ecuație vectorială în  t^2,  2(1-t)t și (1-t)^2 având coeficienți perechile de coordonate ale punctelor de control). Dacă e o curbă Bezier pătratică, atunci poate fi scrisă și ca o expresie parametrică cubică. 
  
 Problema poate părea ușurică după rezolvare, dar pentru mine e în faza în care am reușit doar să înțeleg enunțul. Ceea ce e un pas, obligatoriu, dar doar un pas.  

1 Raspuns

1 plus 0 minusuri
 
Cel mai bun raspuns
 Prin definiție o curbă Bezier de gradul 2 are forma ecuației parametrice vectoriale: 
  
      C(t)=(1-t)^2*P0+2(1-t)t*P1+t^2P2  
  
 unde parametrul t aparține intervalului [0, 1] iar P0(x0, y0) și P2(x2, y2) sunt puncte finale de control pentru arcul de parabolă într punctele P0 și P2, iar P1(x1, y1) este punct intermediar de control. 
 P0 și P2 sunt situate pe curbă corespunzător valorilor t=0, respectiv t=1 ale parametrului t, iar P1 se află la intersecția tangentelor în P0 și P2 la curbă. 
 Prin urmare, orice arc de parabolă poate fi descris ca o curbă Bezier pătratică cu condiția determinării coordonatelor punctului intermediar de control P1 situat la intersecția tangentelor în P0 și P2 la curbă. 
  
 Observăm că parabola descrisă prin ecuația y=ax^2+bx+c are axa de simetrie paralelă cu axa y, caz în care tangentele se întâlnesc într-un punct de abscisă (x0+x2)/2, deci abscisa lui P1 este (x0+x2)/2. 
 Calculăm ordonata lui P1 din ecuația tangentei în P0 la curbă. Avem 
  
      y=y0+y'(x0)(x-x0) în care, înlocuind x=(x0+x2)/2 și particularizând pentru parabola y=x^2 => 
      y1=x0*x2 
 Deci, coordonatele lui P1 sunt: x1=(x0+x2)/2 și y1=x0*x2. 
  
  
 Pentru a rescrie ecuația curbei Bezier cubice pornind de la forma pătratică aplicăm algoritmul lui de Casteljau. Avem 
  
      C(t)=C(t)(1-t+t)=(1-t)C(t)+tC(t). Efectuând calculele și odonand termenii după coeficienții   
 (1-t)^3, t(1-t)^2, (t^2)*(1-t) și t^3 obținem: 
  
      C(t)=(1-t)^3*P0+t(1-t)^2*(P0+2P1)+t^2*(1-t)(P2+2P1)+t^3*P2. 
 
Pentru ca expresia să conțină coeficienți polinomiali Bernstein ai ecuatiei de gradul3 observăm că al doilea și al treilea termen trebuie să fie înmulțiți cu 3/3, iar vectorii care descriu coordonatele punctelor intermediare de control P'1 și P'2 ale curbei Bezier cubice devin: 
  
      P'1=(P0+2P1)/3 și P'2=(P2+2P1)/3. 
  
 Rezumând: 
 Pentru o parabolă de forma y=ax^2+bx+c, problema exprimării ei ca o curbă Bezier cubică cere următorii pași: 
 1. Determinăm punctul intermediar P1 al ecuației Bezier pătratice. Coordonatele acestuia sunt: 
  
      x1=(x0+x2)/2 și y1=y0+y'(x0)(x2-x0)/2; 
  
 2. Cunoscând coordonatele punctelor de control ale formei pătratice determinăm coordonatele punctelor intermediare de control ale formei cubice astfel:   
  
      P'1=(P0+2P1)/3 și P'2=(P2+2P1)/3, unde punctele de control ale formei cubice sunt notate P0, P'1, P'2 și P2. 
  
 Pentru cazul y=x^2 voi alege pentru simplificarea calculelor arcul de parabolă între punctele P0(-1, 1) și P2(1, 1). Punctul intermediar de control P1 are coordonatele: 
  
      x1=(-1+1)/2=0 și y1=(-1)*1=-1 
  
 Trecând la forma cubică, pentru determinarea coordonatelor punctelor intermediare de control P'1 și P'2, aplicând formulele la care am ajuns, avem: 
  
   P'1=(P0+2P1)/3=[(-1, 1)+2(0, -1)]/3 => x'1=(-1+0*2)/3=-1/3 și y1=[1+2(-1)]/3=-1/3 și 
   P'2=(P2+2P1)/3=[(1,  1)+2(0, -1)]/3 => x'2=(1+2*0)/3=1/3    și y1=[1+2(-1)]/3=-1/3 
  
       
  
  
   
  
       
Senior (6.6k puncte)
0 0

Felicitări! M-am rătăcit puțin cînd ați vorbit de Casteljau și Bernstein...

Altfel spus, orice arc de parabolă se poate scrie sub forma unei curbe Bézier pătratice, cu condiția să punem capetele curbei Bézier la capetele arcului de parabolă și punctul de control acolo unde se intersectează tangentele. (De aici vine întrebarea mea despre tangentele la parabolă.) Date fiind proprietățile curbelor Bézier, care permit rotiri prin simpla rotire a tuturor punctelor de control, rezultatul rămîne valabil pentru orice arc de parabolă, indiferent cum e rotit în plan. Mai mult, același rezultat e valabil și în 3 dimensiuni (și mai multe, dacă e nevoie).

Iar dacă avem curba Bézier pătratică, cea cubică se poate construi foarte ușor, alegînd cîte un punct de control pe fiecare din cele două tangente, la o treime de intersecția lor și două treimi de capetele arcului de parabolă.

0 0
 Mulțumesc pentru felicitări, dar va mulțumesc și mai mult pentru că mi-ați dat posibilitatea de a studia și înțelege un lucru nou și util. 
  
 Din formulele pentru punctele intermediare ale formei cubice în funcție de P1 al formei pătratice rezultă că P'1=P0/3+P1*2/3 și P'2=P2/3+P1*2/3, iar rezultatul este că, așa cum spuneți, punctele P'1 și P'2 se află pe tangente, la o treime de punctul de concurență și la două treimi de punctele finale. 
  
 Mi-am dat seama că întrebarea cu abscisa punctului de intersecție al tangentelor viza problema cu curbele Bezier, am fost tentat să fac comentariul "Prietenii știu de ce :)", dar am renunțat pentru că mulți ar fi crezut că vorbesc în dodii. 
  
 Aș vrea totuși să precizez că abscisa lui P1 este media aritmetica a absciselor lui P0 și P2 doar în cazul parabolelor cu axa de simetrie paralelă cu axa y, adică de forma y=ax^2+bx+c. 
 Pentru o parabolă cu axa de simetrie paralelă cu axa x, de forma x=ay^2+by+c, ordonata lui P1 este media aritmetică a ordonatelor lui P0 și P2. 
 Pentru cazul general această proprietate remarcabilă și utilă nu mai poate fi folosită iar calculele pentru aflarea lui P1 se lungesc puțin necesitând, de exemplu, utilizarea derivatelor.  
0 0
Și totuși prietenii știu de ce...
...