4.3. 4.3. de Boor-algoritmus

A B-szplájn-görbe valamely paraméterhez tartozó pontját meghatározhatjuk az alapfüggvények értékének kiszámításával. Ezek a számítások azonban rosszul kondicionáltak, különösen nagy eltérést mutató csomóérték-intervallumok esetén.

Stabilabb alternatív megoldás a most bemutatandó rekurzív felosztáson alapuló de Boor-algoritmus. Tegyük fel, hogy ! Ekkor

A második összegzésen a indextranszformációt végrehajtva

Az első összegzés alsó határát -re növelhetjük, mivel , ha ; valamint a második összegzés felső határát -re csökkenthetjük, mivel , ha . Ezért

ahonnan az

jelöléseket bevezetve az

összefüggést kapjuk. A pont a és végpontú szakasz pontja, és a pontok száma eggyel kevesebb, mint a pontoké. Az függvényre megismételjük a fenti eljárást, aminek eredményeként a pontokat kapjuk. Ezeket a lépéseket alkalmazva egészen -ig jutunk. A (4.6) jelöléseket általánosítva

az -edik lépésénél

az -edik lépésnél

vagyis a görbe paraméterhez tartozó pontját kapjuk.

Ez az eljárás úgy is felfogható, hogy a kontrollpoligon oldalait rekurzívan felosztjuk mindaddig, amig csak egyetlen pontot kapunk. Az -edik lépésben a , végpontú szakaszokat arányban osztjuk fel, ahol minden esetben. Tehát az osztópontok a szakaszok végpontjainak konvex kombinációi. Ezt a rekurzív felosztáson alapuló algoritmust de Boor-algoritmusnak nevezzük.

Az paraméternél a de Boor-algoritmussal kapott pontok a

háromszögalakba rendezhetők.

4.11. ábra - Harmadfokú B-szplájn-görbe Harmadfokú B-szplájn-görbe u\in\left[u_{5},u_{6}\right) pontjának meghatározása a de Boor-algoritmussal pontjának meghatározása a de Boor-algoritmussal

Harmadfokú B-szplájn-görbe u\in\left[u_{5},u_{6}\right) pontjának meghatározása a de Boor-algoritmussal

Az algoritmust szemlélteti a 4.11. ábra esetére. Ennek az algoritmusnak a segítségével is belátható a 4.12. tétel, azaz a B-szplájn-görbe konvex burok tulajdonsága.

Amennyiben az és () csomóértékek multiplicitása , azaz

akkor speciális esetként a de Casteljau-algoritmust kapjuk, következésképpen a B-szplájn-görbe speciális eseteként a Bézier-görbét. Az utóbbi állítás természetesen a 4.6. tétellel is igazolható.

Annak igazolásához, hogy a de Boor-algoritmusnak speciális esete a de Casteljau-algoritmus vegyük először azt az esetet amikor és . Ekkor ugyanis

ami a de Casteljau-algoritmus.

Ha a intervallumról a tetszőleges intervallumra áttérünk, azaz és , akkor

ami továbbra is a de Casteljau-algoritmus.