Bezierjeva krivulja

Iz MaFiRaWiki

Vsebina

Definicija

Bezierjevo krivuljo definiramo z Bernsteinovim polinomom. To so parametrični polinomi s parametrom t. Ta parameter se nahaja na intervalu [0,1]. Njihov zapis je naslednji:

B^{n}_{i}(t) = {n \choose i}t^{i}(1-t)^{n-i}

Zapis Bezierjeve krivulje je:

P(t) = {n \choose i}t^{i}(1-t)^{n-i}T_{i},

kjer je i = 0,1,...,n in Ti kontrolne točke.

de Casteljauova metoda

Računanje točk na Bezierjevi krivulji preko Bernsteinovih polinomov zahteva veliko računskih operacij. De Casteljau je razvil hitrejšo, numerično stabilno metodo računanja točk na Bezierjevi krivulji. Če imamo 4 kontrolne točke T0,T1,T2,T3, potem dobimo Bezierjevo krivuljo

p^{r}_{i}(t) = (1-t)T^{r-1}_{i}(t) + tT^{r-1}_{i+1}(t)

in je

p^{0}_{i}(t) = p_{i}


Kubične krivulje

Če želimo narisati kubično Bezierjevo krivulje, potrebujemo 4 kontrone točke in dobimo enačbo:

p(t) = T0(1 − t)3 + 3T1t(1 − t)2 + 3T2t2(1 − t) + T3t3.

Sicer so pa kubične Bezierjeve krivulje najenostavnejša oblika krivulj, ker se jih enostavno definira s 4 kontrolnimi točkami. Slabost krivulj pa je, da moramo kontrolno točko prestaviti za veliko razdaljo, če želimo bolj nagniti krivuljo v določeno smer.


Zgodovina

Bezierjeve krivulje se imenujejo po francoskem inženirju Bezierju, ki je delal v razvojnem oddelku inštituta Renault. Želel je razviti postopek, po katerem bi bilo mogoče s spreminjanjem nekaj geometrijskih parametrov enostavno oblikovati krivulje in tako dobiti čim lepše oblike avtomobilov. Na začetku so si Bezier in njegovi sodelavci pomagali tako, da so kovinske trakove napenjali okoli v desko zabite žeblje.

Bezier je ugotovil, da morajo biti krivulje vsaj dvakrat zvezno odvedljive, morajo biti dobro oblikovane in dati se jih mora kontrolirati. Ti pogoji ustrezajo Bernsteinovim polinomom.


Primer

Želimo narisati kubično Bezierjevo krivuljo, ki jo naračunamo z Bernsteinovimi polinomi ali pa po deCasteljauovem algoritmu. V obeh primerih za iste kontrolne točke dobimo enako sliko.

Primer slike za točke T0(0,0),T1(0,3),T2(3,3),T3(3,0)

Slika:Krivulja.jpg

Da premaknemo krivuljo, moramo točko T2(3,3) v točko T3'(8,3), ostale točke pa ostanijo iste. Dobimo sliko

Slika:Krivulja_1.jpg
Osebna orodja