Görbemodellezés
Interpoláció Approximáció
Motiváció Mi okozhat problémát egy görbe megjelenítésekor? 1. A paraméteres alak segítségével történő megjelenítése nagyon bonyolult számításokat vehet igénybe. 2. Vagy nincs a görbének paraméteres alakja, csak tetszőlegesen sok pont számítható. 3. Módosítható-e a görbe utólag? (hogy szebb, vagy adott ponton áthaladó, vagy más feltételnek megfelelő görbét kapjunk) A célunk az, hogy úgy írjuk a le a görbéket, hogy kevés adatot tároljunk, könnyen számíthatók és utólag módosíthatók legyenek. Az egyszerű, gyors számíthatóság végett a gyakorlatban csak a polinomokat vesszük figyelembe. Kérdéses, hogy hányadfokú polinomokat használjunk a görbék előállítása során. Minél kisebb a polinom fokszáma, annál kevesebb művelettel számolhatók a helyettesítési értékek adott pontokban. Túl alacsony fokszámú polinomokat használva viszont bonyolultabb görbéket nem lehet előállítani. A síkbeli görbék modellezésére a másodfokú polinomok már elégségesek lehetnek, de általában harmadfokú polinomokat használunk a görbék leírására.
Interpoláció Adott pontokhoz olyan görbe keresése, amely áthalad az adott pontokon. A rögzített pontokat kontrollpontoknak (tartópontok, támpontok) hívjuk. A feladatnak végtelen sok megoldása létezik, ezek közül kell azt az interpolációs görbét kiválasztani, amely más feltételeknek is megfelel. Pl. szempont lehet a görbe hullámzása, vagy éppen ennek a minimálisra csökkentése. A kontrollpontokon kívül gyakran más adatok is ismertek lehetnek, pl. egy-egy pontban vagy akár mindegyikben ismert az érintővektor.
Példák: Lagrange-féle interpolációs görbe Hermite-ívek
Approximáció Adott pontokhoz olyan görbe keresése, amely közelíti az adott pontokat. A rögzített pontokat kontrollpontoknak hívjuk. Ebben az esetben is végtelen sok megoldása van a feladatnak. A megoldások, abban különböznek egymástól, hogy egy-egy pont mennyire befolyásolja a görbe alakját. Vannak olyan pontok, melyeket az átlagosnál jobban közelít a görbe („jobban vonzzák a görbét”), és vannak olyanok, melyeket kevésbé.
Példák: Bézier görbe b-spline
Hermite-ív Adottak a P0 és P1 pontok és ezekben a görbe érintővektorai: e0 és e1. Egy harmadfokú görbét keresünk, amely a következő alakú (azaz a koordinátafüggvények a t paraméter harmadfokú polinomjai lesznek):
s(t) a0 t 3 a1t 2 a2 t a3
t 0,1
Ennek a görbének az első deriváltja minden pontban az érintővektort állítja elő. Az s(t)-t leíró egyenletben négy ismeretlen szerepel, és négy egyenletet tudunk felírni kezdeti feltételnek:
e0
e1
A kezdeti feltételek analitikusan fogalmazzák meg azt a feltételt, hogy P0 a kezdőpont e0 érintővektorral, és P1 a végpont e1 érintővektorral.
Hermite-ív A megoldás:
s(t) (2p0 2p1 e0 e1 )t 3 (3p0 3p1 2e0 e1 )t 2 e0t p0 Melyet átrendezve látható, hogy az adatokból polinomok segítségével történik a kombinálás:
s(t) (2t 3 3t 2 1)p0 (2t 3 3t 2 )p1 (t 3 2t 2 t)e0 (t 3 t 2 )e1 Az egyenletben szereplő együttható polinomokat Hermite-polinomoknak nevezzük. Jól látszik, hogy Hermite-ív alakját a megadott érintővektorok is befolyásolják, nemcsak az irányuk fontos, hanem rögzített irány esetén a hosszuk is. Az érintővektor irányát változtatjuk:
http://www.nyme.hu/uploads/media/Hermite.html
Az érintővektor hosszát változtatjuk rögzített irány mellett:
Bézier görbe Egymástól függetlenül, de kb egy időben fejlesztett ki a görbét Pierre Bézier (Renault művek, 1962) és Paul de Casteljou (Citroen, 1959). Adottak a P0, …, Pn pontok (n+1 db), melyeket oly módon fogunk approximálni, hogy az elsőn és az utolsón átvezetjük a görbét, míg a közbenső pontokat fogjuk közelíteni. Felhasználási területek: A vektorgrafikában a szabadon alakítható sima görbék modellezésére használják. A képszerkesztő programok (pl. Adobe Photoshop, GIMP) a görbe vonalak rajzolásához egymáshoz kapcsolt Bézier görbék sorozatát használják. Ezeket a görbéket nem korlátozza a raszterképek felbontása és interaktívan alakíthatóak. A számítógépes animációban a mozgások vezérlésének eszközeként is használják. (pl. Adobe Flash, Adobe After Effects, Microsoft Expression Blend, Blender, Maya, Autodesk 3D Studio Max)
Bézier görbe Bézier módszere Paraméteres alakot állít elő az ún. Bernstein polinomokkal. (n+1) db pont esetén a polinom fokszáma n, és t lesz a a görbe paramétere:
n i B (t) t (1 t) n i i
Ez a polinom azt fogja megadni, hogy melyik approximálandó pont mennyire fog hatni a görbe alakjára.
n i
A görbe paraméteres alakja az adott kontrollpontok súlyozott összegeként áll elő: n
s (t) p jBnj (t) j 0
t 0,1
Bézier görbe Másodfokú Bézier görbe Egy másodfokú Bézier görbét három pont: a P0, P1, és P2 definiál, és az s(t) függvény írja le:
s(t) (1 t)2 P0 +2t(1 t)P1 +t 2P2 P1
P0
t 0,1
A három kontrollpont esetén a másodfokú Bézier-görbe már egy jól ismert síkgörbe, parabola lesz.
P2
Bézier görbe Egy harmadfokú Bézier görbét (egy síkban fekvő vagy térbeli elhelyezkedésű) négy pont: P0, P1, P2 és P3 definiál. A görbe parametrikus egyenlete:
s(t) (1 t)3 P0 +3t(1 t)2P1 +3t 2 (1 t)P2 +t 3P3 P1
P0
t 0,1
P2
P3
Ha a harmadfokú Bézier-görbe kontrollpontjait nincsenek egy síkban, akkor a Bézier-görbe térgörbe lesz!
Bézier görbe A P1 és P2 bizonyos elhelyezkedése önmagát metsző vagy csúcsos görbét eredményezhet.
Bézier görbe Negyedfokú Bézier görbére néhány érdekes példa: P1
P2
P0=P4
P3
Zárt görbe esetén elegendő, ha a kezdő- és végpont egybeesik.
P2
P1
P3
P0=P5
P4
Ha azt szeretnénk, hogy a görbe sima legyen, akkor azt kell biztosítani, hogy a kezdő- és végpont egybeessen, és az első két pont és az utolsó két pont egy egyenesre essen.
Bézier görbe de Casteljau módszere Nem állítja elő a görbe paraméteres alakját, de rekurzív módon a görbe tetszőlegesen sok pontja könnyen megadható. A görbe paramétere ennek ellenére megjelenik az eljárásban. Ha pl a t=1/3 paraméterértékhez tartozó görbepontot szeretnénk meghatározni, akkor a kontrollpoligon minden élén meghatározzuk a harmadoló pontot (zöld pontok). Ezeket összekötve egy új poligon kapunk, az éleken ismét meghatározzuk a harmadoló pontokat (kék pontok). Az eljárást addig alkalmazzuk amíg már csak egy szakasz marad, és azon kell a harmadoló pontot keresni. Négy kontrollpont esetén három lépés után a leáll a rekurzió. Fontos: Minden esetben véges sok lépés után megkapjuk a keresett pontot.
Bézier görbe Másod-, harmad-, negyedfokú ív előállítása a de Casteljau eljárással:
Bézier görbe Tulajdonságok: 1. A Bézier-görbe az első és utolsó kontrollponton áthalad. 2. A Bézier-görbe a kontrollpontjai affin transzformációjával szemben invariáns. Ez következik a de Casteljau-féle előállításból. Ezen tulajdonságot kihasználva, a görbe affin transzformációja* esetén elég a kontrollpontokra végrehajtani a transzformációt, mivel a transzformált pontok által meghatározott Bézier-görbe megegyezik az eredeti görbe transzformáltjával. De projektív transzformációra (centrális vetítés) nézve nem invariáns!
3. A Bézier görbe a kontrollpontok konvex burkán belül halad. (Nem leng ki túlságosan.)
* (Pl.:eltolás, elforgatás, tükrözés, skálázás, párhuzamos vetítés)
Bézier görbe 4. Szimmetrikus görbe abban az értelemben, hogy ha a kontrollpontokat fordított sorrendben adjuk meg, akkor ugyanazt az ívet kapjuk. 5. A kontrollpontok számának növekedése a görbe fokszámát is növeli, n+1 db pont esetén a fokszám n. Két kontrollponttal az általuk adott szakasz paraméterezhető. 6. Egy Bézier görbének egy egyenessel (térgörbe esetén síkkal) legfeljebb annyi közös pontja van, ahány pontban az egyenes (sík) a kontrollpoligont metszi. 7. A görbe egy kontrollpontját megváltoztatva a teljes görbe változik. (Csak globálisan változható!) 8. A kezdő- és a végpontban az érintők tartó egyenese a kontrollpoligon oldalai. (Ez az illesztéseket fogja segíteni.) http://www.nyme.hu/uploads/media/Bezier.html
Bézier görbe Mi lehet a teendő, ha sok kontrollpontunk van, de nem akarunk magas fokszámú görbével dolgozni?
Alacsonyabb fokszámú ívek illesztése Kapcsolódó görbeívek használata igen gyakori a modellezésben. Ilyen esetekben a csatlakozásnál megadjuk a folytonosság mértékét. A nulladrendű C0 folytonossághoz elegendő, ha a csatlakozáskor keletkező görbe megrajzolható anélkül, hogy a ceruzánkat felemelnénk. A mi esetünkben ez akkor teljesül, ha az első görbe végpontja megegyezik a második görbe kezdőpontjával.
Az elsőrendű C1 folytonossághoz az érintővektoroknak kell megegyezniük, amely azt jelenti, hogy a csatlakozási pontban az első deriváltaknak egyenlők. Ennél gyengébb feltétel, ha a csatlakozási pontokban azt követeljük meg, hogy az érintő egyenesek essenek egybe. Ekkor az első deriváltak egy konstansszorzóban térnek el egymástól. (Geometriai folytonosság)
Bézier görbe A másodrendű C2 folytonossághoz a fenti feltételeken kívül teljesülnie kell, hogy csatlakozási pontban a második deriváltak is megegyezzenek. Ennek az a következménye, hogy a csatlakozási pontokban a görbületek is megegyeznek.
A görbe paraméteres megadása nem más, mint egy út/idő függvény. Ennek az első deriváltja a sebességvektort, míg a második deriváltja a gyorsulásvektort adja. A gyakorlatban C2 folytonosságú kapcsolat elégséges, pl. animáció esetén a mozgó kamera által készített felvétel akkor lesz valósághű, ha a kapcsolódási pontokban nem gyorsul/lassul a görbe bejárása. (Ellenkező esetben szaggatott felvételt kapunk.) Ezt fejezi ki a C2 folytonosság feltétele, hogy a második deriváltak is egyezzenek meg.
Bézier-ívek néhány alkalmazása Betűtípusok tervezése (körvonal-alapú tervezés) Egy szabadkézi rajz, vagy másolat alapján a körvonalat görbével közelítik, majd a kapott csatlakozó görbéket még utólag módosítják. Az utómunka során kontrollpontokat vehetnek ki, módosíthatják azok helyét, de bizonyos pontokban az érintő állása, hossza is változhat több kontrollpont együttes változtatásával. A görbék által határolt terület kitöltésével megszületik az új betű.
Bézier-ívek néhány alkalmazása Betűtípusok tervezése (középgörbe-alapú tervezés) Ebben az esetben azt kell lemodellezni, mintha egy tollal írtuk volna a betűt. A toll hegye pl. ferdén vágott, a lappal ellipszisben találkozik, és a toll végig megőrzi ezt az állását. Ekkor az ellipszist a középpontjánál fogva mozgatjuk egy görbén, és olyan görbét kell keresni, amely az ellipszis felvett helyzeteivel végig érintkezik.
Körvonal-alapú Középgörbe-alapú
Bézier-ívek néhány alkalmazása Minták tervezése (körvonal-alapú tervezés) Egy szabadkézi rajz, vagy másolat (esetleg fénykép) alapján a körvonalat görbével közelítik, majd a kapott csatlakozó görbéket még utólag módosítják. A görbék által határolt terület kitöltésével megszületik a minta.
Bézier-ívek néhány alkalmazása Modern képek A művészek egy része szereti használni a modern technikát. Sokszor kihagyva a kézi rajzolással történő alkotást, azonnal géppel készül az alkotás.
(http://www.artfromcode.com)
Bézier-ívek néhány alkalmazása Textilről web-oldalra Egy bordűrös textil adta az inspirációt egy web-oldalon megjelenő ismétlődő mintához. Elég volt egy tökéletesnek nem mondható fénykép, melyről nagyon sok pont megadásával lett definiálva a minta.
Bézier-ívek néhány alkalmazása Általános fejmodell módosítása fényképek alapján Az általános fejmodell körvonala eltér a fényképen látható fejformától. A fényképen a fejformát Béziergörbével adták meg (zöld görbe), majd ehhez deformálták az általános modell körvonalát (piros görbe).