De Casteljau-algoritmen

Frå testwiki
Hopp til navigering Hopp til søk

De Casteljau-algoritmen innanføre numerisk analyse er ein rekursiv algoritme for å rekna ut bézier-kurver eller polynombernsteinform.

Algoritmen er tregare enn å rekna ut bézier-kurva direkte, men algoritmen har føremonen med at han er meir numerisk stabil.

Definisjon

La ci vera kontrollpunkta til kurva.

Det initielle steget i algoritmen er:

ci0=ci

For kvar r={1,..n} reknar ein ut[1]:

cir=(1t)cir1+tci+1r1

Der i={0,1,..,nr}.


Algoritmen kan illustrerast ved ein trestruktur. Første kolonnen utgjer verdiane for ci0, altså dei initielle verdiane til algoritmen. Andre kolonnen er resultatet av første iterasjon av algoritmen. Det siste punktet algoritmen reknar ut er c0n=p(t), altså den siste kolonnen. Dette svarar til bézier-kurva av grad n.

c0=c0(0)c0(1)c1=c1(0)c0(n)cn1=cn1(0)cn1(1)cn=cn(0)

Kvar cir er i seg sjølv ei bézierkurve med grad r.

Døme

Me går ut i frå tre kontrollpunkt c0,c1,c2.

c0(0)=c0,c1(0)=c1,c2(0)=c2

Første iterering:

c0(1)=c0(0)(1t0)+c1(0)t0=c0(1t0)+c1t0

c1(1)=c1(0)(1t0)+c2(0)t0=c1(1t0)+c2t0

Andre og siste iterering:

c0(2)=c0(1)(1t0)+c1(1)t0

=c0(1t0)(1t0)+c1t0(1t0)+c1(1t0)t0+c2t0t0

=c0(1t0)2+c12t0(1t0)+c2t02

Som er bézier-kurva av grad 2 funnen ut i frå dei gjevne kontrollpunkta c0,c1,c2.

Kjelder