4.6. 4.6. Csomóérték beszúrása, törlése

Abban az esetben, ha egy csomóértékeivel, kontrollpontjaival és fokszámával adott B-szplájn-görbe alakja nem változtatható kellő mértékben, csomóértékek beszúrásával (inzertálásával) – ami kontrollpontok beszúrását eredményezi – növelhetjük a változtathatóságot. Ennek olyan műveletnek kell lennie, amely nem változtatja meg a görbe alakját. Erre szolgál az alábbiakban ismertetett, Boehm által kidolgozott eljárás.

Tekintsük az csomóértékekkel adott normalizált B-szplájn alapfüggvényt, valamint az értéket! Az csomóértékeket az alábbiak szerint definiáljuk:

vagyis az csomóérték csak -ben különböznek -től. Jelöljük -val az csomóértékkel definiált normalizált B-szplájn alapfüggvényeket!

4.17. Tétel. A fenti feltételek esetén az és függvények között az

összefüggés áll fenn.

Bizonyítás. Az állítás és esetén nyilvánvalóan igaz, mivel ezekben az esetekben a számításba veendő csomóértékek megegyeznek a két csomóvektorban. A eseteket szerinti teljes indukcióval bizonyítjuk.

i) esetén

ii) -ről -ra: Itt három részre ágazik el a bizonyítás. A , és eseteket különböztetjük meg. Először a esetet bizonyítjuk.

a)

A normalizált B-szplájn alapfüggvény definíció szerint

A -re tett feltevés alapján ez

alakban írható fel. Felhasználva (4.11) definícióját, és átrendezve

Az együtthatójának első tagját átalakítjuk

Hasonló átalakításokkal együtthatójának második tagja

alakra hozható. Ezeket behelyettesítve a (4.12) összefüggésbe

b) esetén az állítás

mivel . rekurzivitását felhasználva az

alakot kapjuk, amire az indukciós feltevést alkalmazva

A (4.11) definíciót felhasználva a jobb oldal

alakú lesz, ami az

azonosság következtében

c) esetén az állítás

mivel . A bizonyítás további része a esetével analóg.

A csomóértékek beszúrása a kontrollpontok számának növekedését, valamint néhány kontrollpont helyzetének megváltozását eredményezi. A régi és új kontrollpontok közötti kapcsolatra vonatkozik a következő tétel.

4.18. Tétel. A fenti feltételeket figyelembe véve

Bizonyítás. A bizonyítást csak az esetre kell elvégeznünk, mivel egyébként az új csomóértéknek nincs hatása, tehát az új és régi kontrollpontok egybeesnek. A 4.17. tételt felhasználva, az érintett kontrollpontok által meghatározott ív

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

Az első összegzés felső határát -re növelhetjük, mivel ; és ugyanilyen okból a második összegzés alsó határát -re csökkenthetjük. Ezek után

Az jelöléssel

ahol .

A 4.18. tétel a de Boor-féle rekurzió és a csomóértékek inzertálása közötti kapcsolatot is megmutatja. Az csomóérték beszúrása azt eredményezi, hogy darab kontrollpontot () helyettesítünk darab új kontrollponttal (). Ezek az új kontrollpontok megegyeznek az paraméterhez tartozó pont de Boor-féle algoritmussal való meghatározása során kapott közbülső pontok első oszlopával, vagyis , . Ha , vagyis ha a beszúrandó érték megegyezik egy csomóértékkel, akkor , amiből

Ebben az esetben tehát csak kontrollpontot kell kicserélni.

Ugyanazt az értéket ismételten beszúrhatjuk, ami úgy is értelmezhető, hogy egynél nagyobb multiplicitású csomóértéket szúrunk be. A 4.18. tételt ebben az irányban általánosítjuk.

4.19. Tétel. Az multiplicitású érték, -szeres beszúrása a következő változtatásokat eredményezi:

Ezeket a pontokat a de Boor-féle sémával is megkapjuk, a kékkel jelzett kontrollpontokat a pirossal jelzetekkel kell helyettesíteni (lásd a 4.12. ábrát).

4.12. ábra - Az Az u érték z -szeres beszúrásakor a kékkel jelzett kontrollpontokat a pirossal jelzetekkel kell helyettesíteni érték Az u érték z -szeres beszúrásakor a kékkel jelzett kontrollpontokat a pirossal jelzetekkel kell helyettesíteni-szeres beszúrásakor a kékkel jelzett kontrollpontokat a pirossal jelzetekkel kell helyettesíteni

Az u érték z -szeres beszúrásakor a kékkel jelzett kontrollpontokat a pirossal jelzetekkel kell helyettesíteni

A csomóérték többszörös inzertálásának egy hasznos mellékterméke a B-szplájn-görbe Bézier-pontjainak előállítása, azaz olyan egymáshoz a megfelelő rendben kapcsolódó Bézier-görbék kontrollpontjainak az előállítása, mely Bézier-görbék éppen az adott B-szplájn-görbét írják le. Ehhez pusztán azt kell elérni, hogy minden csomóérték multiplicitása legyen. Ekkor ugyanis, mint ahogy azt a 4.3. szakaszban láttuk, az egymást követő csomóértékek közötti B-szplájn-görbeív a csomópont inzertálása során kapott új kontrollpontok által meghatározott Bézier-görbe lesz.

A de Boor-algoritmus és a B-szplájn-görbe Bézier-görbe konverzióval könnyen belátható a B-szplájn-görbe hullámzáscsökkentő tulajdonsága.

4.20. Tétel. A B-szplájn-görbét bármely sík (vagy egyenes) legfeljebb annyi pontban metszi, mint kontrollpoligonját.

Bizonyítás. A B-szplájn-görbe Bézier-görbe konverzió során a de Boor-algoritmussal állítjuk elő az új kontrollpontokat. Ez gyakorlatilag a kontrollpoligon néhány „sarkának” levágását jelenti, mely művelet nem növelheti a metszéspontok számát. Az eredményül kapott Bézier-görbékre és kontrollpoligonjaikra pedig érvényes a 3.13. tétel, vagyis a Bézier-görbe hullámzáscsökkentő tulajdonsága.

A 4.13. ábra harmadfokú B-szplájn-görbét és annak Bézier-pontjait szemlélteti.

4.13. ábra - Harmadfokú B-szplájn-görbe és Bézier-pontjai

Harmadfokú B-szplájn-görbe és Bézier-pontjai

A csomóérték-beszúrás inverze, a csomóértéktörlés, azt jelenti, hogy ugyanazt a görbét kevesebb csomóértékkel, következésképpen kevesebb kontrollponttal írjuk le. Ezt a műveletet azonban általában nem lehet végrehajtani. Vannak természetesen kivételes helyzetek amikor elvégezhető, ilyen például, ha egy korábbi csomóérték-beszúrással létrehozott csomóértéket akarunk kitörölni.