Görbe- és felületmodellezés
Szplájnok Felületmodellezés
Spline (szplájn) Spline: Szakaszosan, parametrikus polinomokkal leírt görbe A spline nevét arról a rugalmasan hajlítható vonalzóról kapta, melyet hajóépítők és rajzolók használtak korábban. A számítógéppel segített tervezésben (CAD) és a számítógépes grafikában gyakran használt görbetípus. Egyszerű és interaktív szerkesztést tesz lehetővé. Igen komplex formákat lehet velük jól közelíteni (pontosság, stabilitás, könnyű illeszthetőség) Folytonosan változó érintővel rendelkeznek. Nincsenek rajtuk nagyobb kilengések. Rugalmasan módosíthatók. Szakaszonként változtathatók úgy, hogy közben a görbe nagyobb része nem módosul. Az n-edfokú spline-ban legfeljebb n-edfokú polinomszakaszok csatlakoznak egymáshoz úgy, hogy nemcsak a folytonosságot, hanem az (n-1)-szeri differenciálhatóságot is biztosítják. A gyakorlati alkalmazásokban leginkább a harmadfokú (kubikus) spline-okat használják.
Motiváció – b-spline A Bézier íveket nehézkes összefűzni, ha viszont egyetlen ívvel adjuk meg, akkor a fokszám a kontroll pontok számának megfelelően nő. A B-spline görbe olyan továbbfejlesztés, amelyben tetszőleges rögzített fokszámú, könnyen (automatikusan) összerakható ívekből álljon a görbe. A B-spline görbe approximáló görbe, de a B-spline esetén az alakváltoztatásra jóval több lehetőségünk van.
A B-spline görbe használatának előnye még, hogy kevesebb kontrollpontra van szükség, mint a Bézier görbe esetében, azaz kevesebb adatot kell tárolni. A Bézier görbe a B-spline görbe egy speciális esete.
B-spline Adottak a P0, P1, P2, P3 pontok, melyek felhasználásával harmadrendű ívet szeretnénk megadni. A keresett görbeív:
s(t) N0 (t)P0 +N1 (t)P1 +N2 (t)P2 +N3 (t)P3
t 0,1
ahol Ni(t) az ún. súlyfüggvények, a t harmadfokú polinomjai.
A csatlakozási pontokban másodrendű folytonosságot várunk el, az ezt leíró egyenletekből az Ni(t)-k meghatározhatók. N 0 (t)=(1 t)3 / 6
N (t)= 1+3t+3(1 t)t /6=( 3t
N1 (t)= 1+3(1 t)+3t(1 t) 2 /6=(3t 3 6t 2 4) / 6 2
2
N3 (t)=t 3 / 6
3
3t 2 3t 4) / 6
B-spline A kezdőpont t=0 érték esetén adódik. Ebben az esetben P0, P1, P2 háromszög P1-ből induló súlyvonalán a csúcshoz közelebbi harmadoló pont lesz. A végpont t=1 esetén adódik. Ebben az esetben a P1, P2, P3 háromszög P2-ből induló súlyvonalán a csúcshoz közelebbi harmadoló pont lesz. A kezdő és végpontokban megadható az érintővektor is, a kezdőpontban ez a P0P2 vektor fele, a végpontban a P1P3 vektor fele.
B-spline Ha négynél több kontrollpont adott, akkor ezekre négyes csoportokban meghatározzuk a harmadrendű B-spline íveket, amelyek egymáshoz automatikusan C2 folytonosan csatlakoznak. A csoportok meghatározása: (P0, P1, P2, P3), (P1, P2, P3, P4), (P2, P3, P4, P5)…. Egy szegmenst mindig csak négy pont fog meghatározni. A szegmenseket különböző színnel jelöltük. Az szegmensek csatlakozási pontjai a csomópontok.
B-spline Ha a kontrollpoligon valamely csúcspontján szeretnénk a görbét keresztülvezetni, akkor a pontot háromszor kell a poligon csúcsai között felsorolni.
Ha zárt görbét szeretnénk, akkor a P0, P1, … Pn poligont kiegészítjük, folytatjuk a P0, P1, P2, pontokkal, melyeket már korábban használtunk. Most is négyes csoportokból határozunk meg íveket, az utolsó három ívet a (Pn-2, Pn-1, Pn, P0), (Pn-1, Pn, P0, P1), (Pn, P0, P1, P2) pontcsoportok határozzák meg.
B-spline Tulajdonságok: 1. A B-spline görbe lokálisan változtatható, azaz valamely kontrollpont helyének a megváltoztatása nem eredményezi (szemben a Bézier görbével) a teljes görbe alakjának megváltozását.
B-spline 2. Szűkebb konvexburok tulajdonság jellemzi. Harmadrendű szegmensekből álló görbe esetén minden szegmens legfeljebb 4 kontrollpont konvexburkában halad. Ez a konvex burok tulajdonság jóval szigorúbb, mint a Bézier görbe esetén, mivel itt a görbe a konvex burkok uniójában halad. Ezzel a görbét a kontrollpoligon sokkal jobban magához vonzza, mint azt a Bézier-görbénél láttuk. Az alábbi bal oldali ábrán a 8 kontrollponttal definiált Bézier-görbe konvex burkát látjuk, míg a jobboldali ábrán ugyanezt a kontrollpoligont használva harmadrendű B-spline konvexburka látható.
B-spline 3. Érvényes az affin invariancia tulajdonság. (Ha a görbét affin transzformációnak akarjuk alávetni, akkor elég a kontrollpontokat transzformálni, és nem kell transzformálni a görbe összes pontját.)
Probléma: Az ívek külön-külön megadott, egymással egyenlő hosszú paramétertartományai nagyon egyenlőtlen hosszúságú görbeíveket írhatnak le. Ezért az eljárást általánosították úgy, hogy az ívek paramétertartományai ne legyenek feltétlenül egyenlő hosszúságúak (ennek neve nem uniform B-spline görbe NURBS).
Felületmodellezés A célunk az, hogy úgy írjuk a le a felületeket, hogy kevés adatot tároljunk, könnyen számíthatók és utólag módosíthatók legyenek. Polinomokkal leírható felületeket alkalmaznak (egyszerű, gyors számíthatóság). A felületdarabok „szép” illesztése érdekében legtöbb esetben harmadfokú polinomokat használnak.
Bézier-felület Adottak a Pij (i=0, 1, .., n; m=0, 1, …, m) pontok a térben (összesen (n+1)*(m+1) db kontrollpont). A szomszédos kontrollpontokat összekötő szakaszok a kontrollhálót adják.
Ekkor a Bernstein-polinomok felhasználásával a kontrollhálót approximáló felület definiálható:
A kapott felületdarab határgörbéi, és paramétervonalai (az u vagy v paraméter rögzítése esetén) Bézier-görbék lesznek. A kontrollháló bármely kontrollpontjának változtatásával globálisan változik a felület. http://www.mizuno.org/gl/bs/
Bézier-felület
Kontrollpoligon 4*4 ponttal definiálva
Kontrollpoligon a Bézier-felülettel
Bézier-felület
Bézier-felület
Kontrollpoligon 4*4 ponttal definiálva
Kontrollpoligon a Bézier-felülettel
Bézier-felület
Coons-foltok Gyakran előforduló tervezési probléma, hogy olyan felületdarabot, foltot (patch) kell megadni, amelynek a határgörbéi ismertek. Négy, páronként közös végponttal rendelkező görbére illeszkedő foltot Coons-foltnak nevezzük. A határgörbék akár térgörbék is lehetnek.
Maga a folt három, egyszerűen definiálható felület összegeként, különbségeként adódik.
Coons-foltok
+
Az egyik szemben fekvő görbepárra illeszthető vonalfelület
A másik szemben fekvő görbepárra illeszthető vonalfelület
=
=
A négy csatlakozási pont által definiált nyeregfelület (vagy sík)