Görbék és felületek modellezése

Juhász, Imre

Új Széchenyi Terv logó.

Miskolci Egyetem

Kelet-Magyarországi Informatika Tananyag Tárház

Kivonat

Nemzeti Fejlesztési Ügynökség http://ujszechenyiterv.gov.hu/ 06 40 638-638

Lektor

Nagyné Szilvási Márta

Budapesti Műszaki és Gazdaságtudományi Egyetem

A tananyagfejlesztés az Európai Unió támogatásával és az Európai Szociális Alap társfinanszírozásával a TÁMOP-4.1.2-08/1/A-2009-0046 számú Kelet-Magyarországi Informatika Tananyag Tárház projekt keretében valósult meg.


Tartalom

Előszó
1. Görbék modellezése
2. Interpoláló görbék
2.1. Lagrange-interpoláció
2.2. Hermite-ív
2.3. Interpoláló szplájnok
2.4. interpoláló szplájnok
2.4.1. Catmull-Rom-szplájn
2.4.2. Overhauser-szplájn
2.5. Ferguson-szplájn
2.6. Az interpoláló görbék paraméterezése
3. Bézier-görbe
3.1. de Casteljau-algoritmus
3.2. Bézier-görbe leírása Bernstein-polinommal
3.3. A Bézier-görbe néhány tulajdonsága
3.4. A Bézier-görbe deriváltja
3.5. A deriváltak és a de Casteljau-algoritmus kapcsolata
3.6. Bézier-görbe kettévágása
3.7. Bézier-szplájn
3.8. Fokszámnövelés
3.9. Bézier-görbe közelítése töröttvonallal
3.10. Interpoláció Bézier-görbével
4. B-szplájn-görbe
4.1. Normalizált B-szplájn alapfüggvény
4.1.1. Többszörös csomóértékek
4.1.2. A B-szplájn alapfüggvény deriváltja
4.1.3. Lineáris függetlenség
4.2. A B-szplájn-görbe és tulajdonságai
4.3. de Boor-algoritmus
4.4. B-szplájn-görbe deriváltja
4.5. Folytonosság
4.6. Csomóérték beszúrása, törlése
4.7. Fokszámnövelés
4.8. Interpoláció B-szplájn-görbével
4.9. Periodikus B-szplájn-görbék
5. Racionális görbék
5.1. Racionális Bézier-görbe
5.1.1. Tulajdonságok
5.1.2. A kúpszeletek leírása
5.1.3. Racionális de Casteljau-algoritmus
5.1.4. A racionális Bézier-görbe deriváltja
5.1.5. Fokszámnövelés
5.2. Racionális B-szplájn-görbe
5.2.1. A racionális B-szplájn-görbe tulajdonságai
5.2.2. Racionális de Boor-algoritmus
5.2.3. A racionális B-szplájn-görbe deriváltja
5.2.4. Csomóérték beszúrása, fokszámnövelés
6. Kontrollpont alapú görbemodellezés
7. Felületek modellezése
7.1. Vonalfelületek, két görbét interpoláló felület
7.2. Mozgó görbe által súrolt felület
7.3. Görbék tenzori szorzataként előállított felületek
8. Coons-foltok
8.1. Bilineárisan súlyozott Coons-foltok
8.2. Bikubikusan súlyozott Coons-foltok
8.3. Hermite-féle bikubikus folt
8.3.1. A twist vektor előállítása
8.4. Elsőrendben folytonosan kapcsolódó Coons-foltok
9. Bézier- és B-szplájn-felületek
9.1. Bézier-felület
9.1.1. A Bézier-felületek tulajdonságai
9.1.2. Fokszámnövelés
9.1.3. Deriválás
9.1.4. Kapcsolódó Bézier-felületek
9.1.5. Interpoláló Bézier-felületek
9.2. B-szplájn-felületek
9.2.1. Csomóérték beszúrása
9.2.2. Deriválás
9.2.3. Zárt felületek modellezése
9.3. Racionális Bézier- és B-szplájn-felületek
A. A csatolt programok használatához
Irodalomjegyzék

Az ábrák listája

2.1. A Lagrange-interpolációval kapott görbe oszcillálása
2.2. Harmadfokú Hermite-polinomok
2.3. Az ábrán Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez. és Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez. egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez. hosszát növeltük, megfigyelhető, hogy Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez. növelésével a görbe hogyan simul az érintő egyeneshez.
2.4. Az érintővektorok meghatározása a Catmull-Rom-spline esetén; az ábra a Az érintővektorok meghatározása a Catmull-Rom-spline esetén; az ábra a \tau=0.5 esetet szemlélteti. esetet szemlélteti.
2.5. Az alakparaméter hatása a Catmull-Rom-szplájnra; Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak (kék), Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak (fekete), Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak (piros); az érintővektorok a Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak értékhez tartoznak
2.6. Az Overhauser-szplájn Az Overhauser-szplájn \mathbf{a}_{i}\left(u\right) ívének előállítása ívének előállítása
2.7. Centripetális paraméterezésű Ferguson-szplájnok különböző peremfeltételekkel: természetes (fekete), kvadratikus (piros), harmadrendű (kék). A kezdő- és végpontban ugyanazt a peremfeltételt használtuk.
2.8. Csak a paraméterezésükben különböző Ferguson-szplájnok: egyenközű (fekete), centripetális (piros), húrhosszal arányos (kék)
3.1. A A \mathbf{b}_{0},\mathbf{b}_{1},\mathbf{b}_{2} pontokkal meghatározott parabola t_{1}=1/3 és t_{2}=3/2 pontjainak szerkesztése pontokkal meghatározott parabola A \mathbf{b}_{0},\mathbf{b}_{1},\mathbf{b}_{2} pontokkal meghatározott parabola t_{1}=1/3 és t_{2}=3/2 pontjainak szerkesztése és A \mathbf{b}_{0},\mathbf{b}_{1},\mathbf{b}_{2} pontokkal meghatározott parabola t_{1}=1/3 és t_{2}=3/2 pontjainak szerkesztése pontjainak szerkesztése
3.2. A A \mathbf{b}_{0}^{4}\left(1/3\right) pont szerkesztése a de Casteljau-algoritmussal pont szerkesztése a de Casteljau-algoritmussal
3.3. A másod- és harmadfokú Bernstein-polinomok
3.4. Negyedfokú Bézier-görbe és kontrollpoligonjának konvex burka
3.5. Harmadfokú Bézier-görbe és hodográfja (Harmadfokú Bézier-görbe és hodográfja (1/3 -ra kicsinyítve)-ra kicsinyítve)
3.6. Szinguláris pontú Bézier-görbék (bal oldal) és Szinguláris pontú Bézier-görbék (bal oldal) és 1/ fokszámra kicsinyített hodográfjuk (jobb oldal): a) lapos pont, b) inflexiós pont, c) elsőfajú csúcspontfokszámra kicsinyített hodográfjuk (jobb oldal): a) lapos pont, b) inflexiós pont, c) elsőfajú csúcspont
3.7. A de Casteljau-algoritmussal előállított pontokkal megkapjuk a görbe érintőjét és simulósíkját is
3.8. Negyedfokú Bézier-görbe és a kettévágásával kapott Bézier-görbék kontrollpoligonja
3.9. A Bézier-görbe alakja kevésbé hullámzik, mint a kontrollpoligonjáé
3.10. A Bézier-görbét egy egyenes legfeljebb annyi pontban metszi, mint kontrollpoligonját
3.11. C^{2} kapcsolódó Bézier-görbék kontrollpoligonjai kapcsolódó Bézier-görbék kontrollpoligonjai
3.12. A kezdőpontbeli görbülettel arányos területű háromszög
3.13. Ötödfokú Bézier-görbe és az őt leíró hatodfokú Bézier-görbe kontrollpoligonja
4.1. Első-, másod- és harmadfokú normalizált B-szplájn alapfüggvények
4.2. Az Az N_{i}^{3}\left(u\right) függvényt alkotó C^{1} kapcsolódó parabolaívek függvényt alkotó Az N_{i}^{3}\left(u\right) függvényt alkotó C^{1} kapcsolódó parabolaívek kapcsolódó parabolaívek
4.3. Harmadfokú egyenközű normalizált B-szplájn alapfüggvények
4.4. Különböző és egybeeső csomóértékeken adott másodfokú normalizált B-szplájn alapfüggvények
4.5. u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon miatt az u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon, u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon, u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon egyenlőségek teljesülnek az u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon intervallumon
4.6. Az Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik és Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik csomóvektorokon értelmezett Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik függvény az Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik intervallumon megegyezik
4.7. Harmadfokú B-szplájn-görbét alkotó ívek. Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7} és Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7} multiplicitása Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7}, ezért a görbe kezdőpontja Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7}, végpontja Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7}
4.8. A A \mathbf{d}_{4} kontrollpont elmozdításakor a harmadfokú B-szplájn-görbének csak az \left[u_{4},u_{8}\right] fölötti része változik meg kontrollpont elmozdításakor a harmadfokú B-szplájn-görbének csak az A \mathbf{d}_{4} kontrollpont elmozdításakor a harmadfokú B-szplájn-görbének csak az \left[u_{4},u_{8}\right] fölötti része változik meg fölötti része változik meg
4.9. Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon, Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon bárhol lehet a Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon szakaszon, Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon pedig a Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon szakaszon
4.10. Egybevágó kontrollpoligonú, különböző rendű B-szplájn-görbék, és az íveket meghatározó kontrollpontok konvex burkai
4.11. 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
4.12. 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
4.13. Harmadfokú B-szplájn-görbe és Bézier-pontjai
4.14. Interpoláló harmadfokú B-szplájn-görbék. Az interpolálandó pontok Interpoláló harmadfokú B-szplájn-görbék. Az interpolálandó pontok t_{i} paraméterének meghatározása: a) egyenközű, b) húrhosszal arányos, c) centripetális paraméterének meghatározása: a) egyenközű, b) húrhosszal arányos, c) centripetális
4.15. Zárt B-szplájn-görbék
5.1. A kontrollpont súlyának és multiplicitásának hatása a görbe alakjára
5.2. A A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív kezdő- és A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív végpontjával, az ezekbeli érintők A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív metszéspontjával, valamint az A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív közbülső ponttal adott kúpszeletív
5.3. Az Az x tengelyre szimmetrikus, 2\alpha<\pi középponti szögű körív és kontrollpontjai tengelyre szimmetrikus, Az x tengelyre szimmetrikus, 2\alpha<\pi középponti szögű körív és kontrollpontjai középponti szögű körív és kontrollpontjai
6.1. Hatványbázisban kontrollpontokkal adott negyedfokú görbe
6.2. A konvex burok tulajdonsággal rendelkező, de nem hullámzáscsökkentő harmadfokú görbe
7.1. Felület paraméteres leírása
7.2. Forgáshenger
7.3. Forgáskúp
7.4. Egyköpenyű forgáshiperboloid
7.5. A generáló görbe a vezérgörbe kísérő triéderéhez kapcsolt
7.6. A generáló görbe különböző tájolásával kapott felületek
7.7. A kísérő triéder megpördül a nulla görbületű pont környezetében
7.8. A kísérő triéder forgását minimalizáló eljárás megszünteti a csavarodást
7.9. Forgásfelület származtatása
7.10. Csavarvonal vezérgörbéjű csőfelület származtatása
7.11. Változó sugarú kör által súrolt felület
8.1. A bilineáris Coons-folt létrehozása
8.2. C^{0} kapcsolódó bilineárisan súlyozott Coons-foltokkapcsolódó bilineárisan súlyozott Coons-foltok
8.3. A bikubikus Coons-folt megadása; az érintőszalagot csak a A bikubikus Coons-folt megadása; az érintőszalagot csak a v irányú határgörbék mentén tüntettük fel irányú határgörbék mentén tüntettük fel
8.4. Hermite-féle bikubikus folt
9.1. Bézier-felület létrehozása Bézier-felület létrehozása \left(n=2,m=3\right) ; az \mathbf{a}_{i} kontrollpontok pályagörbéit adjuk meg; az Bézier-felület létrehozása \left(n=2,m=3\right) ; az \mathbf{a}_{i} kontrollpontok pályagörbéit adjuk meg kontrollpontok pályagörbéit adjuk meg
9.2. Bézier-felület paramétervonalának kontrollpontjai
9.3. Bézier-felület kettévágása
9.4. Elsőrendben folytonosan kapcsolódó Bézier-felületek
9.5. Dupin-féle ciklid approximációja mindkét irányban harmadfokú periodikus B-szplájn-felülettel

Előszó

A számítógéppel segített görbe- és felületmodellezés a számítógéppel segített geometriai tervezés (Computer Aided Geometric Design – CAGD) legfontosabb területe. A CAGD viszonylag fiatal tudományág, önálló szakterületté válása az 1980-as évek elejére tehető. A görbék és felületek tervezésének legfontosabb, de nem kizárólagos alkalmazási területei a különböző mérnöki tervezőrendszerek. Ezen tudományterület kialakulásában elévülhetetlen érdemei vannak az autó-, repülőgép- és hajógyáraknak, ahol az 1950-es években elkezdték a számítógéppel segített tervezőrendszerek fejlesztését, és a 60-as években már a kor informatikai szinvonalának megfelelő rendszereket használták a tervezők.

Jegyzetünk célja a görbék és felületek számítógéppel támogatott tervezését magába foglaló bevezető kurzusok támogatása. Az anyag elektronikus terjesztésre készült, ezért igyekszik kihasználni az ebből fakadó előnyöket. Ilyen előnyök a színek használata, a mozgatható ábrák (a szürke hátterűek), valamint a csatolt demonstrációs programok, melyeket a „DEMO” szövegre kattintva lehet indítani.

A tananyag megértéséhez alapvető lineáris algebrai, analízisbeli és természetesen geometriai ismeretek szükségesek, melyek azonban nem haladják meg a BSc alapkurzusok során elsajátítható ismeretek szintjét.

Az egyes témaköröknél nem hivatkozunk tételesen a vonatkozó publikációkra, további ismereteket a jegyzet végén található irodalomjegyzékben szereplő átfogó munkákból szerezhet az olvasó. Természetesen az Internet is jól használható ismeretszerzésre, megoldandó problémák keresésére – kellő elővigyázatosság mellett. (Hiteles forrásokat, például folyóiratcikkeket, könyveket, egyetemi kiadványokat használjanak, ugyanis attól még nem lesz valami igaz, hogy kinyomtatták, vagy kitették egy honlapra!)

1. fejezet - Görbék modellezése

Görbék leírására alapvetően három lehetőség van:

  • az explicit,

  • az implicit,

  • és az paraméteres leírási mód.

Ezek közül az első kettő csak síkgörbék, a harmadik mind sík-, mind térgörbék leírására alkalmas.

A számítógéppel segített tervezés számára a paraméteres leírás a legfontosabb. Az implicit leírást sokkal ritkábban használjuk, az explicitet pedig alig, mert ez nagymértékben függ a koordináta-rendszertől. A paraméteres leírás azért is hasznos, mert sík- és térgörbe (sőt dimenziójú térbeli görbe) is leírható vele. A paraméteres és implicit leírások közötti áttérés általában nem lehetséges, bár nagyon jó lenne, ugyanis mindkét leírási módnak vannak előnyei és hátrányai. Annak eldöntésére például, hogy egy pont illeszkedik-e a görbére az implicit alak a legalkalmasabb, a kirajzoláshoz (a görbe bejárásához) viszont a paraméteres.

Az alkalmazások, a konkrét tervezési feladatok során általában nem ismerjük a görbéket meghatározó egzakt matematikai formulákat, melyek az egyes leírási módokhoz szükségesek. Sokkal gyakoribb, hogy olyan feltételeket ismerünk, melyeket az alakzatnak ki kell elégítenie, például adott pontokon át kell haladnia, vagy adott egyenest érintenie kell. Másrészt a tervezés során funkcionális igényeken kívül esztétikai követelmények is vannak a tervezendő objektummal szemben, és ezek a kívánalmak nagyon nehezen fejezhetők ki, illetve az ezeket kielégítő adatok nehezen írhatók le, matematikai formulákkal. Erre sokkal alkalmasabbak a tervezői kreativitás kibontakozását segítő, az alkotó térszemléletére tá-maszkodó geometriai adatok, melyekkel interaktív módon, állandó vizuális visszacsatolás mellett adható meg, illetve módosítható a tervezendő objektum alakja.

A fentiek miatt a számítógéppel segített geometriai tervezőrendszerek használata során a legritkább esetben van szükségünk, illetve van lehetőségünk görbék és felületek egyenletének megadására. A rendszerek számos görbemegadási, modellezési lehetőséget biztosítanak. Ezzel lehetővé teszik, hogy a felhasználók a tervezői gondolkodáshoz közelálló módon adhassák meg az objektumokat, majd a rendszer ebből automatikusan létrehozza az egységes belső tároláshoz szükséges adatrendszert. Ezt a belső tárolást azonban az átlagos felhasználónak nem kell ismernie.

Görbék tervezésekor (modellezésekor) a koordinátafüggvények közvetlen megadása helyett a görbét jellemző, azt egyértelműen meghatározó, szemléletes, a tervező számára könnyen kezelhető geometriai, vagy geometriai jelentéssel bíró adatokat adunk meg.

Az egyik általánosan elterjedt módszer, hogy olyan pontokat adunk meg, melyen a görbének át kell haladnia. A megadott pontokon áthaladó görbéket interpoláló, vagy interpolációs görbének nevezzük.

A másik széles körben elterjedt modellezési módszer az approximáció, amikor a görbe nem halad át az adott pontokon, legalábbis nem mindegyiken, de az adott pontok határozzák meg. Az ilyen görbe tehát csak közelíti az adott pontokat, ezért approximáló, vagy approximációs görbének nevezzük.

Az interpoláló és approximáló görbék előállítására két alapvetően különböző stratégia létezik. Az egyik lehetőség, hogy az összes pontot (és esetleges kiegészítő adatokat) figyelembe véve egyetlen görbét határozunk meg. A másik megközelítés az, amikor a görbét több, egymáshoz valahányad rendben folytonosan kapcsolódó görbeívből állítjuk elő. Az ilyen technikával előállított görbét szplájnnak (spline) nevezzük, manapság ezt alkalmazzák legtöbb esetben.

Lábjegyzet. A spline eredetileg a hajóépítők által használt „flexibilis vonalzót”, gyakorlatilag egy hajlékony, rugalmas lécet jelentett.

Görbék folytonos kapcsolódásáról többféle értelemben is beszélhetünk. Ezek definiálásához tekintsük az és görbéket.

1.1. Definíció. Azt mondjuk, hogy az görbe az –hez tartozó pontban a paraméter szerint –edrendben folytonosan kapcsolódik a görbéhez annak paraméterértékéhez tartozó pontjában, ha

A paraméter szerinti –edrendű folytonos kapcsolódást –el jelöljük. A folytonos kapcsolódáshoz nem szükséges teljesülése, bár szplájn-görbék leírása esetén általában áll fenn. azt jelenti, hogy a két görbének közös az adott paraméterértékekhez tartozó pontja - -, jelentése pedig .

A folytonos kapcsolódásnak ez a formája a paraméterezéstől függ, vagyis egy megengedett paramétertranszformációt végrehajtva valamelyik görbén megszünhet a kapcsolódás, bár a görbék alakja természetesen nem változik, vizuálisan ugyanolyan sima átmenetet tapasztalunk a két görbe között. Ezért szükségessé vált a folytonos kapcsolódásnak olyan értelmezése, amely a görbéknek a paraméterezéstől független, belső geometriai tulajdonságaira épül (érintő, simulósík, görbület, torzió). Az –edrendű geometriai folytonos kapcsolódás szokásos jelölése vagy , illetve a vizuális folytonosság szóhasználat esetén (a definíció ugyanaz) vagy . Mi a továbbiakban a jelölést használjuk.

és jelentése megegyezik , illetve jelentésével. a közös pontban az érintők (az egyenesek és nem feltétlenül a deriváltak) egybeesését, az előzőek mellett a simulósík és a görbület megegyezését, pedig a pontbeli torzió megegyezését is jelenti.

Az interpoláló és approximáló görbék fontos tulajdonsága, hogy hogyan viselkednek, ha az adott pontok valamelyikének helyét megváltoztatjuk. Ha ilyen esetben a teljes görbe alakja változik, akkor azt mondjuk, hogy a görbe globálisan változtatható. Ha a görbének csak valamely jól meghatározható íve változik, akkor lokálisan változtathatónak mondjuk a görbét.

Az interpolálandó, illetve approximálandó pontok megadásával az előállítandó görbe alakját írjuk elő, a pontokat összekötő töröttvonal alakját követő görbét szeretnénk előállítani. Ha az eredményül kapott görbe alakja felerősíti a töröttvonal hullámzását, akkor azt mondjuk, hogy a görbe oszcillál, ha pedig inkább csökkenti azt, akkor azt mondjuk, hogy a görbe hullámzáscsökkentő (variation diminishing) tulajdonságú.

Az interpolálciós és approximációs feladatoknak nyilván végtelen sok megoldása van és ezek között nincs egyetlen, minden szempontból optimális. Ezért van létjogosultsága több módszernek, melyek közül a tervező választja ki az adott feladat szempontjából optimális modellezési módszert. Az ismertetendő módszerek sík- és térgörbék előállítására egyaránt alkalmasak.

2. fejezet - Interpoláló görbék

A görbeinterpoláció alapproblémája a következő: adott pontokhoz keresünk olyan görbét, amely azokra illeszkedik. A pontok mellett gyakran más információk is ismertek a keresett görbéről. Ilyen adat lehet például az érintőirány, vagy maga az érintővektor (a keresett görbe deriváltja).

A feladatnak nyilván végtelen sok megoldása van és ezek között nincs egyetlen, minden szempontból optimális, ezért van létjogosultsága több módszernek. Miután sok megoldása van a fenti alulhatározott feladatnak, igen fontos szerepe van a tervezőnek, azaz annak a személynek aki kiválasztja az adott feladat szempontjából a legjobbat. A tervezőnek többnyire valamilyen esztétikai és (vagy) funkcionális igényt kielégítő alakot kell előállítania.

Ebben a fejezetben néhány kifejezetten interpolációs módszert mutatunk be, de ezzel nem zárjuk le az interpoláló görbék tárgyalását, hiszen a későbbi fejezetekben található módszerekel is tudunk interpoláló görbéket előállítani.

2.1. Lagrange-interpoláció

Adottak a pontok, és a hozzájuk rendelt egymástól különböző , paraméterértékek.

Keresünk olyan legfeljebb -edfokú polinomot, amelyre

teljesül.

Itt és a továbbiakban csak azt feltételezzük, hogy az értékek egymástól különbözőek (ez a feltétel elegendő a megoldhatósághoz), azonban a gyakorlatban ezeket szinte mindig módon adjuk meg.

A feladat egy megoldása a

ahol a Lagrange-féle interpolációs alappolinom, azaz

definíciójából következik, hogy és , ahol a Kronecker-delta, azaz

2.1. ábra - A Lagrange-interpolációval kapott görbe oszcillálása

A Lagrange-interpolációval kapott görbe oszcillálása


Az -edfokú interpolációs polinomnak igen kellemetlen tulajdonsága az oszcillálás. Erre mutat példát a 2.1. ábra. Ezen látható, hogy az interpolációs görbén olyan kinyúlások, kiugrások vannak, amelyeket nem várnánk az adott pontok alapján. Ezen tulajdonsága miatt a Lagrange-interpolációt ritkán használják görbe tervezéshez. Az ok amiért mégis szólunk róla az, hogy a legtöbb interpolációs eljárás polinomot használ azok gyors, egyszerű kiértékelhetősége és számos más kedvező tulajdonsága miatt. Azonban nem egyetlen polinommal írják le a görbét, hanem szakaszosan, lépésenként több alacsonyabb fokszámú polinommal meghatározott ívekből állítják elő a kívánt alakot, azaz interpoláló szplájngörbét hoznak létre. DEMO: Lagrange.exe

A szakaszos interpoláció legegyszerűbb formája a lineáris interpoláció, vagyis amikor a pontokat megadásuk sorrendjében egyenes szakaszokkal kötjük össze, azaz a , , szakaszokkal interpolálunk. Görbék megjelenítésekor (megrajzolásakor) csaknem mindig ezt alkalmazzuk.

2.2. Hermite-ív

A harmadrendű (kubikus, köbös) Hermite-ív esetén nemcsak az interpolálandó pontokat, hanem ezekben az érintővektorokat is ismertnek tételezzük fel.

Adott a és pont valamint a és érintővektor.

Keresünk olyan

harmadfokú polinommal meghatározott görbét, amelyre

teljesül.

Ezt az egyenletrendszert az ismeretlen együtthatókra megoldva az

együtthatókat kapjuk. Ezeket (2.1)-be behelyettesítve, átrendezés után, az

alakot kapjuk. Ebből felírhatjuk a görbe

mátrixalakját is. Ez az alak akkor hasznos, ha ugyanannak az ívnek több pontját is ki kell számolnunk, ugyanis a mátrix és a jobb oldali vektor -tól független, ezért ezek szorzata előre kiszámítható és csak ezt kell a különböző értékeknél vett bal oldali vektorral megszorozni. A

jelölést bevezetve (2.3) az

alakban írható fel. A , függvényeket harmadfokú Hermite-polinomoknak nevezzük. A 2.2. ábra ezek grafikonját mutatja a intervallum fölött. Az ábra alapján következtethetünk arra, hogy az paraméter függvényében hogyan nő, illetve csökken az adott pontok és érintők hatása az interpoláló görbére. A 2.3. ábra azt mutatja, hogy a kezdő- és végpontbeli érintő hossza hogyan befolyásolja a harmadrendű ív alakját. A 2.3. a) ábrán a kezdő- és végpontokban az érintők hosszát egyenlő mértékben növeltük, a 2.3. b) ábrán pedig csak a kezdőpontban növeltük. Az ábrán és egységnyi hosszúságú. Az itt nyert tapasztalatok jól használhatók görbe tervezésnél, mivel segítséget adnak ahhoz, hogy hogyan adjuk meg az érintővektorok hosszát a kívánt alakú interpoláló görbe létrehozásához. DEMO: Hermite_arc.exe

2.2. ábra - Harmadfokú Hermite-polinomok

Harmadfokú Hermite-polinomok

Most megvizsgáljuk, hogy milyen hatással van az Hermite-ívre a paramétertartomány affin (lineáris) transzformációja. Tekintsük az Hermite-ív (2.3) alakját, és a intervallumról térjünk át a tetszőleges intervallumra! Ez az

paramétertranszformációt jelenti. A paramétertranszformációt követően az ív kezdő- és végpontjára

teljesül, ezekben a pontokban az érintővektorok

következtében

lesznek.

2.3. ábra - Az ábrán Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez. és Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez. egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez. hosszát növeltük, megfigyelhető, hogy Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez. növelésével a görbe hogyan simul az érintő egyeneshez.

Az ábrán \mathbf{t}_{0} és \mathbf{t}_{1} egységnyi hosszúságú érintővektor. Az a) ábrán a végpontbeli érintővektorok hosszát azonos mértékben növeltük, amivel eltérő tulajdonságú görbéket kaptunk: szingularitás nélküli (fekete), két inflexiós pont (piros), csúcspont (kék), önmetszéspont (narancs). A b) ábrán csak a \mathbf{t}_{0} hosszát növeltük, megfigyelhető, hogy \lambda növelésével a görbe hogyan simul az érintő egyeneshez.

Látható, hogy az Hermite-ív alakja nem invariáns a paramétertartomány affin transzformációjával szemben, hiszen a transzformáció következtében a kezdő- és végpontbeli érintők hossza megváltozik. Tehát a paramétertranszformációval is elérhetjük a 2.3. ábrán látható alakváltozásokat. Ha azt akarjuk, hogy az , harmadrendű Hermite-ívre , , és teljesüljön, akkor az

görbénél a Hermite-polinomokat , , és módon kell megválasztani, de az

összefüggéssel is ugyanazt kapjuk.

A harmadfokú interpoláció igen népszerű, széles körben használt eljárás, mivel ez a legalacsonyabb fokszám, amellyel térgörbe, valamint a 2.3. ábrán látható szinguláris pontokkal (csúcspont, önmetszéspont, inflexiós pont) rendelkező görbeívek állíthatók elő.

Előfordulhat azonban olyan probléma is, ahol a harmadfokú interpoláció nem elégséges. Így például, ha az érintővektor mellett a második derivált is adott a kezdő- és végpontban, akkor ötödfokú polinomot kell alkalmaznunk. Ennek az interpoláló ívnek a meghatározása az előzőekben ismertetett harmadfokúval analóg. Tágabb értelemben Hermite-ívnek nevezzük az olyan görbeívet, amely kezdő- és végpontjával, valamint ezekben valahányadrendű deriváltjaival adott.

2.3. Interpoláló szplájnok

A Lagrange-interpolációnál már megemlítettük, hogy széles körben alkalmazzák a polinomokat interpoláló görbék előállítására. Ez elsősorban a polinomok jó kezelhetősége (könnyű, gyors kiértékelhetőség és differenciálhatóság) miatt van. Azonban nem a Lagrange módszerénél megismert globális, azaz az összes adat által meghatározott polinomot használjuk, hanem több alacsonyabb fokszámú polinomra építjük az interpolációt. Ez geometriailag azt jelenti, hogy az interpoláló görbét több alacsonyabb (többnyire harmad-) rendű, egymáshoz kapcsolódó görbeívekből állítjuk elő. Az ilyen, ívekből összeállított görbét szplájngörbének nevezzük.

2.4. interpoláló szplájnok

A harmadrendű Hermite-ívek ismételt alkalmazásával megoldhatjuk a következő feladatot.

Adottak a pontok, a hozzájuk rendelt, egymástól különböző paraméterértékek, valamint a érintővektorok ().

Keresünk olyan elsőrendben folytonosan kapcsolódó harmadrendű ívekből álló görbét, amelyre

teljesül.

Tekintsük az előző feladat néhány módosítását! A módosítás abban áll, hogy enyhítjük a kiindulási feltételeket, ami által növeljük a megoldások számát.

Adottak a pontok, és a hozzájuk rendelt érintőirányok ().

Keresünk olyan, a paraméter szerint elsőrendben folytonosan kapcsolódó ívekből álló görbét, amely az adott pontokon átmegy, és ott az érintő iránya a megadott irány.

Az általánosság megszorítása nélkül feltehetjük, hogy .

Ha ezt a feladatot az előzőre vissza akarjuk vezetni, akkor meg kell adni az paraméterértékeket, és az érintővektor előállításához a skalárokat.

Az paraméterértékek megadásának lehetőségeit a 2.6. szakaszban tárgyaljuk.

Az érintővektor hosszának a megadása is igen nagy szabadságot biztosít a tervezőnek. A egyenlőségben -nek bármilyen értéket adhatunk. Elég elterjedt megoldás, hogy az érintő hossza arányos a pontból kiinduló valamelyik húrral, például

Adottak a pontok és a hozzájuk rendelt, egymástól különböző paraméterek.

Keresünk olyan elsőrendben folytonosan kapcsolódó harmadrendű ívekből álló görbét, amely az paraméterértékeknél a pontokon megy át.

Annak érdekében, hogy az előző feladatok valamelyikére visszavezessük a problémát, meg kell adnunk vagy az érintőirányokat, vagy a érintővektorokat. Az érintővektorok megadhatók például az úgynevezett Bessel-érintőkkel. Ezen a , , és adatokkal meghatározott úgynevezett Bessel-féle parabolának az helyen vett érintőjét értjük.

Ez a következőképpen határozható meg. Tekintsük azt a

másodfokú polinomot, amelyre

teljesül! A jelölést bevezetve

Az érintők meghatározásához a

kifejezésnek az helyen vett helyettesítési értékére van szükség.

Így a kezdő- és végpont kivételével meghatározhatjuk az érintővektorokat. A fennmaradó pontokban pedig a

segítségével lehet, amiből a

vektorokat kapjuk.

Ha csak érintőirányokat akarunk meghatározni, akkor annak egyik legegyszerűbb módja az

és pedig például a fent ismertetett Bessel-parabolával határozható meg.

2.4.1. Catmull-Rom-szplájn

A Catmull-Rom-szplájn is harmadfokú ívekből állítja elő az interpoláló görbét, és csak az interpolálandó pontokat kell megadni.

2.4. ábra - Az érintővektorok meghatározása a Catmull-Rom-spline esetén; az ábra a Az érintővektorok meghatározása a Catmull-Rom-spline esetén; az ábra a \tau=0.5 esetet szemlélteti. esetet szemlélteti.

Az érintővektorok meghatározása a Catmull-Rom-spline esetén; az ábra a \tau=0.5 esetet szemlélteti.

Adottak a pontok.

Keresünk olyan elsőrendben folytonosan kapcsolódó harmadrendű ívekből álló görbét, amely az adott pontokon átmegy és a pontban az érintővektora , .

A és pontokban a fenti módon nem határozható meg az érintő iránya. A kezdőpontban általában a , a végpontban pedig a vektort használjuk (lásd a 2.4. ábrát). A görbe -edik ívére () az

feltételeknek kell teljesülni (tehát minden egyes ívnél a intervallum az értelmezési tartomány). Ezen feltételek alapján az ívet Hermite-ívként le tudjuk írni. Az

polinomban szereplő együtthatók a (2.2) alapján

alakban írhatók fel. Ebből megkapjuk az ív

mátrixalakját. A alakparaméterként használható, a pontokban az egyes ívek görbületét befolyásolja. Kis értékhez nagy görbület, nagy értékhez kis görbület tartozik, lásd a 2.5. ábrát. Leggyakrabban a értéket szokták használni, az eredeti változatban is ez szerepelt, csak később általánosították.

2.5. ábra - Az alakparaméter hatása a Catmull-Rom-szplájnra; Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak (kék), Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak (fekete), Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak (piros); az érintővektorok a Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak értékhez tartoznak

Az alakparaméter hatása a Catmull-Rom-szplájnra; \tau=0.2 (kék), \tau=0.5 (fekete), \tau=1 (piros); az érintővektorok a \tau=0.5 értékhez tartoznak


2.4.2. Overhauser-szplájn

Adottak a pontok és a hozzájuk rendelt, egymástól különböző paraméterértékek.

Keresünk olyan elsőrendben folytonosan kapcsolódó harmadrendű ívekből álló görbét, amely az paraméterértékeknél a pontokon megy át.

Az Overhauser-szplájn a Bessel-érintőknél használt parabolára épül. Az Overhauser-szplájn íve

vagyis az harmadrendű ív a és , másodrendű parabolák konvex kombinációja. A kombinációban szereplő függvényeket súlyfüggvényeknek (blending functions) nevezzük. A 2.6. ábra az Overhauser-szplájn ívének előállítását szemlélteti. A , illetve pontok között ilyen harmadfokú ívek nem állíthatók elő, ezeknél a , illetve Bessel-parabolák megfelelő ívét használhatjuk. DEMO: Overhauser.exe

2.6. ábra - Az Overhauser-szplájn Az Overhauser-szplájn \mathbf{a}_{i}\left(u\right) ívének előállítása ívének előállítása

Az Overhauser-szplájn \mathbf{a}_{i}\left(u\right) ívének előállítása

2.5. Ferguson-szplájn

Adottak a pontok és a hozzájuk rendelt, egymástól különböző paraméterértékek.

Keresünk olyan másodrendben folytonosan kapcsolódó harmadrendű ívekből álló , görbét, amelyre , teljesül.

A probléma megoldásának egyik formája az úgynevezett Ferguson-szplájn. Ez a módszer a paraméter szerint másodrendben folytonosan kapcsolódó harmadrendű Hermite-ívekből állítja elő a görbét. Ehhez először meg kell határoznunk az adott pontokban az érintővektorokat, mivel az , Hermite-ív a és adatokból állítható elő. Tehát a -ket kell meghatároznunk, amit a folytonossági feltétel alapján -re egyértelműen megtehetünk. Ehhez -nek kell teljesülni. A jelölés bevezetésével

melyek egyenlősége alapján

Így tehát -re egy lineáris egyenletrendszer kaptunk. Ez tridiagonális egyenletrendszer, amely numerikusan jól kondicionált, vagyis gyorsan és stabilan lehet megoldani. Bevezetve az

jelöléseket, az egyenletrendszer

alakban írható fel, ahol ; ; még nem ismertek, mivel a és érintővektorok nem határozhatók meg a fenti folytonossági feltétel alapján. Számos olyan módszer létezik, amellyel a végpontbeli érintők úgy adhatók meg, hogy az egyenlet tridiagonalitása megmarad. A következőkben ezek közül mutatunk meg néhányat.

Peremfeltételek

Természetes (natural)

Ez a megoldás azon a feltevésen alapszik, hogy a kezdő-, illetve a végpontban a görbület nulla. A kezdőpontban:

A végpontban:

Kvadratikus (quadratic)

Azt feltételezzük, hogy az ív kezdő-, illetve végpontjában a második derivált megegyezik. A kezdőpontban:

A végpontban:

Harmadrendű folytonosság (not_a_knot)

Itt azt feltételezzük, hogy az és pontokban harmadrendben folytonosan kapcsolódnak az ívek, vagyis a és pontok valójában nem csomópontok. A kezdőpontban:

A végpontban:

Bessel

A kezdőpontban:

a és pontok, és a hozzájuk tartozó és paraméterértékek által meghatározott Bessel-parabola -beli érintője

A végpontban:

a és pontok, és a hozzájuk tartozó és paraméterértékek által meghatározott parabola -beli érintője

Parabola érintője

A kezdőpontban:

a pontok, a érintővektor és a hozzájuk tartozó paraméterértékek által meghatározott parabola érintője a pontban. Ebből

A végpontban:

a pontok, a érintővektor és a hozzájuk tartozó paraméterértékek által meghatározott parabola érintője a pontban. Ebből

Rögzített (clamped)

A , illetve a érintőket tetszőlegesen megadjuk. DEMO: Ferguson.exe

2.7. ábra - Centripetális paraméterezésű Ferguson-szplájnok különböző peremfeltételekkel: természetes (fekete), kvadratikus (piros), harmadrendű (kék). A kezdő- és végpontban ugyanazt a peremfeltételt használtuk.

Centripetális paraméterezésű Ferguson-szplájnok különböző peremfeltételekkel: természetes (fekete), kvadratikus (piros), harmadrendű (kék). A kezdő- és végpontban ugyanazt a peremfeltételt használtuk.

A 2.7. ábrán centripetális paraméterezésű Ferguson-szplájnokat láthatunk különböző peremfeltételekkel.

2.6. Az interpoláló görbék paraméterezése

Az eddigiek során azt feltételeztük, hogy az interpolálandó pontok mellett adottak a hozzájuk rendelt paraméterértékek is. Ez azonban nem ennyire magától értetődő, mivel ezek az értékek végtelen sokféleképpen megadhatók, és az általuk létrehozott paraméterezés jelentősen befolyásolja a görbe alakját. Nincsen minden szempontból legjobb megoldás, mindig az adott alkalmazás dönti el, hogy mi a jó. Az alábbiakban a teljesség igénye nélkül ismertetünk néhány elterjedt módszert.

  • Egyenközű paraméterezés

    A paraméterezést egyenközűnek (uniformnak) nevezzük, ha konstans, teljesül. Ezt legegyszerűbben az értékadással érhetjük el. A számítások során azonban célszerű kis abszolút értékű számokat használni, ezért a intervallumra szoktuk a paramétertartományt transzformálni az

    választással. Az egyenközű paraméterezés mellett szól a számítások jelentős egyszerűsödése, valamint az, hogy az interpolálandó pontok affin transzformációjával szemben invariáns, ellentétben a legtöbb paraméterezéssel. Nagy hátránya viszont, hogy figyelmen kívül hagyja az egymást követő pontok távolságát. Ezt a következőképpen érzékeltethetjük a fizikából vett hasonlattal. Az interpoláló görbét egy mozgó pont írja le, mely a és pontok között ideig halad. Egyenközű paraméterezésnél ez az idő független a pontok távolságától, ezért a mozgás nem egyenletes az egész görbét tekintve. Tehát sok gyorsítás, vagy lassítás szükséges, aminek geometriailag a görbület változása felel meg.

  • Húrhosszal arányos paraméterezés

    A húrhosszal arányos paraméterezés az ívhossz szerinti paraméterezést közelíti. Figyelembe veszi a pontok eloszlását, a pontok közötti távolságot. Az előző hasonlattal élve, ez egyenletesebb sebességű bejárást tesz lehetővé. Beállításai:

  • Centripetális paraméterezés

    A fizikából vett példánál maradva, a paraméterezés célja lehet az, hogy a pálya bejárása során a centripetális gyorsulás ne legyen túl nagy. Ennek eléréséhez megkövetelhetjük azt, hogy a bejárás során a pályára merőleges erő legyen arányos a szögbeli változással. A centripetális paraméterezés ennek közelítése. Beállításai:

  • Exponenciális paraméterezés

    Az exponenciális paraméterezés az előzőek általánosításának tekinthető:

    Nyilvánvaló, hogy esetén az egyenközű, esetén a húrhosszal arányos, esetén pedig a centripetális paraméterezést kapjuk.

2.8. ábra - Csak a paraméterezésükben különböző Ferguson-szplájnok: egyenközű (fekete), centripetális (piros), húrhosszal arányos (kék)

Csak a paraméterezésükben különböző Ferguson-szplájnok: egyenközű (fekete), centripetális (piros), húrhosszal arányos (kék)

A 2.8. ábra interpoláló görbéi csak a paraméterezésükben különböznek.

A fent ismertetett paraméterezések közül csak az egyenközű invariáns a pontok affin transzformációjával szemben.

3. fejezet - Bézier-görbe

Az ebben a fejezetben tárgyalandó görbeleírási módszert szinte egyidőben, egymástól függetlenül dolgozta ki a a Citroën művek munkatársa P. de Casteljau és a Renault művek tervezője P. Bézier.

3.1. de Casteljau-algoritmus

Tekintsük a pontokat, valamint a skalárt! A szakaszt osszuk fel arányban, és a kapott pontot jelöljük -el (lásd a 3.1. ábrát)! A szakasz ugyanilyen arányú felosztásával kapott pontját -el, majd a szakasz osztópontját -vel jelöljük. változtatásával egy görbét ír le, melynek paraméteres alakját a

osztópontok segítségével

alakban írhatjuk fel. A pont esetén a és pontokon áthaladó és ott , illetve érintőirányú parabolának a pontja. esetén is elvégezhetők a fenti műveletek, és ekkor a parabolának a és pontok közötti ívén kívül eső pontjait kapjuk. A 3.1. ábra a és pontok szerkesztését mutatja.

3.1. ábra - A A \mathbf{b}_{0},\mathbf{b}_{1},\mathbf{b}_{2} pontokkal meghatározott parabola t_{1}=1/3 és t_{2}=3/2 pontjainak szerkesztése pontokkal meghatározott parabola A \mathbf{b}_{0},\mathbf{b}_{1},\mathbf{b}_{2} pontokkal meghatározott parabola t_{1}=1/3 és t_{2}=3/2 pontjainak szerkesztése és A \mathbf{b}_{0},\mathbf{b}_{1},\mathbf{b}_{2} pontokkal meghatározott parabola t_{1}=1/3 és t_{2}=3/2 pontjainak szerkesztése pontjainak szerkesztése

A \mathbf{b}_{0},\mathbf{b}_{1},\mathbf{b}_{2} pontokkal meghatározott parabola t_{1}=1/3 és t_{2}=3/2 pontjainak szerkesztése

Ennek a parabolaszerkesztésnek az általánosításaként fogható fel a de Casteljau-algoritmus, ami a Bézier-görbe előállítására alkalmas.

Adottak a tér pontjai és a skalár. A pontokat összekötő töröttvonal oldalait osszuk fel arányban, és az osztópontokat jelöljük -vel. Így a kiindulásinál eggyel kevesebb számú pontot kapunk. Az osztópontok által meghatározott töröttvonal oldalait is osszuk fel arányban, és ezt az eljárást addig folytassuk, míg egyetlen osztópontot kapunk. Ezen rekurzív felosztás formális leírása:

ahol

Ezek a lineáris kombinációk esetén végrehajthatók és egy pontot kapunk eredményül. Azonban ha , akkor az algoritmus csak konvex kombinációkat tartalmaz, ami nagyfokú numerikus stabilitást eredményez.

A pontok által meghatározott görbét Bézier-görbének nevezzük. A ... pontokat Bézier-pontoknak vagy kontrollpontoknak nevezzük, az általuk meghatározott poligont pedig Bézier-poligonnak vagy kontrollpoligonnak, magát a felosztási algoritmust pedig de Casteljau-algoritmusnak. A felosztás során kapott pontok a következő háromszögalakba rendezhetők:

Az esethez tartozó szerkesztést mutatja a 3.2. ábra.

3.2. ábra - A A \mathbf{b}_{0}^{4}\left(1/3\right) pont szerkesztése a de Casteljau-algoritmussal pont szerkesztése a de Casteljau-algoritmussal

A \mathbf{b}_{0}^{4}\left(1/3\right) pont szerkesztése a de Casteljau-algoritmussal

3.2. Bézier-görbe leírása Bernstein-polinommal

A Bézier-görbe további vizsgálatához az előzőekben tárgyalt rekurzív definíció mellett szükséges a görbe paraméteres alakja is. Ezt az alakot a Bernstein-polinomok segítségével állítjuk elő.

3.1. Definíció. A

összefüggéssel definiált polinomot az -edik -edfokú Bernstein-polonomnak nevezzük, és definíció szerint

A Bernstein-polinomok alábbi tulajdonságai könnyen igazolhatók a definíció alapján.

  • , ha

  • A Bernstein-polinomok a

    rekurzív tulajdonsággal rendelkeznek.

  • A Bernstein-polinomok összege , ugyanis

  • Az -edik -edfokú Bernstein-polinom deriváltja

    alakban írható fel.

  • A Bernstein-polinom maximuma a értéknél van.

A 3.3. ábra a másod- és harmadfokú Bernstein-polinomokat ábrázolja.

3.3. ábra - A másod- és harmadfokú Bernstein-polinomok

A másod- és harmadfokú Bernstein-polinomok

3.2. Tétel. A Bernstein-polinomok lineárisan függetlenek.

Bizonyítás. Belátjuk, hogy lineáris kombinációjuk pontosan akkor nulla, ha minden együttható nulla. Tekintsük az -edfokú Bernstein polinomok

lineáris kombinációját! Az összeg minden tagját -el elosztva

ami az helyettesítéssel az

összeget eredményezi. Ezzel a Bernstein polinomok lineáris függetlenségét visszavezettük az hatványpolinomok lineáris függetlenségére.

Ennek a tételnek fontos következménye, hogy a Bernstein-polinomok a legfeljebb -edfokú polinomok terének bázisát alkotják.

Most megmutatjuk, hogy a de Casteljau-algoritmussal előállított Bézier-görbe a Bernstein-polinomokkal

alakban írható fel.

3.3. Tétel. A de Casteljau-algoritmus pontjai

alakban írhatók fel az -edfokú Bernstein-polinomok segítségével.

Bizonyítás. A tételt szerinti teljes indukcióval bizonyítjuk.

i) Először megmutatjuk, hogy az állítás -ra igaz. Ez valóban triviálisan teljesül, hiszen a (3.4) kifejezésbe helyettesítve

ii) A következőkben belátjuk, hogy ha -re igaz, akkor abból következik -re is. Mindenekelőtt a (3.4) kifejezésen végrehajtunk egy formális átalakítást, a indextranszformációt, azaz

A de Casteljau-algoritmus szerint

Ez az -re vonatkozó feltételezés miatt

alakban írható fel. A (3.1) tulajdonságot felhasználva, az első tag összegzésének felső határát megnövelhetjük eggyel, a második tagban pedig a nulla tagot hozzávéve az

összefüggést kapjuk. Figyelembe véve a (3.2) egyenlőséget, és a indextranszformációt alkalmazva

A fenti tétel igen fontos esete az , , amelyre

vagyis a de Casteljau-féle rekurzív algoritmussal kapott pont rekurzió nélkül, a kontrollpontoknak a Bernstein-polinomokkal vett kombinációjaként is előállítható. Tehát a ... kontrollpontokkal adott Bézier-görbe a

paraméteres alakban írható fel.

3.3. A Bézier-görbe néhány tulajdonsága

A Bézier-görbét számos előnyös tulajdonsága tette népszerűvé a számítógéppel segített geometriai tervezésben. Ezen tulajdonságok közül emelünk ki néhányat ebben a szakaszban, azonban gyakorlatilag az egész fejezet ezen tulajdonságok ismertetésének tekinthető.

3.4. Tétel. A Bézier-görbe a kontrollpontjainak affin transzformációjára nézve zárt, azaz a transzformált kontrollpontok által meghatározott Bézier-görbe megegyezik az eredeti görbe pontonkénti transzformáltjával.

Bizonyítás. Ez a de Casteljau-algoritmusból közvetlenül következik, mivel az csak arányos osztásokat tartalmaz, ami affin transzformációval szemben invariáns.

A fenti tulajdonság fontos, gyakran használt következménye, hogy Bézier-görbe affin transzformációja esetén – például ha axonometriában, vagy párhuzamos vetítéssel ábrázolunk térgörbéket – elegendő csak a kontrollpontokat transzformálni, mivel a transzformált kontrollpontok által meghatározott Bézier-görbe megegyezik az eredeti görbe pontonkénti transzformáltjával. Ezzel igen sok számítás megtakarítható, hiszen ezen tulajdonság híján a görbét pontonként kellene transzformálni.

Szeretnénk felhívni a figyelmet arra, hogy a Bézier-görbe projektív transzformációra, például centrális vetítésre nézve nem zárt. Gondoljunk csak a másodfokú Bézier-görbére, a parabolára (lásd a 3.1. szakaszt), amelynek centrális vetülete bármilyen kúpszelet lehet, melyek azonban – a parabola kivételével – nem állíthatók elő Bézier-görbeként.

A következő tulajdonság igazolása előtt definiálni kell a konvex burok fogalmát.

3.5. Definíció. A ponthalmazt konvexnek nevezünk, ha a halmaz bármely két pontja által meghatározott szakasz minden pontja a halmazhoz tartozik.

3.6. Definíció. Ponthalmaz konvex burkán a ponthalmazt tartalmazó konvex ponthalmazok metszetét értjük.

A definícióból nyilvánvaló, hogy a konvex halmaz konvex burka maga a halmaz. Véges komplanáris ponthalmaz konvex burka a síknak olyan konvex poligonja által határolt tartománya, melynek csúcspontjai a halmaz elemei közül kerülnek ki. Véges térbeli ponthalmaz konvex burka pedig konvex poliéder által határolt térrész lesz.

3.7. Tétel. A Bézier-görbe kontrollpontjainak konvex burkában van.

Bizonyítás. Ez közvetlen folyománya a de Casteljau-algoritmusnak, mivel ott minden közbülső pont a konvex burok két pontját összekötő szakaszon van.

Ez tehát azt jelenti, hogy a görbe egy jól meghatározható tartományon belül helyezkedik el, nem tartalmazhat olyan nem várt kiugrásokat, mint amilyeneket a Lagrange-féle interpolációs görbénél tapasztalhatunk. A 3.4. ábra egy negyedfokú Bézier-görbe kontrollpontjainak konvex burkát mutatja.

3.4. ábra - Negyedfokú Bézier-görbe és kontrollpoligonjának konvex burka

Negyedfokú Bézier-görbe és kontrollpoligonjának konvex burka

3.8. Tétel. A Bézier-görbe a paramétertartomány affin transzformációjával szemben invariáns.

Bizonyítás. Ez a de Casteljau-algoritmusból következik, mivel az csak arányos osztást tartalmaz, ami változatlan marad a , paramétertranszformációval szemben. Az egyszerűség kedvéért azonban leggyakrabban a paraméterezést választjuk.

Ez a tulajdonság azt jelenti, hogy a

és

kifejezések ugyanazt a görbét állítják elő.

A következő tulajdonságok könnyen beláthatók akár a de Casteljau-algoritmus, akár a paraméteres alak segítségével.

3.9. Tétel.

  1. A Bézier-görbe az első és utolsó kontrollponton áthalad, azaz a végpontokban interpolál.

  2. A Bézier-görbe leírása szimmetrikus abban az értelemben, hogy a ... és ... kontrollpontok ugyanazt a görbét határozzák meg.

  3. A Bézier-görbe globálisan változtatható, vagyis egyetlen kontrollpont helyének megváltoztatása az egész görbe alakjának változását eredményezi.

  4. A Bézier-görbe pontosan akkor lesz egyenes szakasz, ha a kontrollpontok kollineárisak.

A kontrollpontnak a paraméterértéknél van a legnagyobb hatása a görbe alakjára, mivel a polinomnak itt van a maximuma. Ennek következtében a görbének valamely kontrollpontja elmozdításakor bekövetkező alakváltozása jól prognosztizálható, ezért a Bézier-görbét pszeudo-lokálisan változtatható görbének is szokták nevezni.

3.4. A Bézier-görbe deriváltja

A Bézier-görbe deriváltja

ami (3.1) miatt

alakba írható, mivel az így elhagyott tagok együtthatója nulla. Ezt az első összegzésen végrehajtott indextranszformációval

alakra hozhatjuk.

3.10. Definíció. Az görbe hodográfján az görbét értjük.

A görbe hodográfja tehát az érintővektorai által leírt görbe. Az -edfokú Bézier-görbe hodográfja -edfokú Bézier-görbe, amit úgy kaphatunk meg, hogy az eredeti görbe kontrollpontjaiból képzett , vektorok -szeresét, azaz a kontrollpoligon oldalainak -szeresét az origóba, mint közös kezdőpontba toljuk. Az esetre mutat példát a 3.5. ábra. DEMO: Bezier_curve.exe

3.5. ábra - Harmadfokú Bézier-görbe és hodográfja (Harmadfokú Bézier-görbe és hodográfja (1/3 -ra kicsinyítve)-ra kicsinyítve)

Harmadfokú Bézier-görbe és hodográfja (1/3 -ra kicsinyítve)

A hodográf egyszerű grafikus módszert ad az eredeti görbe alakjának vizsgálatára.

  • Ha a hodográf átmegy az origón, akkor az eredeti görbének van nulla hosszúságú érintővektora, vagyis elsőfajú csúcspontja (tölcsérpont, visszatérési pont) (lásd a 3.6./c ábrát).

  • Ha a hodográfhoz húzható érintő az origóból, és az érintési pont a hodográf inflexiós vagy csúcspontja, akkor az eredeti göbének nulla görbületű (lapos) pontja van (lásd a 3.6./a ábrát).

  • Ha a hodográfhoz húzható érintő az origóból, és az érintési pont nem szinguláris pontja a hodográfnak, akkor az eredeti göbének inflexiós pontja van (lásd a 3.6./b ábrát).

3.6. ábra - Szinguláris pontú Bézier-görbék (bal oldal) és Szinguláris pontú Bézier-görbék (bal oldal) és 1/ fokszámra kicsinyített hodográfjuk (jobb oldal): a) lapos pont, b) inflexiós pont, c) elsőfajú csúcspontfokszámra kicsinyített hodográfjuk (jobb oldal): a) lapos pont, b) inflexiós pont, c) elsőfajú csúcspont

Szinguláris pontú Bézier-görbék (bal oldal) és 1/ fokszámra kicsinyített hodográfjuk (jobb oldal): a) lapos pont, b) inflexiós pont, c) elsőfajú csúcspont

A magasabb rendű deriváltak meghatározásához a

előre haladó differenciaoperátort használjuk. Ez a rekurzív definíció esetén a következőt jelenti:

Az egyes sorok együtthatóinak abszolút értéke a megfelelő binomiális együtthatók, vagyis az -edik soré , . Az előjelet is figyelembe véve az általános explicit formula

ami -szerinti teljes indukcióval könnyen belátható, csakúgy, mint a Bézier-görbe -edik deriváltjára vonatkozó következő tétel.

3.11. Tétel. A Bézier-görbe -edik deriváltja

alakba írható.

Bizonyítás. Az állítást szerinti teljes indukcióval bizonyítjuk.

i) Az állítás -re teljesül, mivel

ii) Megmutatjuk, hogy ha az állítás igaz -re, akkor igaz -re is.

a (3.1) tulajdonságokat figyelembe véve, és az első összegzésen egy indextranszformációt végrehajtva

Fontos speciális esetek a és :

Ez azt jelenti, hogy a kezdőpontban az -edik derivált csak a kontrollpontoktól függ, a végpontban pedig a kontrollpontoktól.

esetén a már ismert végpontbeli interpolációt kapjuk

esetén

esetén pedig

A Bézier-görbe alakja nem változik meg a paramétertartomány affin transzformációja során, azonban az érintővektorainak a hossza általában megváltozik, ugyanis a paraméterről az paraméterre a transzformációval térünk át, ezért a görbe deriváltja

lesz (az összetett fügvények deriválásának megfelelően). Tehát az affin paramétertranszformáció során a bejárt pálya (a görbe) nem változik, de a bejárás sebessége igen.

3.5. A deriváltak és a de Casteljau-algoritmus kapcsolata

3.12. Tétel. A de Casteljau-algoritmus közbülső () pontjai segítségével a Bézier-görbe -edik deriváltja

alakba írható.

Bizonyítás. Felhasználjuk, hogy az összegzés és a differencia képzése felcserélhető, azaz

ami a fenti tulajdonság miatt

ez pedig a 3.3. tétel miatt

Ez tehát azt jelenti, hogy a de Casteljau-algoritmussal nemcsak a Bézier-görbe pontját, hanem a deriváltját is meghatározhatjuk. Ugyanis, ha a ... kontrollpontokkal adott Bézier-görbe valamely paraméterhez tartozó pontját a de Casteljau-rekurzióval határozzuk meg, akkor a közbülső pontok az alábbi alakba rendezhetők

A fenti tétel értelmében a úgy kapható meg, hogy ezen háromszög -edik oszlopának, amely a elemeket tartalmazza, vesszük a differenciáját és megszorozzuk -al. Ez

esetén

esetén pedig

Tehát a de Casteljau-algoritmussal kapott pontok utolsó oszlopa a görbe pontja, az utolsó előtti oszlop az érintőegyenest, az ezt megelőző oszlop pedig a simulósíkot határozza meg. Ezt szemlélteti a 3.7. ábra.

3.7. ábra - A de Casteljau-algoritmussal előállított pontokkal megkapjuk a görbe érintőjét és simulósíkját is

A de Casteljau-algoritmussal előállított pontokkal megkapjuk a görbe érintőjét és simulósíkját is

3.6. Bézier-görbe kettévágása

Adott a intervallum fölött az -edfokú Bézier-görbe, és a paraméterérték. Keressük azt a intervallumon értelmezett ugyancsak -edfokú Bézier-görbét, amely a görbének ívét határozza meg.

Az paramétert a segítségével formában adjuk meg. A görbe kontrollpontjait ... ; a görbéjét ... -el jelölve, a feladat az ismert -kből a -k () meghatározását jelenti.

Tekintsük a két görbét a pontban! Miután mindkét ív ugyanannak az -edfokú görbének a része és azonos paraméterezésűek, ezért deriváltjaiknak is meg kell egyezni, azaz

a helyen is. Ezek a deriváltak csak a ... , illetve a ... pontoktól függnek (lásd (3.6)).

A ... és a ... tekinthetők egy-egy -edfokú Bézier-görbe kontrollpontjaiként. Az így kapott két görbe egybeesik, azaz

bármely megfelelő -ra. Ezt a következőképpen bizonyíthatjuk. A (3.8) egyenlőség alapján

ami a helyen

azaz

Másrészt a és görbék -dik deriváltjaira

azaz a

egyenlőségek teljesülnek (3.9) miatt. Vagyis a és , görbék deriváltjai a helyen -edrendig egyenlőek, tehát a két görbe egybeesik. Akkor ez az egyenlőség a , helyen is teljesül, azaz

Figyelembe véve a egyenlőséget, és a de Casteljau-algoritmusnál bevezetett jelölést használva a

egyenlőséget kapjuk. Ami azt jelenti, hogy a de Casteljau-algoritmussal nemcsak a Bézier-görbe pontja, valamint az ottani derivált határozható meg, hanem a görbe két, az eredetivel megegyező fokszámú Bézier-görbére bontható. Ehhez vizsgáljuk meg a de Casteljau-algoritmussal előállított pontok háromszögét!

Az egyik a intervallum fölötti, amelynek kontrollpontjai , . A másik pedig, szimmetria okok miatt, a intervallum fölötti görbe, amelynek kontrollpontjai , . A 3.8. ábrán látható negyedfokú Bézier-görbét a 0.5 paraméterértéknél vágtuk ketté.

3.8. ábra - Negyedfokú Bézier-görbe és a kettévágásával kapott Bézier-görbék kontrollpoligonja

Negyedfokú Bézier-görbe és a kettévágásával kapott Bézier-görbék kontrollpoligonja

A de Casteljau-algoritmussal alőállított pontok az eredeti görbe konvex burkán belül vannak, vagyis a kettévágással olyan két görbét kapunk, melyek konvex burka az eredeti görbe konvex burkának valódi részhalmaza. A kettévágás ismételt alkalmazásával kapott kontrollpoligonok sorozata a Bézier-görbéhez konvergál. Ez a konvergencia igen gyors, és a kontrollpoligonok számítása stabil.

A Bézier-görbék felosztásával belátható a hullámzáscsökkentő tulajdonság is. Ez azt jelenti, hogy a görbe nem erősíti fel, sőt csökkenti a kontrollpoligon hullámzását, vagyis nem oszcillál, mint például a Lagrange-görbe. Ezt a tulajdonságot illusztrálja a 3.9. ábra.

3.9. ábra - A Bézier-görbe alakja kevésbé hullámzik, mint a kontrollpoligonjáé

A Bézier-görbe alakja kevésbé hullámzik, mint a kontrollpoligonjáé

3.13. Tétel. A Bézier-görbét egy sík (vagy egyenes) legfeljebb annyi pontban metszi, mint a kontrollpoligonját.

Bizonyítás. A de Casteljau-algoritmus tulajdonképpen a kontrollpoligon „sarkainak” ismételt levágását jelenti. Egy-egy ilyen levágásra teljesül, hogy az új kontrollpoligonnak nem lehet több metszéspontja a síkkal (egyenessel), mint az eredetinek. Felhasznáva, hogy a kontrollpoligonok a görbéhez konvergálnak, állításunk igazolását nyerjük.

Ezt szemlélteti a 3.10. ábra.

3.10. ábra - A Bézier-görbét egy egyenes legfeljebb annyi pontban metszi, mint kontrollpoligonját

A Bézier-görbét egy egyenes legfeljebb annyi pontban metszi, mint kontrollpoligonját

3.7. Bézier-szplájn

Bézier-görbék segítségével is előállítható szplájngörbe, vagyis olyan görbe, melyek egymáshoz kapcsolódó ívei Bézier-görbék. A Bézier-szplájn fontos alkalmazási területe a karakterek leírása. A grafikus rendszerek ugyanis a tetszőlegesen skálázható, transzformálható karaktereket (a TrueType fontokat) nem a karakterre eső pixelekkel tárolják, hanem a karakterek határát leíró görbékkel. Így ugyanis a transzformáció gyorsabb és az eredmény szebb lesz (az aliasing hatások elkerülése). Sok rendszer, így például a PostScript, a határgörbéket egymáshoz kapcsolódó harmadfokú Bézier-görbékkel írja le. A karakterek skálázásához (affin transzformálásához) a Bézier-görbék kontrollpontjait kell csak transzformálni, majd a transzformált kontrollpontok által meghatározott Bézier-görbékkel határolt síkrészt kell kitölteni.

Most megvizsgáljuk, hogy az egymáshoz kapcsolódó Bézier-görbék kontrollpoligonjainak milyen geometriai feltételt kell kielégíteni annak érdekében, hogy a csatlakozási pontban a folytonosság , vagy a valamivel enyhébb feltételű legyen.

Tekintsük az ... és ... kontrollpontok átal meghatározott , és , Bézier-görbéket!

Nulladrendben folytonos kapcsolódás

Ennek kell teljesülni mind , mind folytonosság esetén.

Elsőrendben folytonos kapcsolódás

Az elsőrendű folytonos kapcsolódáshoz a nulladrendű kapcsolódás feltételén kívül esetén az érintővektoroknak, esetén pedig az érintőegyeneseknek kell megegyezni a csatlakozási pontban.

Ehhez mindenekelőtt a deriváltakat kell meghatározni a közös pontban. Az , görbén a , paramétertranszformációt végrehajtva, a feltételeinkben adott görbe leírását kapjuk. Ennek szerinti deriváltja

Az -hez tartozó közös pontban a deriváltak

A jelölést bevezetve a

alakban írható fel.

Tehát a görbék kapcsolódásának az a feltétele, hogy az egymást követő kontrollpontok kollineárisak legyenek, és az

arány teljesüljön.

A kapcsolódáshoz (az érintőegyenesek egybeeséséhez) elegendő az egymást követő kontrollpontok kollinearitása.

Másodrendben folytonos kapcsolódás

i) Először a paraméter szerint, vagyis a kapcsolódás geometriai feltételét vizsgáljuk meg.

A kapcsolódáshoz az elsőrendben folytonos kapcsolódás feltételein kívül a

egyenlőségnek is teljesülni kell, ami részletezve az

egyenlőséget jelenti. Megszorozva az egyenlet mindkét oldalát -gyel, majd a bal oldalhoz -et, a jobb oldalhoz -et hozzáadva és levonva a

egyenlőséghez jutunk.

Az kapcsolódás miatt , valamint . Ezt behelyettesítve

amit átrendezve

3.11. ábra - C^{2} kapcsolódó Bézier-görbék kontrollpoligonjai kapcsolódó Bézier-görbék kontrollpoligonjai

C^{2} kapcsolódó Bézier-görbék kontrollpoligonjai


Ez azt jelenti, hogy az pontokat összekötő egyenes metszi a pontokat összekötő egyenest, és ezek metszéspontjára teljesül az

egyenlőség (lásd a 3.11. ábrát). Ezekből ugyanis

ami pontosan a (3.10) egyenlőséget jelenti, figyelembe véve, hogy a nulladrendű folytonos kapcsolódásból következik. A (3.10) összefüggés használható annak eldöntésére, hogy két azonos fokszámú Bézier-görbe a paraméter szerint másodrendben folytonosan kapcsolódik-e. Ehhez meghatározzuk az

vektorokat, és ha teljesül, akkor az és görbék kapcsolódnak egymáshoz -nél.

ii) A kapcsolódáshoz mindenekelőtt a simulósíkok egybeesése szükséges, amit az kontrollpontok komplanaritása biztosít. Ezen kívül a görbületek megegyezését kell még megkövetelni. Az görbe végpontjában a görbület

3.12. ábra - A kezdőpontbeli görbülettel arányos területű háromszög

A kezdőpontbeli görbülettel arányos területű háromszög


ami a 3.12. ábra jelöléseit használva

alakban írható fel. Ennek megfelelően a görbe kezdőpontjában a görbület

A feltételből az

egyenlőség következik.

A kapcsolódáshoz tehát, az kontrollpontoknak komplanárisnak kell lenni és a (3.11) egyenlőségnek kell teljesülni.

kapcsolódás

Ehhez a (3.6) szerint az

egyenlőségeknek kell teljesülniük.

3.8. Fokszámnövelés

Tervezés során előfordulhat, hogy a tervező átal használt -edfokú görbe nem biztosít kellő változtathatóságot, vagy különböző fokszámú görbék folytonos kapcsolódását kell biztosítani. Az ilyen problémák magasabb fokszámú görbe alkalmazásával kiküszöbölhetők. Ennek első lépéseként azt az -edfokú Bézier-görbét hozzuk létre, amely ugyanazt az alakot állítja elő, mint a korábbi -edfokú. A fokszámnövelés során természetesen a kontrollpontok száma is nő.

Adott a Bézier-görbe ... kontrollpontjaival.

Keressük azokat a ... kontrollpontokat, amelyekre

azaz

teljesül. A bal oldalt a mennyiséggel megszorozva

A bal oldal második tagján az indextranszformációt végrehajtva

együtthatóira a

egyenlőséget kapjuk, amit átrendezve

A tehát a és pontok együtthatójú konvex kombinációja. Ezért a poligon a poligon konvex burkán belül van, tehát közelebb van a görbéhez, mint . A 3.13. ábra esetén mutatja a fokszámnöveléssel kapott új kontrollpoligon szerkesztését. Mint az ábrán látható, a fokszámnövelés szemléletesen a kontrollpoligon csúcspontjainak levágását jelenti.

3.13. ábra - Ötödfokú Bézier-görbe és az őt leíró hatodfokú Bézier-görbe kontrollpoligonja

Ötödfokú Bézier-görbe és az őt leíró hatodfokú Bézier-görbe kontrollpoligonja

A fokszámnövelés ismételt alkalmazásával egy poligonsorozatot kapunk. Bebizonyítható, hogy az így kapott kontrollpoligon esetén az eredeti pontok által meghatározott Bézier-görbéhez konvergál. Ez a konvergencia azonban lényegesen lassabb, mint a 3.6. szakaszban tárgyalt, a de Casteljau-algoritmus ismételt alkalmazásával kapott poligonok sorozatáé.

A fokszánövelés inverze, azaz a fokszám csökkentése általában nem lehetséges, magasabb foszámú Bézier-görbe csak közelíthető alacsonyabb fokszámúval.

3.9. Bézier-görbe közelítése töröttvonallal

Gyakran szükség van arra, hogy a Bézier-görbét adott pontossággal, töröttvonallal közelítsük. Ilyen feladat például a görbe megrajzolása, vagy ívhosszának kiszámítása.

A görbéket általában a görbébe írt töröttvonal segítségével jelenítjük meg, vagyis az görbe paraméterértékeihez tartozó pontjait kiszámítjuk, és ezeket kötjük össze egyenes szakaszokkal. Fontos kérdés azonban a paraméterértékek megválasztása.

Kézenfekvő, egyszerű megoldás a , vagyis az értelmezési tartomány egyenlő részre osztása. Kétségtelen, hogy növelésével előbb-utóbb kielégítő eredményt kapunk, azonban az esetek többségében túl sok szakaszt használunk, ami lassítja a kirajzolás műveletét. Ezzel az eljárással ugyanis a görbe olyan részeit is több szakasszal közelítjük, amelyek majdnem egyenes szakaszok, mivel a legnagyobb görbületű részhez kell megválasztani a felosztást. Tehát a jó kirajzoló algoritmusnak a görbület változását is figyelembe kell vennie. Az értelmezési tartomány egyenlő részekre osztása csak azoknál a görbéknél optimális, melyek görbületének változása nulla, vagyis a konstans görbületűeknél. Ilyen síkgörbe azonban, mint tudjuk, csak az egyenes és a kör, tehát minden más esetben ettől eltérő megoldást célszerű keresni. A Bézier-görbék esetén az alább ismertetendő algoritmus optimális eredményt biztosít.

Tekintsük a kontrollpontokkal adott Bézier-görbét, és legyen adott az pontosság, ami a közelítő egyenes szakaszoknak (a húroknak) az általuk helyettesített ívtől mért távolságának a felső korlátja.

  1. Ha , azaz a görbe zárt, akkor vágjuk ketté a görbét a de Casteljau-algoritmussal a paraméterértéknél, és az így kapott két darab -edfokú Bézier-görbére hajtsuk végre az algoritmus további lépéseit.

  2. Vegyük a és kontrollpontokat összekötő egyenest, és keressük meg a tőle legtávolabb fekvő kontrollpontot. Ennek a távolságát -vel jelöljük.

  3. Ha , akkor a görbét a szakasszal helyettesítjük. Egyébként osszuk fel a görbét a paraméterértéknél a de Casteljau-algoritmussal két -edfokú Bézier-görbére, és mindkét görbére a 2. lépéstől folytassuk a feldolgozást.

Jelöljük -vel a pontok által meghatározott Bézier-görbét, , illetve -el az első felosztás után kapott Bézier-görbéket, , illetve -el a következő felosztás után kapottakat. Ezt az eljárást folytatva egy bináris fát építünk fel, melynek levelein balról jobbra végighaladva, az ott lévő Bézier-görbék kezdő- és végpontját összekötve, az eredeti Bézier-görbét adott pontossággal közelítő töröttvonalat kapjuk.

Ez a módszer konvergens és gyors. A 3. lépésnél tulajdonképpen bármely értéknél kettévághatnánk a görbét, azonban, ha van legtávolabb az egyenestől, akkor ő húzza el tőle leginkább a görbét. Mivel -nek a paraméterértéknél van legnagyobb hatása a görbe alakjára, ezért az algoritmust gyorsítjuk, ha ennél az értéknél vágjuk ketté a görbét.

Ezt az algoritmust célszerű használni a Bézier-görbe kirajzolásához. Ha például pixeles megjelenítőt használunk, akkor az pixel garantáltan sima, folytonos, esztétikus eredményt ad, és mindezt viszonylag kevés egyenes szakasszal éri el, mivel az algoritmus a görbület változását figyelembe véve állítja elő a közelítő töröttvonalat.

3.10. Interpoláció Bézier-görbével

A Bézier-görbék approximáló görbék, melyek általában csak az első és utolsó kontrollponton mennek át. Adott pontokhoz azonban meghatározhatjuk azt a Bézier-görbét, mely áthalad rajtuk. A feladat a következő:

Adottak a ... pontok, valamint az ... egymástól különböző paraméterértékek.

Keressük azokat a ... pontokat, amelyek – mint kontrollpontok – által meghatározott Bézier-görbe áthalad az adott pontokon, azaz

Tekintsük a Bézier-görbe

Bernstein-polinom alakját! A feltételek alapján a

egyenlőségeknek kell teljesülni, amiből a

inhomogén lineáris egyenletrendszert kapjuk az ismeretlen -re . Az egyenletrendszer determinánsa nullától különbözik, ha az -k különbözőek, mivel a , Bernstein-polinomok lineárisan függetlenek, ezért ilyen esetben az egyenletrendszernek van egyértelmű megoldása. (Ne feledjük, hogy koordinátánként kell egy-egy egyenletrendszert megoldani!) Az alkalmazások során általában csak a pontokat ismerjük, az paraméterértékeket a 2.6. szakaszban ismertetett módszerekkel határozhatjuk meg.

4. fejezet - B-szplájn-görbe

A B-szplájn-görbék alapjául szolgáló úgynevezett B-szplájn alapfüggvények kutatása egészen a XIX. századra nyúlik vissza, amikor N. I. Lobacsevszkij valószínűségi eloszlások konvolúciójaként állította elő őket. Maga a B-szplájn elnevezés (Basis Splines) I. J. Schoenbergtől származik, aki 1946-ban egyenközű csomóértékeken értelmezett B-szplájn alapfüggvényeket használt statisztikai adatok simítására. Geometriai modellezésre C. de Boor használta először a B-szplájn alapfüggvényeket.

4.1. Normalizált B-szplájn alapfüggvény

4.1. Definíció. Az skalárokon az

rekurzióval adott függvényt normalizált B-szplájn alapfüggvénynek nevezzük, az skalárokat csomóértékeknek (knot values), a belőlük, mint komponensekből képzett vektort pedig csomóvektornak (knot vector). Az előforduló -t definíció szerint -nak tekintjük.

4.1. ábra - Első-, másod- és harmadfokú normalizált B-szplájn alapfüggvények

Első-, másod- és harmadfokú normalizált B-szplájn alapfüggvények

Az lépcsős függvény (lásd a 4.1./a ábrát). Az definíció szerint

ami kifejtve

Ez tehát intervallumonként adott lineáris függvény (lásd a 4.1./b ábrát). Az függvény a rekurzió szerint

ami a rekurzió feloldása után az

eredményre vezet. tehát, intervallumonként meghatározott legfeljebb másodfokú polinom (lásd a 4.1./c ábrát), a függvénygörbe három parabolaívből áll. Ezt szemlélteti a 4.2. ábra.

4.2. ábra - Az Az N_{i}^{3}\left(u\right) függvényt alkotó C^{1} kapcsolódó parabolaívek függvényt alkotó Az N_{i}^{3}\left(u\right) függvényt alkotó C^{1} kapcsolódó parabolaívek kapcsolódó parabolaívek

Az N_{i}^{3}\left(u\right) függvényt alkotó C^{1} kapcsolódó parabolaívek


Általánosan azt állapíthatjuk meg, hogy az normalizált B-szplájn alapfüggvény legfeljebb edfokú polinom. A akkor fordulhat elő, ha szomszédos csomóértékek egybeesnek.

Az csomóértékeket a monotonitás biztosítása mellett tetszőlegesen adhatjuk meg. Ha a szomszédos csomóértékek távolsága állandó, vagyis konstans, akkor egyenközű, vagy uniform B-szplájn alapfüggvényről beszélünk. Ezt legkönnyebben az választással érhetjük el. A megegyező fokszámú, egyenközű normalizált B-szplájn alapfüggvények görbéje egybevágó (lásd a 4.3. ábrát), eltolással származtathatók egymásból,

Természetesen a B-szplájn alapfüggvény és a segítségével definiált B-szplájn-görbével kapcsolatos egyébb formulák is egyszerűsödnek, ennek ellenére az egyenközű paraméterezés kevéssé használatos, mivel szűkíti a modellezhető alakok körét, csökkenti a görbe módosítási lehetőségeit.

4.3. ábra - Harmadfokú egyenközű normalizált B-szplájn alapfüggvények

Harmadfokú egyenközű normalizált B-szplájn alapfüggvények

4.2. Tétel. , ha .

Bizonyítás. A bizonyítást szerinti teljes indukcióval végezzük el.

i) -re definíció szerint teljesül.

ii) -ről -ra a rekurzív definíció szerint

Az indukciós feltevés alapján

Ebből következik, hogy és , ha – ha nem a fenti intervallumok uniójában van – , és akkor bármilyen lineáris kombinációjuk is .

esetén csak az intervallumon lehet nullától különböző. Az intervallum fölötti -adrendű normalizált B-szplájn alapfüggvények közül csak az lehet nullától különböző. Ezen függvények kiszámításához szükséges alacsonyabb rendű B-szplájn alapfüggvények az

háromszögalakba rendezhetők, mivel a többi alapfüggvény nulla az intervallumon. Bármely függvény kiszámításához csak a tőle jobbra lévő oszlopban a vele azonos és az eggyel alatta lévő sorban szereplő függvények szükségesek.

A rend szerinti teljes indukcióval könnyen belátható a normalizált B-szplájn alapfüggvény következő két tulajdonsága is.

4.3. Tétel. A normalizált B-szplájn alapfüggvények nemnegatívak, azaz

4.4. Tétel. A -adrendű normalizált B-szplájn alapfüggvények összege az értelmezési tartomány bármely pontjában , azaz

4.1.1. Többszörös csomóértékek

A 4.1. definícióban akkor fordulhat elő, ha szomszédos csomóértékek egybeesnek. Ilyen esetben az egybeeső csomóértékekkel meghatározott intevallumok nulla hosszúságúak lesznek, vagyis a függvény kevesebb ívből fog állni. Ha például , akkor

ez látható a 4.4. ábrán.

4.4. ábra - Különböző és egybeeső csomóértékeken adott másodfokú normalizált B-szplájn alapfüggvények

Különböző és egybeeső csomóértékeken adott másodfokú normalizált B-szplájn alapfüggvények

4.5. Definíció. Azt mondjuk, hogy az csomóérték multiplicitása , ha -től kezdődően darab egymást követő csomóérték megegyezik, azaz .

A csomóértékek multiplicitását kétféleképpen is érthetjük. Egyrészt a csomóvektorra vonatkozóan, másrészt egy adott normalizált B-szplájn alapfüggvényre vonatkozóan. Az csomóvektorban például multiplicitása , azonban multiplicitása az függvényekre nézve (nincs rájuk hatással), az -ra nézve , -ra , -re nézve pedig .

A következőkben azt mutatjuk meg, hogy a normalizált B-szplájn alapfüggvények speciális eseteként a Bernstein-polinomokat kapjuk.

4.6. Tétel. Az csomóértékeken az

egyenlőség teljesül.

Bizonyítás. A bizonyítást szerinti teljes indukcióval végezzük el.

i) esetén a csomóértékek , lesznek. A vizsgált alapfüggvények az intervallumon

melyek alapján

ii) -ről -ra

Ha , akkor , ezért a rekurzív definíciót és az indukciós feltevést figyelembe véve

Ha , akkor , ezért

esetén pedig a 4.1. definícióbeli rekurzió szerint

ami az indukciós feltevés alapján és a Bernstein-polinomok rekurzív tulajdonsága miatt

Az egybeeső csomóértékeknek természetesen nem kell feltétlenül -nak és -nek lenni. Általánosabban azt mondhatjuk, hogy az

csomóértékek esetén

teljesül. Tehát, ha két egymást követő, különböző csomóérték multiplicitása , akkor az ezen az intervallumon nullától különböző B-szplájn alapfüggvények megegyeznek a megfelelő Bernstein-polinomokkal.

4.5. ábra - u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon miatt az u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon, u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon, u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon egyenlőségek teljesülnek az u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon intervallumon

u_{1}=u_{2}<u_{3}=u_{4} miatt az N_{0}^{3}\left(u\right)=B_{0}^{2}\left(u\right) , N_{1}^{3}\left(u\right)=B_{1}^{2}\left(u\right) , N_{2}^{3}\left(u\right)=B_{2}^{2}\left(u\right) egyenlőségek teljesülnek az \left[u_{2},u_{3}\right] intervallumon


A 4.6. tételt szemlélteti a 4.5. ábra a esetre.

4.7. Tétel. Ha az csomóérték multiplicitása , akkor

Bizonyítás. A bizonyításhoz vegyük az

rekurzív felbontást! Ennek első tagja nulla, a második tag első tényezője . felbontása

amiről ugyanaz mondható, mint felbontásáról. Tovább folytatva az eljárást -hez jutunk, vagyis a (4.1) egyenlőség teljesül.

4.1.2. A B-szplájn alapfüggvény deriváltja

A B-szplájn alapfüggvénnyel definiálandó B-szplájn-görbének meg kell határozni az érintőjét, az ívek folytonos kapcsolódásának rendjét, ezért szükség van az alapfüggvények deriváltjára is.

4.8. Tétel. Az normalizált B-szplájn alapfüggvény deriváltja

alakban írható fel.

Bizonyítás. A bizonyítást szerinti teljes indukcióval végezzük el.

i) esetén

mivel , .

ii) -ről -ra:

a -re vonatkozó feltevést alkalmazva és átrendezve

Figyelembe véve az

azonosságot

A (4.2) egyenlőség felhasználásával az -edik deriváltra a

rekurzív formulát kapjuk. A (4.2) összefüggést másként is általánosíthatjuk az -edik derivált meghatározására. (A -nél magasabb rendű deriváltak eltűnnek, mivel -edfokú polinomról van szó.)

4.1.3. Lineáris függetlenség

A B-szplájn elnevezésben a B a bázis (basis) szó rövidítése. Most megmutatjuk, hogy az elnevezés megalapozott, azaz megmutatjuk, hogy a csomóértékek tetszőleges intervalluma fölötti nullától különböző -edfokú normalizált B-szplájn alapfüggvények, a legfeljebb -edfokú polinomok bázisát alkotják az intervallumon. Ennek érdekében belátjuk, hogy ezek a függvények lineárisan függetlenek.

4.9. Tétel. Az normalizált B-szplájn alapfüggvények lineárisan függetlenek az intervallumon.

Bizonyítás. A bizonyítást szerinti teljes indukcióval végezzük el.

i) -re nyilvánvalóan teljesül.

ii) Feltételezve, hogy -re teljesül, megmutatjuk, hogy -ra is.

Megmutatjuk, hogy a

egyenlőség csak esetén teljesülhet. (4.3) deriválásával

Az első összeg alsó határa -re növelhető, a második összeg felső határa pedig -re csökkenthető, mivel . Ezek alapján

aminek az első összegén a indextranszformációt végrehajtva

Erre az indukciós feltevés igaz, ezért , , amiből konstans következik. Ez a konstans azonban csak lehet, mivel egyébként , ami ellentmond a 4.4. tételnek.

Az intervallum fölötti darab -edfokú polinom tehát lineárisan független rendszert alkot, ezért ezen intervallum fölött a legfeljebb -edfokú polinomok dimenziós terének egy bázisát képezik.

4.2. A B-szplájn-görbe és tulajdonságai

A B-szplájn-görbe a kontrollpontokból kiindulva

alakban írható fel. Meg kell azonban határoznunk az értelmezési tartományt, lehetséges értékeit és azt, hogy mely csomóértékekre van szükség. A 4.1. definíció következtében az függvényhez az csomóértékekre van szükség, ezért a (4.4) kifejezésben szereplő függvényekhez az csomóértékre.

Az értelmezési tartomány (paramétertartomány) meghatározásakor azt a célt tartjuk szem előtt, hogy a tartomány minden pontjához a (4.4) kifejezés tartalmazzon minden olyan függvényt, amely ott -tól különböző lehet. (Ez biztosítja, hogy a görbe bármely pontja kontrollpontok (nem feltétlenül az összes) konvex kombinációja legyen.) A 4.2. tétel következtében az paraméterértéknél csak az függvények lehetnek nullánál nagyobbak. Ezért minimális értéke lehet, a maximális pedig .

Annak érdekében, hogy a (4.4) kifejezés folytonos vonalat írjon le, -nek kell teljesülni. ( esetén a (4.4) kifejezés a kontrollpontokat eredményezi.) -ra van felső korlát is, mivel ahhoz, hogy értelmezési tartományról beszélhessünk -nek kell teljesülni, vagyis -nek.

Ezen megfontolások eredményeként kapjuk a B-szplájn-görbe formális definícióját.

4.10. Definíció. Az

kifejezéssel adott görbét -adrendű (-edfokú), B-szplájn-görbének nevezzük, a pontokat pedig kontrollpontoknak vagy de Boor-pontoknak. az -edik -edfokú normalizált B-szplájn alapfüggvényt jelöli, melyek értelmezéséhez az csomóértékek szükségesek.

Ha az csomóértékek különbözőek, akkor a B-szplájn-görbe általában egyetlen kontrollponton sem halad át. Kivételt képeznek azok az esetek, amikor a kontrollpontok kollineárisak, vagy ha . Az utóbbi esetben a kontrollpoligont kapjuk meg elsőfokú B-szplájn-görbeként.

Az alkalmazások során azonban jó, ha van némi támpont a görbe elhelyezkedésére, például ha ismerjük a kezdő- és végpontját úgy, mint a Bézier-görbék esetén. Ez a B-szplájn-görbénél is elérhető a csomóértékek megfelelő választásával. Ha ugyanis teljesül, akkor a (4.5) összeg az helyen

mivel , ha . Továbbá következtében , , ezért a 4.4. tétel miatt , tehát

vagyis a B-szplájn-görbe kezdőpontja a kontrollpont lesz. Mint láttuk, ez az értékétől függetlenül bekövetkezik, mindazonáltal az a szokás alakult ki, hogy módon választják meg a csomóértékeket a kezdőpontbeli interpoláláshoz, vagyis a legelső figyelembe veendő csomóérték multiplicitása lesz. Az csomóértéknek nincs hatása az függvényre az intervallumon, mivel a rekurzív definíciót felhasználva

aminek első tagja nulla, mivel , ha . Ennek következtében -nak egyáltalán nincs hatása a görbe alakjára.

4.6. ábra - Az Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik és Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik csomóvektorokon értelmezett Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik függvény az Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik intervallumon megegyezik

Az u_{0},u_{1}=u_{2}=u_{3},u_{4} és u_{0}=u_{1}=u_{2}=u_{3},u_{4} csomóvektorokon értelmezett N_{0}^{4}\left(u\right) függvény az \left[u_{3},u_{4}\right] intervallumon megegyezik

A 4.6. ábra esetére szemlélteti az függvénynek ezt a tulajdonságát. Látható, hogy az csomóértékekkel adott B-szplájn alapfüggvény az intervallumon megegyezik az csomóértékekkel adott függvénnyel. A különbség az, hogy amikor csomóérték egybeesik, akkor -nál szakadása van a függvénynek, míg a másik esetben folytonos. A végpontbeli interpolációhoz hasonló indokok következtében az a szokásos csomóérték-választás (bár már az is elég lenne, mivel -nak nincs hatása a görbe alakjára).

4.7. ábra - Harmadfokú B-szplájn-görbét alkotó ívek. Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7} és Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7} multiplicitása Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7}, ezért a görbe kezdőpontja Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7}, végpontja Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7}

Harmadfokú B-szplájn-görbét alkotó ívek. u_{1} és u_{8} multiplicitása 3 , ezért a görbe kezdőpontja \mathbf{d}_{0} , végpontja \mathbf{d}_{7}

A 4.5) kifejezéssel adott B-szplájn-görbe -edfokú ívekből áll, melyek a csomóértékekhez tartozó pontokban kapcsolódnak egymáshoz, lásd a 4.7. ábrát. A kapcsolódás folytonosságának rendjét a 4.5. szakaszban vizsgáljuk.

A normalizált B-szplájn alapfüggvények korábban bebizonyított tulajdonságai alapján könnyen beláthatjuk a 4.10. definíció szerinti B-szplájn-görbe néhány tulajdonságát.

4.11. Tétel. A B-szplájn-görbe lokálisan változtatható, azaz valamely kontrollpont pozíciójának megváltoztatása nem eredményezi a teljes görbe alakjának változását.

Bizonyítás. A 4.10. definíció és a 4.2. tétel következtében a kontrollpontnak csak intervallumon van befolyása a görbe alakjára.

4.8. ábra - A A \mathbf{d}_{4} kontrollpont elmozdításakor a harmadfokú B-szplájn-görbének csak az \left[u_{4},u_{8}\right] fölötti része változik meg kontrollpont elmozdításakor a harmadfokú B-szplájn-görbének csak az A \mathbf{d}_{4} kontrollpont elmozdításakor a harmadfokú B-szplájn-görbének csak az \left[u_{4},u_{8}\right] fölötti része változik meg fölötti része változik meg

A \mathbf{d}_{4} kontrollpont elmozdításakor a harmadfokú B-szplájn-görbének csak az \left[u_{4},u_{8}\right] fölötti része változik meg

A lokális módosíthatóságot illusztrálja a 4.8. ábra. A lokális hatásnak fontos következménye, hogy a B-szplájn-görbe – a Bézier-görbével ellentétben – tartalmazhat egyenes szakaszt akkor is, ha nem minden kontrollpontja kollineáris (lásd a 4.9. ábrát). DEMO: B_spline_curve.exe

4.9. ábra - Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon, Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon bárhol lehet a Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon szakaszon, Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon pedig a Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon szakaszon

Két szakasz, és azokat lekerekítő parabolaív leírása egyetlen másodfokú B-szplájn-görbeként. A csomóvektor \left\{ 0,0,0,1,1,2,2,3,3,3\right\} , \mathbf{d}_{1} bárhol lehet a \mathbf{d}_{0},\mathbf{d}_{2} szakaszon, \mathbf{d}_{5} pedig a \mathbf{d}_{4},\mathbf{d}_{6} szakaszon

4.12. Tétel. A -edfokú B-szplájn-görbe bármely íve a görbe darab kontrollpontjának konvex burkában van.

Bizonyítás. A 4.10. definíció, valamint a 4.2. tétel miatt a görbe -edik íve

alakban írható fel. Ehhez hozzávéve a 4.3. és 4.4. tételek eredményeit azt kapjuk, hogy az ív pontjai a kontrollpontok összegű nemnegatív lineáris kombinációja. Tehát a kontrollpontok konvex burkában van.

Maga a görbe pedig ezek uniójában van, ami általában nem lesz konvex halmaz, de a fokszámtól függően, egy szűkebb-bővebb tartományt határoz meg, amin kívül nem lehet a görbe. esetén a kontrollpoligon a konvex burkok uniója, és a fokszám növelésével a görbe egyre kevésbé követi a kontrollpoligon alakját (lásd a 4.10. ábrát).

4.10. ábra - Egybevágó kontrollpoligonú, különböző rendű B-szplájn-görbék, és az íveket meghatározó kontrollpontok konvex burkai

Egybevágó kontrollpoligonú, különböző rendű B-szplájn-görbék, és az íveket meghatározó kontrollpontok konvex burkai

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.

4.4. B-szplájn-görbe deriváltja

4.13. Tétel. A B-szplájn-görbe deriváltja az helyen

Bizonyítás. A normalizált B-szplájn alapfüggvény (4.2) deriváltját felhasználva

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 . Így a végeredmény

Ez azt jelenti, hogy a -edfokú B-szplájn-görbe hodográfja (lásd a 3.10. definíciót) -edfokú B-szplájn-görbe.

A fent bizonyított összefüggést egymás után alkalmazva, az -edik deriváltra esetén a következő eredményt kapjuk:

ahol

A B-szplájn-görbék deriváltját a de Boor-algoritmussal kapott pontokkal is kifejezhetjük.

4.14. Tétel. A B-szplájn-görbe deriváltja az helyen

ahol a de Boor-algoritmus -edik lépésében kapott pontokat jelöli.

Bizonyítás. szerinti teljes indukciót használva a tétel állításánál általánosabb

összefüggést igazoljuk.

i) esetén (4.6) alapján

ezek deriváltja

ii) -ről -re

A de Boor-algoritmus -edik lépésénél

aminek a deriváltja

Az indukciós feltevést alkalmazva

Felhasználva, hogy

valamint

a deriváltra

Ami esetén a tétel igazolása.

4.5. Folytonosság

A B-szplájn-görbe egymáshoz kapcsolódó ívekből áll, a kapcsolódások a csomóértékekhez tartozó pontokban vannak. Most az ívek paraméter szerinti folytonosságának rendjét fogjuk vizsgálni a kapcsolódási pontokban. Először egyszeres csomóértéknél nézzük meg a folytonosságot.

4.15. Tétel. Az B-szplájn-görbe

ívei a paraméter szerint -edrendben folytonosan () kapcsolódnak egymáshoz az csomóértéknél, ha és multiplicitása .

Bizonyítás. A (4.7) összefüggés szerint

esetén

mivel ha ;

mivel ha .

esetén

felhasználva, hogy .

mivel .

Összefoglalva:

de

vagyis az paraméternél -edrendű folytonosság () áll fenn.

Az egyes ívek természetesen belső pontjaikban tetszőlegesen sokszor differenciálhatók. Most megmutatjuk, hogy a csomóérték multiplicitásának növelése csökkenti a folytonosság rendjét. Ha az csomóérték multiplicitása ( felső korlátjának meghatározására később visszatérünk), azaz , akkor a B-szplájn-görbe ívei egyetlen ponttá zsugorodnak, ezért ebben az esetben az és ívek kapcsolódásának folytonosságát kell vizsgálni. Ezt a 4.15. tétel általánosításában foglaljuk össze.

4.16. Tétel. Az

görbeívek az multiplicitású csomóértéknél a paraméter szerint -edrendben folytonosan () kapcsolódnak.

Bizonyítás. Megmutatjuk, hogy

de

i) esetén (4.7) alapján

mivel , multiplicitása miatt.

Másrészt

mivel , az adott feltételek mellett. Ezzel tehát beláttuk a (4.8) egyenlőségek teljesülését.

ii)

mivel , a csomóértékek egybeesése miatt.

mivel (lásd a 4.7. tételt)) és , .

Ezzel a (4.9) egyenlőtlenség is bizonyított.

Tehát az -szeres csomóértéknél a -adrendű görbe folytonos. Ezért esetén a görbe , vagyis még folytonos, de már nem differenciálható, törés van a görbében. esetén már a folytonosság is megszűnne, vagyis a kapott alakzat már a szemlélet alapján sem lenne görbének tekinthető. Ezért a multiplicitásra az egyenlőtlenséget írjuk elő.

A multiplicitású csomóértéknél a -edfokú B-szplájn-görbe a kontrollponton megy át, ugyanis

mivel

amiben az első tag nulla, a második pedig a 4.7. tétel miatt, és a (4.10) összegben szereplő többi B-szplájn alapfüggvény eltűnik -nél.

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.

4.7. Fokszámnövelés

Szükség lehet a B-szplájn-görbe fokszámának növelésére is, azaz adott -edfokú B-szplájn-görbének -adfokú görbeként való leírására. Ilyen eset például, ha több, különböző fokszámú görbével adott alakot egyetlen B-szplájn-görbével akarunk leírni.

A feladat tehát az csomóértékekkel és kontrollpontokkal adott -edfokú

B-szplájn-görbét, az csomóértékekkel és kontrollpontokkal adott -adfokú

B-szplájn-görbével leírni úgy, hogy

Meghatározandó: .

Tegyük fel, hogy az eredeti csomóvektorban összesen darab különböző belső csomóérték van (ahol ívek kapcsolódnak), és ezek multiplicitása rendre ! A megnövelt fokszámú görbe íveinek folytonossága az multiplicitású csomópontban (lásd a 4.16. tételt). Mivel az és görbék folytonossági rendjének is meg kell egyezni minden pontban, ezért ugyanennek a csomóértéknek a multiplicitása az csomóvektorban lesz. Ebből következően , és az csomóértékeket úgy kapjuk meg, hogy az -ben minden csomóértéknek eggyel növeljük a multiplicitását (az elsőnek és az utolsónak is).

Hátra van még a kontrollpontok meghatározása. Ezeket a

egyenlőségből, megfelelően választott darab értéknél vett helyettesítéssel nyert egyenletrendszer megoldásával megkaphatjuk. Ez gyakorlatilag interpolációs probléma, amivel a 4.8. szakaszban foglalkozunk. Az ismételt fokszámnövelések során kapott kontrollpoligonok sorozata a B-szplájn-görbéhez konvergál.

4.8. Interpoláció B-szplájn-görbével

Modellezés során gyakran előfordul, hogy B-szplájn-görbével kell adott pontokat interpolálni, azaz adott pontokhoz olyan adott rendű B-szplájn-görbét meghatározni, mely átmegy a pontokon. A feladat pontos megfogalmazása a következő:

4.14. ábra - Interpoláló harmadfokú B-szplájn-görbék. Az interpolálandó pontok Interpoláló harmadfokú B-szplájn-görbék. Az interpolálandó pontok t_{i} paraméterének meghatározása: a) egyenközű, b) húrhosszal arányos, c) centripetális paraméterének meghatározása: a) egyenközű, b) húrhosszal arányos, c) centripetális

Interpoláló harmadfokú B-szplájn-görbék. Az interpolálandó pontok t_{i} paraméterének meghatározása: a) egyenközű, b) húrhosszal arányos, c) centripetális

Adottak a pontok és a hozzájuk tartozó paraméterértékek.

Keressük azokat a kontrollpontokat és az , csomóértékeket, melyekkel meghatározott -adrendű B-szplájn-görbére

teljesül. Az esetek többségében csak a pontokat ismerjük, a paraméterértékek meghatározásához a 2.6. szakaszban ismertetett módszerek közül választhatunk.

A feladat megoldása az

lineáris egyenletrendszer megoldását jelenti (koordinátánként). Az egyértelmű megoldhatóság tehát, a (4.14) lineáris egyenletrendszerek egyértelmű megoldhatóságán, vagyis az együtthatómátrix (a továbbiakban ) invertálhatóságán múlik. Erre a Schoenberg–Whitney-tétel ad kritériumot, amit bizonyítás nélkül ismertetünk.

4.21. Tétel. Az együtthatómátrix akkor és csak akkor invertálható, ha a főátlója pozitív, azaz

Ha az függvények folytonosak (az csomóértékek multiplicitása ), akkor az feltétel az

feltétellel ekvivalens, ahol egyenlőség csak akkor megengedett, ha az értelmezési tartomány , vagy végpontjairól van szó.

A interpolációs paraméterekhez az

csomóértékeket választva az egyértelmű megoldhatóság is biztosított, és a tapasztalatok szerint ez a megoldás az alkalmazások számára is kielégítő. Természetesen a -k ismeretében, a (4.15) feltétel teljesítése mellett másként is megválaszthatjuk a csomóértékeket. A 4.14. ábra különböző interpolációs paraméterekhez tartozó harmadfokú interpoláló B-szplájn-görbéket mutat. Látható, hogy a paraméterértékek hatása igen jelentős.

4.9. Periodikus B-szplájn-görbék

Az eddigi ábrákon többnyire olyan B-szplájn-görbék láthatók, amelyek az első és utolsó kontrollponton átmennek. Ezt úgy értük el, hogy az első és utolsó figyelembe veendő csomóérték multiplicitása megyegyezik a görbe rendjével. Az ilyen csomóvektorokat rögzítettnek (clamped) is nevezik, megkülönböztetésül a szabad (unclamped) csomóvektoroktól, amelynél az első és utolsó csomóérték multiplicitása is kisebb, mint a görbe rendje. Az utóbbi esetben a görbe általában egyetlen kontrollponton sem megy át.

A rögzített csomóvektorral adott B-szplájn-görbékkel nyílt görbéket modellezünk. A szabad csomóvektoron értelmezett B-szplájn-görbékkel zárt görbéket modellezhetünk, ha a csomóértékeket és a kontrollpontokat a fokszámnak megfelelően periodikusan újra megadjuk.

4.22. Definíció. A , kontrollpontokkal adott

görbét -edfokú (-adrendű) periodikus (vagy zárt) B-szplájn-görbének nevezzük. A hozzá szükséges csomóértékeket az

összefüggéssel adjuk meg, ahol , , .

Ez tehát azt jelenti, hogy értékének megfelelően a kontrollpontokat és a értékeket (a szomszédos csomóértékek közötti távolságot) periodikusan ismételjük. Így a kontrollpontokra teljesül. A csomóértékek közötti távolság is periodikusan ismétlődik, ezért mindössze darab különböző B-szplájn alapfüggvény van, melyekből eltolással kaphatjuk a többit:

ahol és .

Természetesen minden sokkal egyszerűbbé válik, ha konstans, azaz ha uniform paraméterezést választunk. A 4.22. definícióból látható, hogy zárt B-szplájn-görbék esetén -ra nincs felső korlát. A fokszám növelésekor kapott zárt B-szplájn-görbék egyre kevésbé követik a kontrollpoligon alakját (lásd a 4.15. ábrát). Az is bebizonyítható, hogy a fokszám növelésekor kapott zárt B-szplájn-görbék sorozata a kontrollpontok számtani közepéhez (a pontokat reprezentáló helyvektorok számtani közepéhez) tart, ha .

4.15. ábra - Zárt B-szplájn-görbék

Zárt B-szplájn-görbék

Ugyanaz az alak leírható rögzített és szabad csomóvektorokon értelmezett B-szplájn-görbékkel is (létezik egzakt konverzió, azonban a geometriai modellező rendszerek túlnyomó többsége csak a nyílt B-szplájn-görbék használatát támogatja.

5. fejezet - Racionális görbék

Kezdetben a CAD rendszerek különböző célokra más-más görbe- és felületleírást használtak, így kúpszeleteket és másodrendű felületeket, Bézier-görbéket és felületeket, valamint szplájnokat. Felmerült az igény olyan görbe- és felületleírásra, amellyel a korábban kifejlesztett rendszerekben használt görbék és felületek egységesen írhatók le. Ez a leírás a racionális görbe és felület lett, ezen belül is elsősorban a racionális B-szplájn-görbe és felület. Ezeket szokás NURBS görbéknek és felületeknek is nevezni (Nonuniform Rational B-spline).

Bár az első nagyobb nyilvánosságot kapott publikációk a 70-es évek elején jelentek meg, a racionális B-szplájn-görbék és -felületek már a 90-es évekre a geometriai modellezőrendszerek és a különböző rendszerek közötti adatátvitelnek a de facto szabványaivá váltak.

5.1. Racionális Bézier-görbe

Egy kontrollpont hatásának növelése úgy is elérhető, hogy a kontrollpont multiplicitását növeljük (a kontrollpontot egymást követően többször adjuk meg). Alternatív megoldás, hogy a kontrollpontokat egy-egy skalárral megszorozzuk, súlyozzuk őket.

5.1. Definíció. A

kifejezéssel adott görbét -edrendű racionális Bézier-görbének nevezzük. A , (), pontokat a görbe kontrollpontjainak, az általuk meghatározott poligont kontrollpoligonnak, a skalárokat pedig súlyoknak nevezzük.

Síkgörbe esetén a definíció szemléletes megközelítése a következő: A háromdimenziós tér koordináta-rendszerében adott az -edrendű Bézier-görbe kontrollpontjaival. Ezt a görbét vetítjük az origóból a síkra. A vetületgörbét -edrendű racionális Bézier-görbének nevezzük, a nemracionális görbét pedig ősképének. A görbét kontrollpontjai és súlyai határozzák meg. A dimenziószámokat eggyel növelve a térbeli racionális Bézier-görbét kapjuk.

Az a tény, hogy a racionális Bézier-görbéhez az eggyel magasabb dimenziójú térben mindig van olyan nemracionális Bézier-görbe, amelynek centrális vetülete a racionális görbe, megkönnyíti a racionális Bézier-görbék tulajdonságainak bizonyítását. Az (5.1) kifejezésben a kontrollpontokat a paraméter racionális függvényeivel (polinomok hányadosával) szorozzuk meg, innen ered a racionális görbe elnevezés.

Látható, hogy az 5.1. definíció a nemracionális Bézier-görbe általánosítása, ugyanis esetén az (5.1) kifejezésben a súlyokkal egyszerűsíthetünk, így a

kifejezést kapjuk, amiben a nevező .

Negatív súlyok esetén szingularitások léphetnek fel, ezért csak nemnegatív súlyokat szokás megengedni. Szingularitás akkor lép fel, ha az (5.1) nevezője eltűnik, azaz valamely -re. Ez azt jelenti, hogy van olyan pont, amelynek vetülete végtelen távoli pont lesz.

A konstrukcióból az is nyilvánvaló, hogy a súlyok csak arányosság erejéig meghatározottak, hiszen a és , súlyok ugyanarra az eredményre vezetnek. Ez azt jelenti, hogy bármely racionális Bézier-görbe végtelen sok nemracionális Bézier-görbe centrális vetületeként előállítható. A racionális Bézier-görbe azonban súlyainak másfajta transzformációjára nézve is invariáns.

5.2. Tétel. A kontrollpontok és , súlyok ugyanazt a racionális Bézier-görbét írják le, mint a kontrollpontok és , , súlyok.

Bizonyítás. Megmutatjuk, hogy a súlyoknak ez a transzformációja egyenértékű a paramétertartomány tört lineáris transzformációjával, ami megengedett paramétertranszformáció, tehát a görbe alakját nem változtatja meg. Tekintsük a adatokkal meghatározott

racionális Bézier-görbét! Az értelmezési tartományt önmagára képezzük le az

tört lineáris transzformációval. Az következtében és , következtében pedig . Ezeket felhasználva az (5.2)

alakban írható fel. Annak érdekében, hogy legyen esetén, az

egyenlőtlenségnek is teljesülnie kell, amiből , azaz következik. A fentiek alapján

és

A racionális Bézier-görbe pedig

amiből helyettesítéssel a tétel igazolását nyerjük.

Ez a tétel azt is jelenti, hogy a racionális Bézier-görbe invariáns a paramétertartomány olyan tört lineáris transzformációjával szemben, amely az intervallum pontjaihoz végesben fekvő pontokat rendel. Ez akkor teljesül, ha az (5.2) nevezője nem tűnik el. A tört lineáris paramétertranszformációt projektív paramétertranszformációnak is nevezzük, mivel geometriailag az egyenes önmagára való projektív transzformációját jelenti.

A tétel további következménye, hogy a racionális Bézier-görbe súlyai mindig transzformálhatók – a görbe alakjának megtartása mellett – úgy, hogy tetszőlegesen kiválasztott két (pozitív) súly legyen. Válasszuk ki a és súlyokat! Azt akarjuk elérni, hogy

legyen, amiből

következik. Ezzel az -val végrehajtva az 5.2. tétel szerinti transzformációt

A reciprokával megszorozva az összes súlyt, a kívánt eredményt kapjuk.

Ha és , akkor

amiből következik. Tehát a állapot mindig elérhető, amit standard alaknak nevezünk, és gyakran használunk.

5.1.1. Tulajdonságok

Az (5.1) görbe alapfüggvénye a

racionális függvény. Ezt megvizsgálva látható, hogy

  • az alapfüggvények nemnegatívak, mivel a súlyok és a Bernstein-polinomok nemnegatívak;

  • az alapfüggvények összege , mivel

A fentiek következménye, hogy a racionális Bézier-görbe a kontrollpontok olyan lineáris kombinációja, ahol az együtthatók nemnegatívak, és összegük . Tehát konvex lineáris kombinációról van szó, amiből a konvex burok tulajdonság következik, azaz a racionális Bézier-görbe kontrollpontjainak konvex burkában van. (Ne feledjük, hogy csak nemnegatív súlyokat engedtünk meg !)

A centrális vetítéssel való származtatásból következően átöröklődnek a nemracionális Bézier-görbe olyan tulajdonságai is mint a

  • szimmetria, azaz a ; és ; adatok ugyanazt a racionális Bézier-görbét határozzák meg;

  • globális változtathatóság, vagyis bármely kontrollpont helyzetének megváltoztatása a teljes görbe alakjának változását eredményezi;

  • végpontbeli interpoláció, azaz és ;

  • kezdő-, illetve a végpontban a görbe érintője a kontrollpoligon első, illetve utolsó oldala;

  • konvex burok tulajdonság, azaz a görbe kontrollpontjainak konvex burkában van;

  • hullámzáscsökkentő tulajdonság, azaz a görbét bármely egyenes vagy sík legfeljebb annyi pontban metszi, mint kontrollpoligonját;

  • a paraméter affin transzformációjával szembeni invariancia, vagyis ha a intervallumról a paramétertranszformációval áttérünk az intervallumra, a görbe alakja nem változik. (Ez a tulajdonság természetesen a projektív paramétertranszformációval szembeni invarianciából is következik.)

A racionális Bézier-görbék elterjedéséhez az is hozzájárult, hogy egzaktul leírhatók velük a kúpszeletek. További fontos előnye, hogy a racionális Bézier-görbe centrális vetülete, illetve általában projektív transzformáltja, is racionális Bézier-görbe.

5.3. Tétel. A racionális Bézier-görbe kontrollpontjainak projektív transzformációjára nézve zárt.

Bizonyítás. Az , () térbeli racionális Bézier-görbe projektív transzformációját -es mátrixszal írhatjuk le. Az dimenziós őskép terében ez affin transzformáció, melyre nézve a nemracionális Bézier-görbe zárt. A transzformált őskép centrális vetülete - mely racionális Bézier-görbe - lesz az eredeti görbe transzformáltja.

A gyakorlatban ez azt jelenti, hogy a kontrollpontjaival és súlyaival adott racionális Bézier-görbét alávetjük az mátrixszú projektív transzformációnak. A transzformációt az őskép terében (homogén koordinátákban) hajtjuk végre, azaz a pontokat transzformáljuk,

amit a hipersíkra vetítve

Ezt minden olyan esetben el tudjuk végezni, amikor , vagyis a transzformáció során nem végtelen távoli pontba megy át. Az 5.3. tételnek igen fontos következménye, hogy a racionális Bézier-görbe centrális (perspektív) vetülete is racionális Bézier-görbe lesz. Tehát elegendő csak a kontrollpontokat levetíteni a képsíkra, mert a kontrollpontok vetülete által meghatározott görbe megegyezik a görbe vetületével.

A racionális Bézier-görbénél a súly a görbe alakjának változtatására szolgál. A súly növelése azt eredményezi, hogy a görbe közelebb kerül a kontrollponthoz, azaz a súly a kontrollpont felé húzza a görbét. Hasonló hatással van a Bézier-görbére a kontrollpont multiplicitásának növelése is azonban, mint azt az 5.1. ábrán láthatjuk, van eltérés a kettő között.

5.1. ábra - A kontrollpont súlyának és multiplicitásának hatása a görbe alakjára

A kontrollpont súlyának és multiplicitásának hatása a görbe alakjára

5.1.2. A kúpszeletek leírása

Ebben a szakaszban a kúpszeletíveket fogjuk leírni másodfokú racionális Bézier-görbeként.

A másodfokú racionális Bézier-görbe

alakját tekintjük és megvizsgáljuk, hogy milyen súlyok esetén kapunk ellipszist, hiperbolát, illetve parabolát. Azt utóbbit persze már tudjuk, mivel megegyező súlyok esetén az (5.3) görbéből Bézier-görbe lesz, ami parabolaív.

Most megvizsgáljuk, hogyan határozhatók meg a racionális forma súlyai, ha ismerjük a kúpszeletív kezdő- és végpontját, egy közbülső pontot, valamint a kezdő- és végpontbeli érintők végesben lévő metszéspontját. Jelölje ezeket rendre és (lásd az 5.2. ábrát). A jelölést bevezetve, a kúpszelet pontjára

teljesül valamely paraméterértéknél.

5.2. ábra - A A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív kezdő- és A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív végpontjával, az ezekbeli érintők A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív metszéspontjával, valamint az A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív közbülső ponttal adott kúpszeletív

A \mathbf{b}_{0} kezdő- és \mathbf{b}_{2} végpontjával, az ezekbeli érintők \mathbf{b}_{1} metszéspontjával, valamint az \mathbf{a} közbülső ponttal adott kúpszeletív

Az pontot a és pontokra vonatkoztatott baricentrikus koordinátákkal is meghatározhatjuk. Ha adott a síkon három nem kollineáris pont, akkor a sík bármely pontja egyértelműen felírható ezen három pont – a pontok valamely Descartes-féle koordináta-rendszerben vett helyvektorainak – lineáris kombinációjaként úgy, hogy a lineáris kombinációban az együtthatók összege . Ezeket a koordinátákat baricentrikus koordinátáknak nevezzük. Az 5.2. ábra pontja

alakban írható fel a pontok baricentrikus kombinációjaként. Ez az ismeretlen -kre nézve inhomogén lineáris egyenletrendszer, amit a Cramer-szabállyal megoldhatunk, mivel a pontok nem kollineárisak, ezért

Ennek szép geometriai jelentése van. A csúcspontú háromszög területe ugyanis

alakban írható fel, ezért

és ezzel analóg módon állítható elő. Ha az pont a háromszög belső pontja, akkor a együtthatók pozitívak. Az (5.4) és az (5.5) egyenlőségekben a pontok együtthatóinak meg kell egyezniük, ezért a

egyenlőségeket kapjuk. Az elsőből -t, a harmadikból -t kifejezve és a másodikba behelyettesítve

Standard alakot ( ) választva, a hiányzó súly

Ezek után megvizsgáljuk, hogy milyen kapcsolat van a súly és a kúpszelet típusa (ellipszis, hiperbola, parabola) között. A kúpszeleteket valós végtelen távoli pontjaik száma szerint osztályozhatjuk. Az általunk vizsgált íven nem lehet végtelen távoli pont, mivel az ív a háromszögön belül van, ezért a komplementerívét kell tekintenünk. A komplementerívet a súly választásával kapjuk, azaz

Ennek a görbének azon értéknél van végtelen távoli pontja, ahol a nevező eltűnik, vagyis

Ennek a másodfokú egyenletnek a diszkriminánsa

Tehát esetén egy; esetén kettő és esetén nulla végtelen távoli pontja van a görbének, azaz ha

Vizsgáljuk meg az ellipszisív speciális eseteként adódó körívet! Ehhez az 5.3. ábra szerinti origó középpontú középponti szögű () sugarú körívet tekintjük, melynek kontrollpontjai

5.3. ábra - Az Az x tengelyre szimmetrikus, 2\alpha<\pi középponti szögű körív és kontrollpontjai tengelyre szimmetrikus, Az x tengelyre szimmetrikus, 2\alpha<\pi középponti szögű körív és kontrollpontjai középponti szögű körív és kontrollpontjai

Az x tengelyre szimmetrikus, 2\alpha<\pi középponti szögű körív és kontrollpontjai


A szimmetriaviszonyok miatt a görbe a értéknél az ponton megy át, tehát

ahonnan

A kapott eredmény független a körív helyzetétől, vagyis tetszőleges helyzetű középponti szögű körív esetén .

5.1.3. Racionális de Casteljau-algoritmus

A kontrollpontokkal és súlyokkal adott racionális Bézier-görbe paraméterhez tartozó pontjának meghatározásakor az egyik elképzelhető megoldás az, hogy a homogén koordinátákkal definiált ősképnek a de Casteljau-algoritmussal meghatározzuk a -hez tartozó pontját, majd ennek a pontnak a centrális vetületét. Ez az eljárás rendkívül egyszerű, azonban numerikusan instabil, különösen akkor, ha a értékek nagyon különböznek egymástól.

Ennél munkaigényesebb, de pontosabb eredményre vezet, ha a görbére alkalmazva a de Casteljau-algoritmust, minden közbülső pontot levetítünk a hipersíkra. Ezt az algoritmust nevezzük racionális de Casteljau-algoritmusnak. Az -edik lépésben a közbülső pontokra

és .

Ezzel az algoritmussal, csakúgy mint a nemracionális megfelelőjével (lásd a 3.6. szakaszt), a görbe kettévágható két, az eredetivel megegyező fokszámú görbére.

5.1.4. A racionális Bézier-görbe deriváltja

A kontrollpontjaival, súlyaival adott racionális Bézier-görbe az

és

jelölés mellett

alakban írható fel. Az

-edrendű deriváltja

alakban írható fel, amiből a

rekurzív formulát kapjuk a racionális Bézier-görbe -edik deriváltjára. Az esetekre

Ezeknek a , illetve a helyen vett helyettesítési értéke

A nemracionális esethez hasonlóan, a racionális Bézier-görbe deriváltja is kifejezhető a racionális de Casteljau-algoritmus során kapott pontokkal.

5.4. Tétel. A

racionális Bézier-görbe deriváltja

formában írható fel a racionális de Casteljau-algoritmussal kapott pontokkal.

Bizonyítás. Az (5.7) és az (5.8) jelölést használva . és nemracionálisak, ezért rájuk alkalmazható a (3.7) deriválási formula, amiből

Ezeket behelyettesítve az (5.9) kifejezésbe

és , ezért

az (5.6) alapján

amit behelyettesítve az előző egyenletbe, egyszerűsítés után

Az (5.6) egyenletekből következően

amit a jobb oldalon behelyettesítve, majd a kifejezést egyszerűsítve

A racionális Bézier-görbék tetszőleges rendű deriváltjára jelenleg nem ismert zárt formula, de természetesen a deriváltak léteznek, és egymást követő deriválásokkal mindig felírhatók, csak nagyon bonyolulttá válnak. A másod- és harmadrendű deriváltak még viszonylag egyszerűek és segítségükkel felírható a görbe tetszőleges pontjában a görbület és torzió.

5.1.5. Fokszámnövelés

Tekintsük a kontrollpontokkal és súlyokkal meghatározott -edrendű racionális Bézier-görbét! Ezen a görbén fokszámnövelést hajtunk végre, azaz meghatározzuk annak az -edrendű racionális Bézier-görbének a kontrollpontjait és súlyait, amely az eredeti görbét írja le.

A fokszámnövelést az őskép terében hajtjuk végre a 3.8. szakasz szerint, majd az eredményt levetítjük a hipersíkra. Ezek alapján

5.2. Racionális B-szplájn-görbe

A racionális B-szplájn-görbék biztosítanak legtöbb alakmódosítási lehetőséget a tervezőnek a jelenleg használatos görbeleírási módszerek közül. A szakirodalomban a racionális B-szplájn szinonímájaként használják a NURBS (NonUniform Rational B-Spline) megnevezést. Ez valójában helytelen, hiszen a rövidítés jelentése „nem uniform racionális B-szplájn”, ami tehát az uniform B-szplájnokat kizárja. Bármennyire is helytelen, olyan mértékben elterjedt a használata, hogy reménytelen lenne megváltoztatását elérni.

A B-szplájn-görbét ugyanúgy általánosíthatjuk, mint a Bézier-görbét. Vagyis, például a B-szplájn síkgörbe nemracionális B-szplájn térgörbe origóból vett centrális vetülete a hipersíkon. A magasabb dimenziós térbeli nemracionális görbét a racionális görbe ősképének nevezzük. A pontos definíció a következő:

5.5. Definíció. Az , () térben az

kifejezéssel adott görbét –edfokú (–adrendű), racionális B-szplájn- (vagy NURBS) görbének nevezzük, ahol az –edik –edfokú normalizált B-szplájn alapfüggvényt jelöli, mely értelmezéséhez az , , , csomóértékek szükségesek. A pontokat kontroll- vagy de Boor–pontoknak, a skalárokat pedig súlyoknak nevezzük.

A szingularitások elkerülése érdekében csak nemnegatív súlyokat engedünk meg, és természetesen nem lehet minden súly nulla.

5.2.1. A racionális B-szplájn-görbe tulajdonságai

A racionális B-szplájn-görbe örökli a nemracionális B-szplájn-görbe minden centrális vetítéssel szemben invariáns tulajdonságát. Az alábbiakban felsoroljuk az eddig még nem említett fontosabb tulajdonságokat, feltételezve, hogy a görbe rendje .

  • Ha az első és utolsó csomóérték multiplicitása , akkor a görbe kezdő-, illetve végpontja rendre az első, illetve utolsó kontrollpont lesz. Ezekben a pontokban az érintő a kontrollpoligon első, illetve utolsó oldalegyenese.

  • Lokálisan módosítható.

  • A görbe bármely íve darab kontrollpont () konvex burkában van, maga a görbe pedig ezek uniójában.

  • A racionális B-szplájn-görbét egy egyenes (vagy sík) legfeljebb annyi pontban metsz, mint kontrollpoligonját.

  • Ha az első és utolsó csomóérték multiplicitása és nincs ezektől különböző közbülső csomóérték, akkor speciális esetként a racionális Bézier-görbét kapjuk.

Ugyancsak a centrális vetítés következménye, de nem a nemracionális görbe tulajdonságának öröklődése, hogy a racionális B-szplájn-görbe kontrollpontjainak projektív transzformációjára nézve zárt, azaz a kontrollpontok projektív transzformáltja által meghatározott racionális B-szplájn-görbe megegyezik az eredeti görbe pontonkénti transzformáltjával. Ennek igazolása ugyanúgy történik, mint a racionális Bézier-görbe esetén (lásd az 5.3. tételt és az azt követő megjegyzéseket). DEMO: NURBS_curve.exe

5.2.2. Racionális de Boor-algoritmus

A de Boor-algoritmus (lásd a 4.3. szakaszt) általánosítását a de Casteljau-algoritmus általánosításával analóg módon hajthatjuk végre.

A kontrollpontokkal, , súlyokkal és , csomóértékekkel meghatározott -edfokú

racionális B-szplájn-görbe valamely paraméteréhez tartozó pontját az

rekurzióval állíthatjuk elő, vagyis

5.2.3. A racionális B-szplájn-görbe deriváltja

A racionális B-szplájn-görbék deriváltjának két formáját mutatjuk meg. Előbb a hodográfjukat írjuk fel a kontrollpontokkal, majd a de Boor-algoritmussal kapott pontok segítségével fejezzük ki a deriváltakat.

5.6. Tétel. Az

racionális B-szplájn-görbe deriváltja az helyen

alakban írható fel, ahol

és

Bizonyítás. Az jelölés bevezetésével a görbe feletti íve

alakban írható fel. deriváltja

A jelölés bevezetésével

Ezt a deriváltat

alakban akarjuk kifejezni, amihez meg kell keresnünk a függvényt. Megmutatjuk, hogy a

függvénnyel a derivált a kívánt alakban felírható.

aminek második összegzésén a indextranszformációt végrehajtva

Az (5.14) egyenlőséget felhasználva az (5.15)

alakra hozható, amihez a tagot hozzáadva és levonva a

kifejezést kapjuk. Azonban

az összegzésben szereplő szimmetrikus indexek miatt, ezért

Most állításunknak alakjára vonatkozó részét igazoljuk.

mivel a szimmetrikus indexek miatt

Ez a tétel azt is jelenti, hogy a racionális B-szplájn-görbe hodográfját a szomszédos kontrollpontok különbségének lineáris kombinációjaként fel tudjuk írni. A kombináló tényezőkről belátható, hogy nemnegatívak.

5.7. Tétel. Az

racionális B-szplájn-görbe deriváltja az helyen

alakban fejezhető ki az paraméternél felírt de Boor-algoritmus során kapott pontokkal.

Bizonyítás. Az

ívet leíró kifejezés számlálóját -val, nevezőjét -val jelölve , ahol és egy-egy nemracionális B-szplájn-görbének tekinthető. Az ív deriváltja

A 4.14. tételt felhasználva

Ezeket, és a de Boor-algoritmusból következő

egyenlőségeket behelyettesítve az (5.16) kifejezésbe

5.2.4. Csomóérték beszúrása, fokszámnövelés

A 4.18. tételben ismertetett inzertáló algoritmus racionális változatát állítjuk elő. A kontrollpontjaival, súlyaival és csomóértékeivel meghatározott -edfokú racionális B-szplájn-görbén az , multiplicitású csomóérték – amely tehát lehet új csomóérték (), vagy már meglévő -szeres beszúrása a következő változtatásokat eredményezi:

Ennek segítségével a racionális B-szplájn-görbe racionális Bézier-pontjait is előállíthatjuk. Ehhez minden csomóértéket annyiszor kell beszúrnunk, hogy a multiplicitásuk legyen. Az inzertálások végrehajtása után az eredeti racionális B-szplájn-görbét racionális Bézier-görbékkel írhatjuk le.

A fokszámnöveléshez áttérünk az őskép rendszerébe, ahol valamelyik nemracionális fokszámnövelő algoritmussal elvégezzük a műveletet, majd az eredményt viszavetítjük a racionális görbe terébe.

6. fejezet - Kontrollpont alapú görbemodellezés

Ebben a fejezetben röviden összefoglaljuk az előzőekben szerzett tapasztalatokat, és kicsit általánosabban tekintjük a görbemodellezés problémáját. Ezek részletei már nem férnek bele a jelen jegyzet kereteibe, csak kitekintésnek szánjuk, valamint ösztönözni szeretnénk az olvasót további ismeretek megszerzésére, önálló kutatás végzésére.

A számítógéppel segített geometriai tervezésben manapság a sík- és térgörbéket legtöbbször

alakban szokás leírni, ahol a pontokat kontrollpontnak, az őket összekötő töröttvonalat kontrollpoligonnak nevezzük. Tetszőleges, folytonos függvények esetén folytonos vonalat kapunk. Ahhoz azonban, hogy a gyakorlatban – geometriai tervezésben – használható görbét kapjunk, az függvényekre további feltételeket kell kiróni.

Eddig csak azt feltételeztük, hogy az , azaz a függvények az intervallumon folytonosak. Mint tudjuk, az intervallumon folytonos függvények vektorteret alkotnak. Ez érvényes az -n értelmezett folytonosan differenciálható függvényekre is. A folytonos differenciálhatóságot a görbe érintőjének létezése érdekében kell megkövetelni.

A CAGD-ben görbék leírására használt függvények ennek a térnek valamely jól meghatározott alteréből kerülnek ki. A leggyakrabban használt altér a legfeljebb -edfokú polinomok és a racionális függvények tere, de más függvényterek is használatosak, így a legfeljebb -edfokú trigonometrikus polinomok tere, valamint olyan terek, melyek polinomokat és trigonometrikus vagy hiperbolikus függvényeket is magukba foglalnak.

6.1. ábra - Hatványbázisban kontrollpontokkal adott negyedfokú görbe

Hatványbázisban kontrollpontokkal adott negyedfokú görbe

Az függvények tehát valamely folytonosan differenciálható függvénytérnek az elemei. Az is kívánatos azonban, hogy az függvények a tér bázisát alkossák. Ez a tulajdonság például (6.1) alakú interpoláló görbék előállításához fontos. Az interpolációs feladat ugyanis a következő: adottak a pontok és a hozzájuk rendelt paraméterértékek, és keressük azokat a kontrollpontokat, melyek a feltételeket kielégítő (6.1) alakú görbét határozzák meg. Ez a feladat az

egyenletrendszer megoldását jelenti, amelynek mindig van egyértelmű megoldása, ha az függvényrendszer lineárisan független és az paraméterértékek különbözőek.

Az , függvényrendszer az eddigi feltételeknek eleget tesz, hiszen ez a legfeljebb -edfokú polinomok ún. hatványbázisa. A vele létrehozott

görbe esetére mutat példát a 6.1. ábra. A (6.3) görbeleírással az a gond, hogy a és kontrollpontok kivételével (, ) a kontrollpontoknak nincs közvetlen geometriai jelentése (már a ponté sem szemléletes) és a kontrollpontok helyzetéből nem tudunk következtetni a görbe alakjára és elhelyezkedésére. Ezért további feltételt célszerű kiróni a bázisfüggvényekre.

6.1. Definíció. Az függvényrendszert normalizáltnak nevezzük, ha

Az normalizált függvényrendszerrel képzett (6.1) görbe kontrollpontjainak affin transzformációjára nézve zárt, ami azt jelenti, hogy a transzformált kontrollpontok által meghatározott görbe pontonként megegyezik a görbe transzformáltjával, azaz

ahol a transzformációt leíró -es mátrix.

A Lagrange-féle függvényrendszer (lásd a 2.1. szakaszt) lineárisan független és normalizált, segítségével a kontrollpontokat interpoláló görbét tudunk (6.1) alakban előállítani. A 2.1. ábrán jól látható, hogy bár a kontrollpontoknak van szemléletes geometriai jelentése (a görbe interpolálja azokat), az eredménnyel nem lehetünk elégedettek, mert a görbe oszcillál, nem tudható előre, hogy hol fog haladni, nem követi a kontrollpontokat összekötő töröttvonal alakját.

A bázisfüggvényekről azt is megkövetelhetjük, hogy nemnegatívak legyenek, azaz

A nemnegatív, normalizált függvényrendszerrel képzett (6.1) görbe pontjai a kontrollpontok konvex kombinációi, ezért maga a görbe a kontrollpontok konvex burkában helyezkedik el. Ezt nevezzük a görbe konvex burok tulajdonságának.

6.2. ábra - A konvex burok tulajdonsággal rendelkező, de nem hullámzáscsökkentő harmadfokú görbe

A konvex burok tulajdonsággal rendelkező, de nem hullámzáscsökkentő harmadfokú görbe

Az

függvényrendszer a legfeljebb harmadfokú polinomok terének olyan bázisát alkotja, mely az eddigi kívánalmaknak eleget tesz, tehát lineárisan független, nemnagatív és normalizált. Ennek következtében a görbe kontrollpontjai konvex burkában van, azonban a 6.2. ábrán jól látható, hogy a görbe alakja nem követi a kontrollpoligon alakját, azaz a kontrollpoligon alakjából nem tudunk következtetni a görbe alakjára. Görbék modellezése során elvárás, hogy a görbe ne csak kövesse a kontrollpoligon alakját, hanem csökkentse is annak kilengéseit.

6.2. Definíció. Akkor mondjuk, hogy a (6.1) görbe hullámzáscsökkentő (variation diminishing) tulajdonsággal rendelkezik, ha a görbét bármely hipersík legfeljebb annyi pontban metszi, mint a kontrollpoligonját.

Látható, hogy a 6.2. ábrán lévő példánk ezt nem teljesíti.

6.3. Definíció. Egy síkgörbét konvexnek nevezünk, ha az valamely síkbeli konvex tartomány határának része.

6.4. Definíció. Akkor mondjuk, hogy a (6.1) alakban felírt síkgörbe konvexitásmegőrző, ha a kontrollpoligon konvexitása maga után vonja a görbe konvexitását.

Fontos megjegyezni, hogy a konvex síkgörbék kontrollpoligonja nem feltétlenül konvex. A fenti definíciók alapján nyilvánvaló, hogy a hullámzáscsökkentő tulajdonságú síkgörbék egyben a konvexitást is megőrzik. Hullámzáscsökkentő tulajdonságú görbét eredményező függvényrendszerekre ismerünk feltételeket.

6.5. Definíció. Az függvényrendszert totálisan pozitívnak nevezzük, ha bármely értékekkel képzett

kollokációs mátrix determinánsa és annak minden aldeterminánsa is nemnegatív.

6.6. Tétel. A normalizált, totálisan pozitív függvényrendszerrel képzett (6.1) alakú görbék rendelkeznek a hullámzáscsökkentő tulajdonsággal.

6.7. Definíció. Az függvényrendszert Descartes-féle függvényrendszernek nevezzük, ha bármely esetén a összegfüggvény előjelváltásainak száma nem nagyobb, mint a sorozat tagjai előjelváltásainak száma.

6.8. Tétel. Az normalizált függvényrendszerrel előállított (6.1) görbe akkor és csak akkor hullámzáscsökkentő, ha a függvényrendszer Descartes-féle.

Nyílt görbék modellezésekor hasznos, ha a (6.1) görbe kezdőpontja a kontrollpont, a végpontja pedig a . Ez a végpontbeli interpoláció akkor teljesül, ha

illetve

6.9. Tétel. Az normalizált, a (6.4) és (6.5) feltételeket teljesítő, lineárisan független függvényrendszerrel előállított (6.1) görbe akkor és csak akkor hullámzáscsökkentő, ha a függvényrendszer totálisan pozitív.

6.10. Definíció. Egy függvénytér B-bázisán olyan totálisan pozitív bázist értünk, amelyből a tér bármely más totálisan pozitív bázisa előállítható egy nemszinguláris totálisan pozitív mátrixszal való szorzással.

Ha a függvénytérnek van legalább egy totálisan pozitív bázisa, akkor van B-bázisa is, továbbá pontosan egy normalizált B-bázisa van. A B-bázisbeli reprezentációnak optimális alakmegőrző tulajdonsága van. Ez a következőképp értendő: Tegyük fel, hogy a görbe kontrollpoligonja az normalizált totálisan pozitív bázisban , az normalizált B-bázisban pedig ; ekkor hossza a görbe és a poligon hossza között van, továbbá, ha a kontrollpoligonok konvexek, akkor a poligon a görbe és a poligon között helyezkedik el. Hasonló egyenlőtlenségek teljesülnek a görbe érintői és az egyes kontrollpoligonok oldalai által bezárt szögek változására is. A legfeljebb -edfokú polinomok terének a Bernstein-polinomok normalizált B-bázisát alkotják.

7. fejezet - Felületek modellezése

A görbékhez hasonlóan a felületek leírására is alapvetően három lehetőség van. Ezek

  • a kétváltozós függvénnyel adott explicit;

  • az implicit;

  • és az vektor-vektor függvénnyel adott paraméteres leírás.

Az explicit leírás egy kétváltozós függvény értékkészlete által meghatározott felület. Ebben a formában domborzat jellegű felületeket lehet leírni. Ez a leírási mód nagymértékben koordinátarendszer-függő - bármely párhoz egyetlen érték tartozhat, ami a koordináta-rendszer transzformálása után nem biztos, hogy teljesül, bár a felület alakja természetesen változatlan marad, ezért általános célú tervezőrendszer geometriai magjául nem szolgálhat.

Az implicit leírási mód kevésbé függ a koordináta-rendszertől. Az egyenletet kielégítő pontok halmaza a teret két féltérre osztja, például az

origó középpontú, sugarú gömbfelület által meghatározott két féltér az tulajdonságú pontokból álló gömb belseje, valamint az egyenlőtlenséget kielégítő gömbön kívüli pontok halmaza. Az implicit alak fenti tulajdonsága jól használható testmodellezéshez, a térfogati modellezés (Constructive Solid Geometry - CSG, más terminológiával Set Theoretic Modelling) erre épül. (A poliéderek például síkok által határolt félterek metszeteként állíthatók elő.) Ennél a leírásnál könnyű eldönteni, hogy egy adott pont illeszkedik-e a felületre, könnyen előállítható a felületi normális, azonban például a felület megjelenítése általában nem egyszerű feladat.

7.1. ábra - Felület paraméteres leírása

Felület paraméteres leírása

A számítógéppel segített geometriai tervezésben a paraméteres leírást használjuk leggyakrabban. Ez a leírás független a koordináta-rendszertől, miután az értelmezési tartomány és az értékkészlet tere elkülönült (lásd a 7.1. ábrát).

Felületek modellezése során nem a leírásukhoz szükséges egzakt matematikai formulákat adjuk meg a CAD rendszerekben, hanem szemléletes, a tervezői gondolkodásmódhoz, térszemlélethez közel álló geometriai adatokkal - többnyire pontokkal, görbékkel, érintőkkel, érintősíkokkal - adjuk meg a felületeket. Természetesen ezek mellett általában szükség van más kiegészítő adatokra is.

A felületmodellezési módszerek általános tulajdonságai részben megegyeznek a görbék modellezésének jellemzőivel, részben értelemszerű módosításokkal nyerhetjük azokból. Így megkülönböztethetünk interpoláló és approximáló módszereket. Ha a felület áthalad az adott pontokon vagy görbéken, akkor interpoláló felületnek nevezzük; ha pedig nem halad át az adott elemek mindegyikén, akkor approximáló felületeknek. Egy összetett alakot modellezhetünk egyetlen felülettel, vagy pedig több, egymáshoz folytonosan kapcsolódó felületfolttal. Interpoláló és approximáló felületek esetén is beszélhetünk globális és lokális változtathatóságról. Akkor mondjuk, hogy egy felület globálisan változtatható, ha a meghatározó pontok vagy görbék valamelyikének elmozdítása, megváltoztatása a teljes felület alakjának változását vonja maga után. Ha az előző beavatkozás következtében a felület csak a megváltoztatott meghatározó elem környezetében változik, akkor lokálisan változtathatónak mondjuk a felületet. A görbék tárgyalásához hasonlóan, a felületeknél is csak olyan modellezési módszereket ismertetünk, melyek eredményeként a felület paraméteres leírását kapjuk.

7.1. Vonalfelületek, két görbét interpoláló felület

Az olyan felületet, melynek bármely pontján át van a felületre illeszkedő egyenese, vonalfelületnek nevezzük, magukat az egyeneseket pedig alkotóknak. A vonalfelületet legegyszerűbben

alakban írhatjuk fel, ahol tetszőleges térgörbe, pedig az alkotó irányába mutató vektor.

A számítógéppel segített tervezés során gyakrabban használjuk a vonalfelületeknek azt az előállítását, amikor ugyanazon a paramétertartományon értelmezett két görbe azonos paraméterértékhez tartozó pontjait kötjük össze egyenes szakasszal, és a felületnek csak a két görbe által határolt részét vesszük figyelembe. Ekkor a felület

alakban írható fel. Ez a felület a két görbe lineáris interpolációjának is tekinthető.

Fontos szerepe van a görbe paraméterezésének. Vegyük ugyanis azt a példát, amikor az interpolálandó görbék a és síkokon elhelyezkedő sugarú körök, melyek középpontja a tengelyen van, és legyen , , !

  • Ha , akkor a felület forgáshenger (lásd a 7.2. ábrát);

    7.2. ábra - Forgáshenger


  • ha , akkor a felület forgáskúp (lásd a 7.3. ábrát).

    7.3. ábra - Forgáskúp


  • minden más értéke esetén egyköpenyű forgáshiperboloidot kapunk (lásd a 7.4. ábrát);

    7.4. ábra - Egyköpenyű forgáshiperboloid


A vonalfelületek egy fontos osztálya a kifejthető, más néven síkbateríthető felületeké. Akkor mondjuk, hogy egy felület kifejthető, ha a felület megfelelő bemetszésekkel, de nyújtás és zsugorítás nélkül síkba teríthető úgy, hogy a felület tetszőleges két pontját összekötő bármely görbeívnek olyan görbeív felel meg, melynek ívhossza megegyezik az eredeti görbeív hosszával. Belátható, hogy a vonalfelület pontosan akkor kifejthető, ha a felület bármely alkotója mentén állandó az érintősík. Ezzel ekvivalens kritérium, hogy az alkotók mentén a felületi normálisok párhuzamosak és azonos irányításúak legyenek. Háromféle kifejthető felület létezik, a kúpfelület, a hengerfelület (nemcsak másodrendű kúp vagy henger!) és a térgörbék érintőfelülete. Ez utóbbi az térgörbe esetén

alakban írható fel.

Az tengelyű, paraméterű, sugarú hengeres csavarvonal érintőfelülete tehát

A vonalfelületek előállítására használt módszer általánosítható. Az általánosítás abban áll, hogy az adott görbepárt nem lineáris, hanem magasabb fokszámú görbékkel interpoláljuk, amihez természetesen további adatokra van szükség. Erre láthatunk példát a bikubikusan súlyozott Coons-foltok esetén (lásd a 8.2. szakaszt).

További általánosításnak tekinthető, amikor nemcsak két görbe adott, hanem görbék sorozata (ezen görbék a tervezendő objektum metszetei), és ezekre kell illesztenünk felületet.

Adottak az görbék, és az egymástól különböző , paraméterértékek.

Keresünk olyan felületet, melyre

teljesül.

Ezen felületmodellezés angol elnevezése cross sectional design vagy skinning. Ezeket a módszereket leggyakrabban hajótest és repülőgéptörzs tervezésére használják.

7.2. Mozgó görbe által súrolt felület

Felületek széles osztálya adható meg

alakban, ahol tetszőleges görbe, pedig olyan -es mátrix, melynek elemei az paraméter függvényei. Az így kapott felület nem más, mint egy egyparaméteres - az paramétertől függő - görbesereg által súrolt felület. A (7.1) kifejezés úgy is értelmezhető, hogy a görbe folytonosan mozog a térben - a mozgás során esetleg az alakja is változik -, és a görbe különböző helyzetei határozzák meg a felületet. A kifejezésben homogén koordinátákat használtunk, azaz . Felhívjuk a figyelmet arra, hogy a mozgás itt pusztán a helyváltoztatást jelenti, nem pedig a mozgást, mint geometriai ponttranszformációt.

Az mátrix egyszerű mozgási transzformációk - mint például tengely körüli forgás vagy csavarás - esetén könnyen megadható. A mátrix előállítása azonban nem mindig ilyen egyszerű vagy kényelmes, ezért a mozgó görbe által súrolt felületek modellezésénél a mozgás megadására más technikákat használunk. A különböző megadási módok ismertetése során természetesen azt is megvizsgáljuk, hogy a szemléletes geometriai adatokból hogyan állítható elő a mátrix.

Forgásfelület egyértelműen megadható a forgástengellyel és a forgatandó görbével. Ezekből az adatokból a forgást leíró mátrix könnyen felírható. A csavarfelület paraméteres alakja a csavartengely, a csavarodás paramétere és a csavarandó görbe ismeretében egyértelműen felírható. Ugyancsak egyszerűen kezelhető az az eset, amikor az mátrix eltolási transzformációt ír le. Ez a speciális transzlációs felület egyértelműen megadható az eltolás irányvektorával és az eltolandó görbével.

A fenti példák egy-egy speciális felületosztály modellezésére alkalmas módszert mutattak. Ezeknél lényegesen átfogóbb modellezési technika, amikor a görbét egy görbe mentén mozgatjuk. A görbét generáló görbének, -t pedig vezérgörbének vagy direktrixnek nevezzük. A két görbe még nem határoz meg egyértelműen egy felületet, mivel a generáló görbe helyváltoztatását ezek az adatok nem határozzák meg egyértelműen. Ezért a fenti adatokon kívül még meg kell adni a generáló görbe tájolását. Kétféle tájolást szoktak használni. Az egyik a párhuzamos eltolás, a másik esetben pedig a vezérgörbe kísérő triéderéhez kapcsoljuk a generáló görbét.

Ha a generáló görbe úgy mozog a vezérgörbe mentén, hogy bármely két helyzete párhuzamos eltolással átvihető egymásba, akkor a felület

alakban írható fel. Nem szükséges, hogy a generáló görbe messe a vezérgörbét, ugyanis a vezérgörbe csak a mozgás jellegét határozza meg és nem feltétlenül illeszkedik a felületre. A (7.1) szerinti leíráshoz szükséges mátrix

Ezeket a felületeket transzlációs felületeknek szokták nevezni. Érdekes tulajdonságuk, hogy a twist-vektoruk bármely pontban a nullvektor, ugyanis

A transzlációs felületek fontos speciális esete az, amikor a vezérgörbe egyenes. Geometriailag ezek általános hengernek tekinthetők, műszaki megközelítéssel pedig azt mondhatjuk, hogy az extrudálás során fellépő alakformálást írják le, ezért ezeket extrudált felületeknek is szokás nevezni.

7.5. ábra - A generáló görbe a vezérgörbe kísérő triéderéhez kapcsolt

A generáló görbe a vezérgörbe kísérő triéderéhez kapcsolt

A generáló görbének a vezérgörbe kísérő triéderéhez kapcsolása a következőket jelenti. A vezérgörbe pontjában vett kísérő triédere által meghatározott koordináta-rendszerbe transzformáljuk a generáló görbét. A kísérő triéder a vezérgörbe mentén folytonosan változik (mozog), és vele együtt a hozzá rögzített generáló görbe is. (Most eltekintünk a generáló görbe esetleges alakváltozásától.) Ez a folyamat a 7.5. ábra jelöléseit használva az alábbi lépésekkel írható le:

  • az koordináta-rendszerben adott generáló görbét egy koordinátatranszformációval a vezérgörbe pontjában vett kísérő triédere által meghatározott koordináta-rendszerbe transzformáljuk

  • a vezérgörbe tetszőleges pontjában vett kísérő triéder által meghatározott koordináta-rendszerben leírt generáló görbét az koordináta-rendszerbe transzformáljuk

Az és mátrixok

alakban írhatók fel, a felület leírásához szükséges mátrix pedig

A két tájolás használatával általában teljesen különböző felületet kapunk (lásd a 7.6. ábrát).

7.6. ábra - A generáló görbe különböző tájolásával kapott felületek


A kísérő triéderhez kapcsolt tájolás esetén nehézséget okoz, ha a triéder az érintővektor körül hirtelen elfordul (megpördül). Ezzel a jelenséggel találkozhatunk a vezérgörbe nulla görbületű pontja környezetében, de problémát okoznak a nagy torziójú pontok, valamint, ha a vezérgörbe egyenes szakaszt tartalmaz (nincs a normális értelmezve). Ezt illusztrálja a 7.7. ábra.

7.7. ábra - A kísérő triéder megpördül a nulla görbületű pont környezetében


Ezért a gyakorlatban sokszor nem a kísérő triédert használjuk, hanem vesszük a kezdőpontbeli kísérő triédert (de elég egy olyan ortonormált vektorhármas is, melyből a görbe kezdőpontbeli érintője) és ezt úgy vezetjük végig a vezérgörbén, hogy mindig az aktuális érintőn legyen, a triédernek a köri forgása pedig minimális. Ezt forgásminimalizáló triédernek (Rotation Minimizing Frame - RMF) nevezzük, mely előállítására többféle módszer létezik. A 7.8 ábrán láthatjuk a forgást minimalizáló eljárás hatását.

7.8. ábra - A kísérő triéder forgását minimalizáló eljárás megszünteti a csavarodást


Speciális esetként előállíthatjuk a forgás- és csavarfelületeket. Forgásfelületet kapunk, ha a vezérgörbe olyan kör, melynek középpontja a forgástengelyen van, síkja merőleges a forgástengelyre, a generáló görbe pedig a forgásfelület egy tetszőleges felületi görbéje, amit a vezérgörbe kísérő triéderéhez kapcsolunk (lásd a 7.9. ábrát).

7.9. ábra - Forgásfelület származtatása


Csavarvonal vezérgörbéjű csőfelületet súrol a mozgó görbe, ha a vezérgörbe olyan csavarvonal, mely paramétere és tengelye megegyezik az előállítandó csavarfelület paraméterével és tengelyével (lásd a 7.10. ábrát).

7.10. ábra - Csavarvonal vezérgörbéjű csőfelület származtatása


A generáló görbének a helyváltoztatás során az alakja is változhat. Így például körkúpot állíthatunk elő kör eltolásával, ha a mozgó kör sugara lineárisan változik. Ez

alakban írható fel. Ennél általánosabb a 7.11. ábrán látható csőfelület. Ennek vezérgörbéje az koordinátasíkban fekvő parabola, generáló görbéje a egységnyi sugarú kör. A kör sugara pedig az függvény szerint változik. A felület

alakban írható fel, ahol a (7.2) szerint előállított mátrix.

7.11. ábra - Változó sugarú kör által súrolt felület


Természetesen olyan alakváltozás is lehetséges, amikor a generáló görbe nem hasonlósági transzformácón megy át. Erre láthatunk példát a következő szakaszban.

7.3. Görbék tenzori szorzataként előállított felületek

A (7.1) leírás sok tervezői feladat megoldására nem biztosít kellő alakváltozatosságot. A generáló görbe alakjának legáltalánosabb változása geometriailag egy topologikus transzformáció (csak a görbe folytonossága marad meg), ami nem írható le egyetlen mátrix segítségével. Ha a generáló görbe kontrollpontokkal adott, akkor a hely- és alakváltozás a kontrollpontok pályagörbéivel is megadható. A kontrollpontok pályagörbéit - azokat a görbéket amely mentén a kontrollpontok mozognak- ugyancsak kontrollpontok segítségével adjuk meg. Ilyen módon a felületet kontrollpontok mátrixával, valamint a sorokhoz, illetve oszlopokhoz tartozó bázisfüggvényekkel (esetlegesen további adatokkal) adjuk meg.

Tekintsük a kontrollpontjaival és bázisfüggvényeivel adott

görbét! Ennek a görbének a kontrollpontjai mozogjanak az , kontrollpontjaival és bázisfüggvényeivel adott

görbe mentén! A mozgó, és közben alakját is változtató generáló görbe által súrolt

felületet tenzori szorzattal leírt felületnek (tensor product surface) nevezzük. A sorokba és oszlopokba rendezett pontokat kontrollpontoknak, az elrendezés szerinti összekötéssel kapott hálót pedig kontrollhálónak nevezzük. A sorokhoz, illetve oszlopokhoz rendelt bázisfüggvények lehetnek különbözőek, de a gyakorlatban ezek szinte mindig megegyeznek. Például , esetén a Bézier-felületet kapjuk, ha az -edik -edfokú, pedig a -edik -edfokú Bernstein-polinomot jelöli.

Gyakran előforduló probléma, hogy a modellezendő felületnek csak pontjait ismerjük és meg kell határoznunk a (7.3) alakú interpoláló felület kontrollpontjait.

Adott a pontok tömbje, és a hozzájuk rendelt , paraméterértékek, valamint az és bázisfüggvények.

Keressük azokat az kontrollpontokat, amelyek az adott bázisfüggvényekkel az adott pontokra illeszkedő felületet határozzák meg, vagyis

Bevezetve az

jelöléseket, a

egyenletrendszert kapjuk az ismeretlen kontrollpontokra nézve. Ha az és értékek különbözőek, és az és a függvényrendszerek lineárisan függetlenek, akkor az és mátrixok invertálhatók és az egyértelmű megoldás

alakban írható fel. Szerencsére nincs szükség az és mátrixok kiszámítására, a feladat ugyanis visszavezethető egyváltozós, azaz görbeinterpolációs problémára.

A változó bevezetésével a

görbeinterpolációt kapjuk. Előbb ezt, majd a

egyváltozós interpolációt megoldva a keresett kontrollpontokat kapjuk.

8. fejezet - Coons-foltok

A Coons-foltok olyan felületek, melyek görbeoldalú térbeli négyszöget interpolálnak.

8.1. Bilineárisan súlyozott Coons-foltok

A Coons-foltok (Coons patches) létrehozásakor két, egymást metsző görbepárból, vagyis egy görbeoldalú térbeli négyszögből indulunk ki, erre a négyszögre illesztünk egy felületet. A bilineáris súlyozással alőállított Coons-folt pontos problémafelvetése a következő:

8.1. ábra - A bilineáris Coons-folt létrehozása

A bilineáris Coons-folt létrehozása

Adottak az , , , és , , egymást metsző görbepárok a térben.

Keresünk olyan , felületet, amelyre

teljesül.

A megoldáshoz vonalfelületeket használunk. Tekintsük az és által meghatározott

valamint a és által meghatározott

vonalfelületeket (lásd a 8.1. ábrát)! Ezek a felületek a szemben fekvő görbéket interpolálják, azonban a másik két határoló görbén nem haladnak át. Ezen probléma megoldása érdekében vesszük a négy metszéspont (csúcspont) bilineáris interpolációját, az

felületet. Ha a csúcspontok nem komplanárisak, ez a felület nyeregfelület (hiperbolikus paraboloid). Ezek után a feladat megoldása az

felület, amit a 8.1. ábra szemléltet. Ez a konstrukció a Coons-folt lényege, erre az alapötletre épül minden változata és általánosítása. A (8.1) egyenletet részletesen kiírva

Ez a felületfolt mind a négy határoló görbére illeszkedik. A bilineáris elnevezés az előállítás módjára utal, nem a kapott eredményre, a bilineáris súlyozással előállítható felületeknek ugyanis csak valódi részhalmaza a bilineáris felületek osztálya. Az ; és ; függvénypárokat súlyfüggvényeknek (blending functions) nevezzük.

8.2. Bikubikusan súlyozott Coons-foltok

A bilineáris súlyozással alőállított felületfolt ugyan egyszerű megoldást ad a feladatra, azonban újabb problémát vet fel. Ez a probléma a keresztirányú deriváltaknál lép fel. Ez abból adódik, hogy a határ menti keresztirányú deriváltak olyan adatoktól is függnek, amelyek nem az adott határgörbéhez tartoznak. Például a (8.2) felületfolt parciális deriváltját képezve azt tapasztaljuk, hogy ez függ az határgörbétől is. Ez azt eredményezi, hogy a kapcsolódó bilineárisan súlyozott Coons-foltok keresztirányú deriváltja nem mindig folytonos, lásd a 8.2. ábrát. Az ábrán a kapcsolódási görbe egyenes szakasz, és a két folt ebbe csatlakozó oldalai kollineáris szakaszok. Ennek ellenére a közös szakasz mentén a keresztirányú parciális derivált nem folytonos, a kapcsolódási vonal törésvonal.

8.2. ábra - C^{0} kapcsolódó bilineárisan súlyozott Coons-foltokkapcsolódó bilineárisan súlyozott Coons-foltok


A fenti probléma kiküszöbölése érdekében alkalmazunk bikubikus súlyozást. Ehhez már nem elegendőek a határoló görbék, meg kell még adni a határgörbék mentén a keresztirányú deriváltakat is. Az és jelölést bevezetve a feladat a következőképpen fogalmazható meg:

8.3. ábra - A bikubikus Coons-folt megadása; az érintőszalagot csak a A bikubikus Coons-folt megadása; az érintőszalagot csak a v irányú határgörbék mentén tüntettük fel irányú határgörbék mentén tüntettük fel

A bikubikus Coons-folt megadása; az érintőszalagot csak a v irányú határgörbék mentén tüntettük fel

Adott az , ; , egymást metsző térgörbepár, és ezek mentén az , ; , „érintőszalagok” (lásd a 8.3. ábrát), valamint a négy sarokpontban az twist-vektor.

Keresünk olyan felületfoltot, amelynek az adott görbék a határoló görbéi, és ezek mentén a keresztirányú deriváltak az adott érintőszalagok, azaz

A feladat megoldását a 8.1. ábrán szemléltetett alapötlettel oldjuk meg. Ehhez azonban a két szemközti görbére illesztett vonalfelületet olyan harmadrendű felülettel kell kiváltani, amely figyelembe veszi az adott érintőszalagokat is. Ilyen felület a

ahol a függvények a 2.2.-ben megismert harmadfokú Hermite-polinomok. Ezeket a függvényeket használva, és mátrixalakra áttérve

és

a bikubikusan súlyozott Coons-folt pedig

A (8.4) kifejezés mátrixában szereplő vektorokat twist vektoroknak nevezzük. Általánosan, az felület pontjában a twist vektoron a vektort értjük. Egy kétszer folytonosan differenciálható felület esetén a deriválás sorrendje közömbös, azaz . Esetünkben azonban, miután gyakorlatilag tetszőlegesen adhatjuk meg az érintőszalagokat, a különböző sorrendben vett parciális deriválás végeredménye nem feltétlenül egyezik meg. Ezért a négy csúcspontban a twist vektor előállítása nem egyértelmű. Ezek megadására több lehetőség kínálkozik, ezzel részletesebben a 8.3.1. pontban foglalkozunk.

8.3. Hermite-féle bikubikus folt

A határoló görbékre eddig nem tettünk semmilyen megszorítást. Most feltételezzük, hogy a határoló görbék harmadrendű görbék. Ebben az esetben ezek felírhatók harmadrendű Hermite-ívként. Ehhez a kezdő- és végpontokra, valamint ezekben a görbe érintővektoraira van szükség. A 2.2. szakasz alapján a , ív

alakban írható fel. Ezzel analóg módon állítható elő , és is.

Az érintőszalagok a négy twist vektor ismeretében ugyancsak Hermite-interpolációval állíthatók elő. Például

Ezzel analóg , és előállítása is.

Ezeket felhasználva a (8.3) kifejezés

alakban írható fel. A felület ezzel analóg módon

formát ölt, a bikubikusan súlyozott Coons-folt pedig

Ezt a felületfoltot Hermite-féle bikubikus foltnak is szokták nevezni. Az Hermite-polinomok mátrixalakjának használatával

Ez a forma akkor lehet hasznos, ha ugyanannak a foltnak több pontját akarjuk kiszámolni. Ebben az esetben ugyanis a középső három mátrix független az paraméterektől, tehát a szorzatukat csak egyszer kell kiszámítani, ami csökkenti a számítási igényt.

8.4. ábra - Hermite-féle bikubikus folt


Az Hermite-féle bikubikus folt a négy csúcsponttal, ezekben a határgörbék érintővektoraival és a twist vektorokkal adható meg, lásd a 8.4. ábrát).

A bikubikus elnevezés – csakúgy mint a bilineáris volt – csak az előállítás módjára utal, nem pedig a kapott felületre. Ugyanis minden bikubikus felület előállítható bikubikusan súlyozott Coons-foltként (például Hermite-féle bikubikus folt), de nem minden bikubikus súlyozással előállított Coons-folt bikubikus felület.

A bilineáris és bikubikus súlyozással előállított Coons-foltokat az , paraméterezéssel vizsgáltuk, vagyis az értelmezési tartomány az egységnégyzet volt. Ennek nincs különösebb oka, kivéve a formulák egyszerűsödését. Ha az egységnégyzetről áttérünk a tetszőleges , téglalap tartományra, akkor az összefüggésekben szereplő tagokat -al, az -t -al, -t pedig -al kell megszorozni.

8.3.1. A twist vektor előállítása

A bikubikusan súlyozott Coons-folthoz a csúcspontokban szükségesek a vegyes parciális deriváltak, vagyis a twist vektorok. Ezeket többnyire nem ismerjük, így valamilyen módszerrel meg kell adnunk. A twist vektorokra adott becsléseknél szem előtt tartjuk azt, hogy általában nem egyetlen folttal modellezünk egy felületet, hanem több, egymáshoz folytonosan kapcsolódóval. Az ismertetendő módszerek elsőrendben folytonos kapcsolódást tesznek lehetővé, azaz a kapcsolódási pontokban az , illetve szerinti parciális deriváltak megegyeznek.

Zéró twist vektor

Ebben az esetben twist vektorként a nulla vektort adjuk meg, ami mindig használható, egyszerű megoldás. A transzlációs felületek twist vektora bármely pontban a nulla vektor. Ezért, ha a Coons-foltnál zéró twist vektort használunk, akkor a felület lokálisan transzlációs felületként viselkedik. Ez a szakirodalom által lapos területnek (flat spot) nevezett jelenséghez vezethet.

Adini-féle twist vektor

Az Adini-féle twist vektor egyetlen folt esetén a bilineárisan súlyozott Coons-folt twist vektora a csúcspontban. Egymáshoz kapcsolódó foltok hálójára pedig a következőképpen definiáljuk: Tekintsük az , és , egymást páronként metsző görbeseregeket, az és görbék az pontban metszik egymást. A háló egy belső pontjában a twist vektort úgy határozzuk meg, hogy vesszük az , , és pontok által definiált görbevonalú négyszöget; erre illesztünk egy bilineárisan súlyozott Coons-foltot, és ennek meghatározzuk a twist vektorát az pontban.

A súlyfüggvények:

a twist vektor pedig

Bessel-féle twist vektor

Tekintsük az pontban találkozó négy foltot! Ezek határgörbéire egy-egy bilineárisan súlyozott Coons-foltot illesztünk, és meghatározzuk twist vektorukat az pontban, melyeket és -vel jelölünk. A twist vektort pedig ezen vektorok bilineáris interpolációjaként állítjuk elő

alakban.

8.4. Elsőrendben folytonosan kapcsolódó Coons-foltok

A tervezői gyakorlatban egy bonyolultabb felületet nem lehet egyetlen folttal leírni, hanem egymáshoz kapcsolódó foltok hálójával. A modellezendő felületeknek gyakran csak jellemző görbéit (feature lines) ismerjük. Még gyakoribb, hogy a felület alakját meghatározó görbéknek csak pontjait ismerjük. Ilyen esetben ezekre interpoláló görbét illesztünk.

Adott az és egymást metsző görbesereg, valamint az és paraméterértékek. Feltételezzük, hogy a görbék legalább egyszer folytonosan differenciálhatók.

Keresünk olyan elsőrendben folytonosan kapcsolódó () bikubikusan súlyozott Coons-foltokból álló felületet, amely foltjainak határgörbéi az adott görbék, azaz

Először a twist vektorokat határozzuk meg az pontokban. Erre például a 8.3.1. valamelyik módszerét használhatjuk – mindegyik lehetővé teszi az elsőrendben folytonos kapcsolódást. Ezek után a görbék mentén meg kell határoznunk az érintőszalagokat. Valamely görbe , ívére ez a következőképpen tehető meg: Az pontban a feltételek alapján meghatározhatjuk az és vektorokat; az pontban pedig az és vektorokat. Ezekre harmadrendű Hermite-interpolációval görbét illeszthetünk, amivel a kapcsolódó érintőszalagok elsőrendű folytonosságát is biztosítjuk.

Ezek után az egyes négyszögekre bikubikusan súlyozott Coons-foltokat illesztünk, amelyek elsőrendű folytonos kapcsolódása biztosított.

9. fejezet - Bézier- és B-szplájn-felületek

A 7.3. szakaszban általánosan bevezettük a görbék tenzori szorzataként előállítható felületeket. Ebben a fejezetben ezen felületosztály két legismertebb tagját a Bézier- és B-szplájn-felületet ismertetjük részletesebben.

9.1. Bézier-felület

9.1. ábra - Bézier-felület létrehozása Bézier-felület létrehozása \left(n=2,m=3\right) ; az \mathbf{a}_{i} kontrollpontok pályagörbéit adjuk meg; az Bézier-felület létrehozása \left(n=2,m=3\right) ; az \mathbf{a}_{i} kontrollpontok pályagörbéit adjuk meg kontrollpontok pályagörbéit adjuk meg

Bézier-felület létrehozása \left(n=2,m=3\right) ; az \mathbf{a}_{i} kontrollpontok pályagörbéit adjuk meg

Tegyük fel, hogy az , kontrollpontjaival adott Bézier-görbét mozgatjuk, továbbá feltételezzük, hogy a Bézier-görbe kontrollpontjai ugyancsak Bézier-görbén mozognak. Jelöljük -vel az kontrollpontok pályáját meghatározó Bézier-görbe kontrollpontjait lásd a 9.1. ábrát, azaz

Ilyen feltételek mellett

és az kontrollpont az

görbén mozog. A fenti egyenlőségeket kombinálva a felület egy koordinátájú pontjára a

egyenlőséget kapjuk.

Ezt a felületet Bézier-felületnek, vagy tenzori szorzattal előállított Bézier-felületnek nevezzük. A pontokat a felület kontrollpontjainak, az általuk meghatározott hálót (lásd a 9.1. ábrát) kontrollhálónak nevezzük.

9.1.1. A Bézier-felületek tulajdonságai

A (9.1) kifejezéssel definiált felület tulajdonságai a Bézier-görbe tulajdonságai (lásd a 3.3. szakaszt) alapján igazolhatók.

A , kontrollháló bármely határoló polingonja által meghatározott görbéből kiindulva ugyanazt a Bézier-felületet kapjuk. Ez a Bézier-felületnek egyfajta szimmetria tulajdonsága.

A határoló poligonok által meghatározott Bézier-görbék illeszkednek a felületre, de a kontrollháló többi poligonja (, vagy ) által meghatározott görbék nincsenek a felületen.

A felület valamely paramétervonalát úgy kaphatjuk meg, hogy előbb meghatározzuk a paramétervonal

kontrollpoligonját. Ezen kontrollpoligon által meghatározott Bézier-görbe a keresett paramétervonal (lásd a 9.2. ábrát). Az paramétervonalak ezzel analóg módon állíthatók elő. A paramétervonalak tehát -ed-, illetve -edrendű Bézier-görbék.

9.2. ábra - Bézier-felület paramétervonalának kontrollpontjai

Bézier-felület paramétervonalának kontrollpontjai

A felület paraméterű pontját a de Casteljau-algoritmus ismételt alkalmazásával is meghatározhatjuk. Először kiszámítjuk a paramétervonal kontrollpontjait – ez -szeri alkalmazás –, majd ezen a görbén az pontot. Ez összesen -szeri alkalmazás. Meghatározhatjuk a pontot az paramétervonalból kiindulva, ekkor -szer kell alkalmazni a de Casteljau-algoritmust. A számítási igény tehát általában nem egyezik meg.

A de Casteljau-algoritmus segítségével a Bézier-felületet, hasonlóan a görbéhez, két, az eredetivel , illetve irányban megegyező fokszámú felületre vághatjuk ketté. A felületet valamely paramétervonala mentén tudjuk kettévágni. Az előző példánknál maradva, a paramétervonal kontrollpontjainak meghatározásához a

görbéket a helyen ketté kell vágni. Az eljárás során megkapjuk a két Bézier-folt kontrollhálóját. A két folt -edrendben folytonosan () kapcsolódik egymáshoz a görbe mentén (lásd a 9.3. ábrát).

9.3. ábra - Bézier-felület kettévágása

Bézier-felület kettévágása

A Bézier-felület kontrollhálójának affin transzformációjával szemben invariáns, vagyis a felület affin transzformáltja megegyezik a transzformált kontrollpontok által meghatározott felülettel. Ez a tulajdonság a Bézier-felület és a de Casteljau-algoritmus fent vázolt kapcsolatból következik.

A konvex burok tulajdonság is átöröklődik a görbéktől. Ez azt jelenti, hogy a Bézier-felület kontrollhálójának konvex burkában van. Ez következik egyrészt a de Casteljau-algoritmussal való kapcsolatból, másrészt abból, hogy , esetén

vagyis a Bézier-felület a kontrollpontjainak konvex kombinációja.

Szintén a de Casteljau-algoritmussal való kapcsolatból következik az, hogy a felület invariáns az olyan paramétertranszformációkkal szemben, amelyek az értelmezési tartományt, a paramétersík tengelyeivel párhuzamos oldalú téglalapra képezik le, vagyis az , illetve transzformációkkal szemben.

A hullámzást csökkentő tulajdonság nem öröklődik át, pontosabban nem is fogalmazható meg úgy mint a görbék esetén.

Előfordulhat, hogy a felületfoltot határoló négyszög valamelyik oldala egyetlen pontra zsugorodik. Ilyenkor úgynevezett degenerált foltot kapunk, a határoló négyszögből háromszög lesz. Ezekre a degenerált foltokra külön figyelmet kell fordítani érintősík és felületi normális meghatározásakor, vagy foltok kapcsolódása esetén.

9.1.2. Fokszámnövelés

Tegyük fel, hogy az -ban -edfokú, -ben -edfokú

Bézier-felületet egy -ban -edfokú, -ben -edfokú

Bézier-felületként akarjuk leírni az új kontrollpontok segítségével. Ehhez a

egyenlőségnek kell teljesülni. Ez azt jelenti, hogy darab -edfokú görbén kell fokszámnövelést elvégezni. A 3.8. szakasz alapján ezt a következőképpen hajthatjuk végre:

irányában ezzel analóg módon lehet növelni a fokszámot.

Ha mindkét irányban akarjuk a fokszámot növelni, akkor például először a irányban (9.2) szerint, majd ez után az irányban. Ez utóbbi kontrollpontjai

alakban írhatók fel.

(9.2) és (9.3) egymás utáni végrehajtása helyett egyetlen lépésben megkaphatjuk a pontokat. Ugyanis (9.2)-et (9.3)-ba helyettesítve

9.1.3. Deriválás

Felületről lévén szó, az , illetve szerinti parciális deriváltakról beszélhetünk. Ezek a parciális deriváltak pedig a megfelelő paramétervonal deriváltját jelentik, vagyis a felület deriválásának problémáját görbe deriválására vezethetjük vissza:

A Bézier-görbe deriváltjára vonatkozó 3.11. tételt alkalmazva

ahol .

A szerinti parciális derivált ezzel analóg módon írható fel. Az szerinti -edrendű parciális derivált

ahol .

A vegyes parciális derivált pedig

alakban írható fel.

A továbbiakban szükségünk lesz az , illetve esetekre, a határgörbék úgynevezett keresztirányú deriváltjára. Például esetén (3.6) egyenlőséget felhasználva

Ez azt jelenti, hogy az -edrendű keresztirányú derivált a határ menti kontrollpont sortól (oszloptól) függ.

9.1.4. Kapcsolódó Bézier-felületek

Bonyolultabb alakok tervezése során nem lehetséges, vagy nem célszerű az alakot egyetlen Bézier-felülettel leírni. Ilyenkor valahányad rendben folytonosan csatlakozó felületeket használunk.

9.4. ábra - Elsőrendben folytonosan kapcsolódó Bézier-felületek

Elsőrendben folytonosan kapcsolódó Bézier-felületek

Tegyük fel, hogy adottak az

Bézier-felületek.

Ahhoz, hogy az és felületek az paramétervonal mentén -edrendben folytonosan kapcsolódjanak, a

egyenlőségeknek kell teljesülni. Ez a felület deriválására vonatkozó eredményeket, valamint a 3.7. szakasz eredményeit figyelembe véve, és a jelölést bevezetve

Mivel a tényezők lineárisan függetlenek, az

egyenlőségeknek kell teljesülni, ami esetén az

egyenlőségeket jelenti. Ezt szemlélteti a 9.4. ábra.

9.1.5. Interpoláló Bézier-felületek

A 7.3. szakaszban ismertetett interpolációs eljárás speciális eseteként megkapjuk az interpoláló Bézier-felületeket. Ehhez pusztán az és helyettesítést kell végrehajtani a (7.4) egyenletrendszerben.

9.2. B-szplájn-felületek

A B-szplájn-felületek egy újabb részhalmazát képezik a (7.3) kifejezéssel definiált tenzori szorzattal előállított felületeknek. A B-szplájn-felület tehát az

kifejezéssel írható fel, ahol a pontokat kontrollpontoknak (vagy de Boor-pontoknak), az általuk meghatározott hálót kontrollhálónak nevezzük. a -edfokú, az -edfokú normalizált B-szplájn alapfüggvényt jelöli (lásd a 4.1. definíciót), amihez természetesen szükségesek az és csomóértékek, továbbá és .

Itt is, mint a Bézier-felületeknél, a felülettel kapcsolatos problémák visszavezethetők görbékre vonatkozó feladatokra. Ennek köszönhetően a B-szplájn-görbék legtöbb tulajdonsága átöröklődik a felületekre. A (9.4) felület paramétervonalai B-szplájn-görbék. Például a paramétervonal kontrollpontjai az

pontok, a paramétervonal pedig a

B-szplájn-görbe.

A B-szplájn-felület, úgy mint a B-szplájn-görbe, lokálisan változtatható, vagyis egy kontrollpontnak csak az , folton van hatása a felületre. A pont helyének megváltoztatása csak ennek a foltnak a változását eredményezi. Ez a B-szplájn-görbékre vonatkozó 4.11. tételből következik. Más megfogalmazásban ez azt jelenti, hogy az , foltot a , kontrollpontok határozzák meg.

A B-szplájn-görbe íveinek konvex burok tulajdonsága is átöröklődik. Ez azt jelenti, hogy a (9.4) felület valamely ; pontja a , kotrollpontok konvex burkában van (lásd a 4.12. tételt).

A felületnek valamely pontja nemcsak a (9.4) kifejezés kiértékelésével, hanem a de Boor-féle algoritmus ismételt alkalmazásával is meghatározható. Először például meghatározzuk a paramétervonal kontrollpontjait, majd ezen kontrollpontok által meghatározott görbén az pontot a de Boor-féle algoritmussal. Természetesen fordított irányban is meghatározhatjuk a pontot, azaz először az paramétervonal kontrollpontjait, majd ezen a pontot. Az eredmény ugyanaz lesz, de esetén a de Boor-féle algoritmus alkalmazásainak száma nem egyezik meg.

9.2.1. Csomóérték beszúrása

Ha a kontrollhálójával, valamint illetve irányú fokszámával és csomóértékeivel adott B-szplájn-felület nem változtatható kellő mértékben, akkor célszerű új csomóértéket beszúrni. ( vagy , vagy mindkét irányban). A csomóértékek beszúrásának másik alkalmazása a B-szplájn-felület Bézier-pontjainak meghatározása, vagyis a B-szplájn-felületnek egymáshoz megfelelő rendben folytonosan kapcsolódó Bézier-felületekkel való leírása. A csomóértékek beszúrása természetesen nem változtatja meg a felület alakját. A 9.4) B-szplájn-felületen egy , multiplicitású csomóérték -szeres beszúrása a következő új kontrollpontokat eredményezi (lásd a 4.19. tételt):

ahol és

A felület pedig

ahol az új irányú csomóértékek

Ez az inzertálás a de Boor-féle algoritmussal elvégezhető (lásd a 4.18., 4.19. tételeket). Egy csomóérték inzertálása a fentiekhez hasonló módon végezhető el.

Ha a B-szplájn-felület csomóértékeinek inzertálásával elérjük, hogy minden multiplicitása , és minden multiplicitása legyen, akkor az ennek az állapotnak megfelelő kontrollpontok a B-szplájn-felület Bézier-pontjai. Ekkor a B-szplájn-felület folytonosan kapcsolódó Bézier-felületekből áll, az egyes foltok az , illetve paramétervonalak mentén kapcsolódnak egymáshoz. A folytonos kapcsolódás rendje -tól, illetve -től, valmint a csomóértékek multiplicitásától függ (lásd a 4.15. tételt).

9.2.2. Deriválás

A B-szplájn-felület deriválása – pontosabban , illetve szerinti parciális deriváltjának meghatározása – is visszavezethető a B-szplájn-görbe deriválására.

Az

felület szerinti parciális derivátja az helyen a 4.4. szakasz alapján

A szerinti parciális derivált a helyen a fentiekhez hasonlóan

9.2.3. Zárt felületek modellezése

Zárt felületeket periodikus B-szplájn alapfüggvények (lásd a periodikus B-szplájn-görbe 4.22. definícióját) segítségével célszerű modellezni. A csak egyik irányban periodikus alapfüggvényekkel csőszerű, a mindkét irányban periodikusakkal tórusz-szerű felületek modellezhetők. A 9.5. ábrán a Dupin-féle ciklid mindkét irányban harmadfokú periodikus B-szplájn-felülettel való közelítését láthatjuk.

9.5. ábra - Dupin-féle ciklid approximációja mindkét irányban harmadfokú periodikus B-szplájn-felülettel

Dupin-féle ciklid approximációja mindkét irányban harmadfokú periodikus B-szplájn-felülettel

A Tubular honlapon található demonstrációs programmal csőszerű B-szplájn-felületek modellezhetők.

9.3. Racionális Bézier- és B-szplájn-felületek

A felületeket meghatározó , , kontrollpontokhoz a nemnegatív súlyokat rendeljük, melyekről feltételezzük, hogy mindegyik nem tűnik el, azaz .

A racionális Bézier-felület

alakban írható fel.

A racionális B-szplájn-felület pedig a

kifejezéssel írható fel, amihez természetesen szükségesek az és csomóértékek.

A racionális Bézier- és B-szplájn-felületek öröklik a racionális Bézier- és B-szplájn-görbék tulajdonságait, mint ahogy azt a nemracionális esetben már láttuk.

A. függelék - A csatolt programok használatához

A demonstrációs programok OpenGL alkalmazások, melyek felhasználói felülete a GLUT és GLUI függvénykönyvtárak felhasználásával készült. A programok menüje angol nyelvű, mivel a GLUI nem támogatja az ékezetes magyar karakterek megjelenítését.

A programok Windows (XP/Vista/7) operációs rendszer alatt futnak, és működésükhöz szükséges, hogy a Microsoft Visual C++ 2008 Redistributable Package telepítve legyen. Ennek 32 bites és 64 bites változata is szabadon letölthető és telepíthető. A programok menüi a kapcsolódó elmélet alapján könnyen érthetők és kezelhetők, ezért itt csak néhány olyan opcióról szólunk, melyek talán nem magától értetődőek.

A „SET” („SETTINGS”) menücsoportban a „subdiv” paraméterrel a görbéket közelítő töröttvonal csúcspontjainak számát adhatjuk meg, a „spinner speed” opcióval pedig azt befolyásolhatjuk, hogy a spinner milyen sebességgel pörgesse a számokat (ennek elsősorban gyors gépek esetén van szerepe). Több programnál szerepel az „exponent” paraméter. Ennek segítségével az adott pontokhoz rendelendő paraméterértékek kiszámítását határozzuk meg, az exponenciális paraméterezés (lásd a 2.6. szakaszt) kitevőjének megadásával.

Irodalomjegyzék

[1] Cohen, E., Riesenfeld, R. F., Elber, G.. Geometric Modeling with Splines: An Itroduction. A. K. Peters, Natick, MA, USA. 2001.

[2] Farin, G.. Curves and Surfaces for CAGD – A Practical Guide, 5th edition. Morgan Kaufmann Publishers, Amsterdam. 2002.

[3] Farin, G., Hoschek, Kim, J., M.-S., (eds.). Handbook of Computer Aided Geometric Design. Elsevier, Amsterdam. 2002.

[4] Gallier, J.. Curves and Surfaces in Geometric Modeling: Theory and Algorithms. Morgan Kaufmann Publisher, San Francisco, CA, USA. 2000.

[5] Hoffmann, C., M.. Geometric and solid modeling: an introduction. Morgan Kaufmann Publishers. San Francisco, CA, USA. 1989.

[6] Hoschek, J., Lasser, D.. Fundamentals of Computer Aided Geometric Design. A. K. Peters, Wellesley, MA, USA. 1993.

[7] Marsh, D.. Applied geometry for computer graphics and CAD, 2nd edition. Springer-Verlag, London. 2005.

[8] Piegl, L., Tiller, W.. The NURBS Book, 2nd edition. Springer-Verlag, New York. 1997.

[9] Pottmann, H., Asperl, A., Hofer, M., Kilian, A.. Architectural Geometry. Bentley Institute Press, Exton, PA, USA. 2007.

[10] Prautzsch, H., Boehm, W., Paluszny, M.. Bézier and B-spline Techniques. Springer-Verlag, Berlin. 2002.

[11] Yamaguchi, F.. Curves and surfaces in Computer Aided Geometric Design. Springer-Verlag, Berlin. 1988.