În matematica computațională , algoritmul de Castelljou , numit după inventatorul său Paul de Castelljou , este o metodă recursivă pentru determinarea formei polinoamelor Bernstein sau curbelor Bezier . Algoritmul de Castelljot poate fi folosit și pentru a împărți o curbă Bezier în două părți printr-o valoare arbitrară a parametrului .
Avantajul algoritmului este stabilitatea sa de calcul mai mare în comparație cu metoda directă.
Având în vedere un polinom Bernstein B de gradul n
unde b este baza polinomului Bernstein , polinomul în punctul t 0 poate fi definit folosind relația de recurență
Apoi definiția punctului poate fi definită în pașii algoritmului. Rezultatul este dat de:
De asemenea, o curbă Bézier poate fi împărțită într-un punct în două curbe cu puncte de ancorare corespunzătoare:
Interpretarea geometrică a algoritmului lui de Castelljou este simplă:
Următoarea ilustrație demonstrează acest proces pentru o curbă Bezier cubică:
De menționat că punctele intermediare obținute în timpul procesului de construcție sunt punctele de referință pentru două noi curbe Bezier, care coincid exact cu cea inițială, și împreună dau curba Bezier originală. Acest algoritm nu numai că determină punctul curbei la , ci și împarte curba în două părți la , și oferă, de asemenea, o descriere a celor două sub-curbe în formă Bezier (în reprezentare parametrică ).
Algoritmul descris este valabil pentru curbele Bezier neraționale. Pentru a calcula curbe raționale în , puteți proiecta un punct în ; de exemplu, o curbă în spațiul 3D trebuie să aibă puncte de control și greutăți proiectate în puncte de control al greutății . Apoi, de obicei, algoritmul continuă să interpoleze în . Punctele 4D rezultate pot fi proiectate înapoi în spațiul 3D folosind diviziunea în perspectivă.
În general, operațiile pe curbe (sau suprafețe) raționale sunt echivalente cu operațiile pe curbe neraționale într-un spațiu proiectiv . Reprezentarea punctelor de ancorare ca ponderate este adesea utilă pentru definirea curbelor raționale.