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