Vida János. Geometriai modellezés III. Görbék és felületek



Hasonló dokumentumok
I. Gondolkodási módszerek: (6 óra) 1. Gondolkodási módszerek, a halmazelmélet elemei, a logika elemei. 1. Számfogalom, műveletek (4 óra)

Helyi tanterv. Batthyány Kázmér Gimnázium Matematika emelt ( óra/hét) 9-12 évfolyam Készült: 2013 február

Tanmenet Matematika 8. osztály HETI ÓRASZÁM: 3,5 óra ( 4-3) ÉVES ÓRASZÁM: 126 óra

Halmazok Halmazok, részhalmaz, halmazműveletek, halmazok elemszáma

Matematika emelt szint a évfolyam számára

Számítógépes grafika

NT Matematika 9. (Heuréka) Tanmenetjavaslat

Helyi tanterv Német nyelvű matematika érettségi előkészítő. 11. évfolyam

MATEMATIKA Kiss Árpád Országos Közoktatási Szolgáltató Intézmény Vizsgafejlesztő Központ

9. ÉVFOLYAM. Tájékozottság a racionális számkörben. Az azonosságok ismerete és alkalmazásuk. Számok abszolútértéke, normál alakja.

Az áprilisi vizsga anyaga a fekete betűkkel írott szöveg! A zölddel írott rész az érettségi vizsgáig még megtanulandó anyag!

MATEMATIKA évfolyam. Célok és feladatok. Fejlesztési követelmények

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.

Matematika. Specializáció évfolyam

MATEMATIKA TANTERV Bevezetés Összesen: 432 óra Célok és feladatok

Számsorozatok Sorozat fogalma, példák sorozatokra, rekurzív sorozatokra, sorozat megadása Számtani sorozat Mértani sorozat Kamatszámítás

PRÓBAÉRETTSÉGI MATEMATIKA május-június SZÓBELI EMELT SZINT. Tanulói példány. Vizsgafejlesztő Központ

hogy a megismert fogalmakat és tételeket változatos területeken használhatjuk Az adatok, táblázatok, grafikonok értelmezésének megismerése nagyban

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

Parciális differenciálegyenletek numerikus módszerei számítógépes alkalmazásokkal Karátson, János Horváth, Róbert Izsák, Ferenc

Tanmenetjavaslat a 6. osztályos matematika kísérleti tankönyvhöz

MATEMATIKA I. RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY A) KOMPETENCIÁK

MATEMATIKA TAGOZAT 5-8. BEVEZETŐ. 5. évfolyam

Az osztályozó, javító és különbözeti vizsgák (tanulmányok alatti vizsgák) témakörei matematika tantárgyból

MATEMATIKA Emelt szint évfolyam

Alkalmazott modul: Programozás

HELYI TANTERV MATEMATIKA tanításához Szakközépiskola évfolyam

MATEMATIKA 9. osztály Segédanyag 4 óra/hét

6. modul Egyenesen előre!

HELYI TANTERV MATEMATIKA (emelt szintű csoportoknak) Alapelvek, célok

Jegyzet tervezet Összeállította: Dr. Boza Pál fıiskolai tanár 2009

Matematika évfolyam

PÉCSI TUDOMÁNYEGYETEM

EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 2. sz. melléklet Matematika az általános iskolák 5 8.

Széchenyi István Egyetem, 2005

Vári Péter-Rábainé Szabó Annamária-Szepesi Ildikó-Szabó Vilmos-Takács Szabolcs KOMPETENCIAMÉRÉS 2004

értelmezéséhez, leírásához és kezeléséhez. Ezért a tanulóknak rendelkezniük kell azzal a képességgel és készséggel, hogy alkalmazni tudják

MATEMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

Nemzeti alaptanterv 2012 MATEMATIKA

Munkaformák Módszerek Eszközök készségek, célok Szervezési feladatok Rendezés, a füzet vezetése EM Magyarázat Tankönyv, füzetek

Tartalomjegyzék. Typotex Kiadó III. Tartalomjegyzék

Matematika helyi tanterv 5 8. évfolyam számára Alapelvek, célok

Matematika évfolyam. tantárgy 2013.

2) = 0 ahol x 1 és x 2 az ax 2 + bx + c = 0 ( a,b, c R és a 0 )

Sztojka Miroszláv LINEÁRIS ALGEBRA Egyetemi jegyzet Ungvár 2013

5. évfolyam. Gondolkodási módszerek. Számelmélet, algebra 65. Függvények, analízis 12. Geometria 47. Statisztika, valószínűség 5

Matematika. Padányi Katolikus Gyakorlóiskola 1

MATEMATIKA 5 8. ALAPELVEK, CÉLOK

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Matematika 8. PROGRAM. általános iskola 8. osztály nyolcosztályos gimnázium 4. osztály hatosztályos gimnázium 2. osztály. Átdolgozott kiadás

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA 9.A-9.C-9.D OSZTÁLY HETI 4 ÓRA 37 HÉT/ ÖSSZ 148 ÓRA

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Témakörök az osztályozó vizsgához. Matematika

A továbbhaladás feltételei fizikából és matematikából

Matematika POKLICNA MATURA

Ittfoglalomösszea legfontosabbtudnivalókat, részleteka honlapon, illetvea gyakorlatvezetőtől is kaptok információkat.

MAGISTER GIMNÁZIUM TANMENET OSZTÁLY

Matematika helyi tanterv,5 8. évfolyam

TERMÉK FEJLESZTÉS PANDUR BÉLA TERMÉK TERVEZÉSE

Kosztolányi József Kovács István Pintér Klára Urbán János Vincze István. tankönyv. Mozaik Kiadó Szeged, 2013

MATEMATIKA évfolyam

értelmezéséhez, leírásához és kezeléséhez. Ezért a tanulóknak rendelkezniük kell azzal a képességgel és készséggel, hogy alkalmazni tudják

Három dimenziós barlangtérkép elkészítésének matematikai problémái

7. Szisztolikus rendszerek (Eberhard Zehendner)

DELTA (Δ) ÉS DÉ (d) Hegedűs János Leőwey Klára Gimnázium, Pécs az ELTE Természettudományi Kar PhD hallgatója

4. modul Poliéderek felszíne, térfogata

HELYI TANTERV MATEMATIKA GIMNÁZIUMI OSZTÁLYOK

Apor Vilmos Katolikus Iskolaközpont. Helyi tanterv. Matematika. készült. a 51/2012. (XII. 21.) EMMI rendelet 1. sz. melléklet 1-4./1.2.3.

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

Nyugat-magyarországi Egyetem Geoinformatikai Kara. Dr. Engler Péter. Fotogrammetria 2. FOT2 modul. A fotogrammetria geometriai és matematikai alapjai

Az alap- és a képfelület fogalma, megadási módjai és tulajdonságai

Mechatronika Modul 1: Alapismeretek

Alak- és helyzettűrések

EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 1. sz. melléklet Matematika az általános iskolák 1 4. évfolyama számára

Osztályozóvizsga követelményei

Termék modell. Definíció:

3D számítógépes geometria és alakzatrekonstrukció

Geometriai modellezés. Szécsi László

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA 11.E OSZTÁLY HETI 4 ÓRA 37 HÉT/ ÖSSZ 148 ÓRA

Síklefedések Erdősné Németh Ágnes, Nagykanizsa

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria I.

MATEMATIKA ÉVFOLYAM

A Margit híd pillérszobrának 3D-s digitális alakzatrekonstrukciója Nagy Zoltán 1 Túri Zoltán 2

Lineáris programozás. Modellalkotás Grafikus megoldás Feladattípusok Szimplex módszer

Tartalom. Descartes-koordináták. Geometriai értelmezés. Pont. Egyenes. Klár Gergely 2010/2011. tavaszi félév

COMENIUS ANGOL-MAGYAR KÉT TANÍTÁSI NYELVŰ ÁLTALÁNOS ISKOLA MATEMATIKA TANMENET

2014/2015. tavaszi félév

MATEMATIKA A és B variáció

Gyarmati Dezső Sport Általános Iskola MATEMATIKA HELYI TANTERV 1-4. OSZTÁLY

FAUR KRISZTINA BEÁTA, SZAbÓ IMRE, GEOTECHNIkA

TANMENET javaslat. a szorobánnal számoló. osztály számára. Vajdáné Bárdi Magdolna tanítónő

TARTALOMJEGYZÉK ELŐSZÓ GONDOLKOZZ ÉS SZÁMOLJ! HOZZÁRENDELÉS, FÜGGVÉNY... 69

Fejezetek az abszolút geometriából 6. Merőleges és párhuzamos egyenesek

reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése. A tanulóktól megkívánjuk a szaknyelv életkornak

8. MODELLEZÉS AZ ALKATRÉSZGYÁRTÁS TECHNOLÓGIAI TERVEZÉSÉNÉL

Geometriai axiómarendszerek és modellek

Matematika tanmenet (A) az HHT-Arany János Tehetségfejleszt Program el készít -gazdagító évfolyama számára

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

Szakdolgozat. A geometria modellje a programozás oktatásban. Király Dániel. Vásárhelyi Éva. matematika tanár szak. témavezető: egyetemi docens

Átírás:

Vida János Geometriai modellezés III. Görbék és felületek Oktatási segédlet Piszkozat Budapest, 2010 1

E segédletet az ELTE Informatikai Karának azok a beiratkozott hallgatói használhatják, akik A geometriai modellezés alapjai, Számítógépes grafika vagy a Háromdimenziós tervezés című tárgyaim valamelyikét hivatalosan felvették. Aki a fenti előadások valamelyikéből sikeres vizsgát tett, a segédlet vizsgája idején aktuális példányát tovább használhatja. A segédletet, vagy annak részét terjeszteni, jogosulatlan személyek számára elérhetővé tenni nem szabad. Aki nem jogosult a segédlet használatára, köteles a birtokában lévő összes példányt és részletet megsemmisíteni. Minden egyéb használathoz a szerző írásbeli engedélye szükséges. Fejezetek 1. Bevezetés6 2. Alapozás.22 3. A Bézier-görbeív31 4. Alapműveletek Bézier-görbeívekkel42 5. Összetett görbék.53 6. Egyszerű görbeívek és C1 harmadfokú összetett görbék illesztése66 7. B-szplájn görbék a geometriai modellezésben.79 8. Racionális görbék.99 9. Jelölések.115 10. Irodalomjegyzék.116 Tartalomjegyzék 1. Bevezetés6 1.1. A geometriai modellezés, és a tárgy célja.6 1.2. A geometriai modellezés alkalmazási területei.7 1.3. A CAD, CAM és a geometriai modellezés rövid története7 1.4. A tervezési folyamatról.8 1.5. A geometriai modellezési feladatok bonyolultsága8 1.5.1. Dimenzionális bonyolultság9 1.5.2. Analitikus bonyolultság9 1.5.3. Kombinatorikus bonyolultság.9 1.6. Geometriai modellezési sémák.9 1.6.1. Drótvázmodell.9 1.6.2. Felületmodell és síklapú közelítés10 1.6.3. Testmodellek.11 1.7. Mi szükség van a bonyolultabb modellekre?14 1.8. Pontok és vektorok megkülönböztetése15 1.9. A görbe- és felületegyenletek típusai16 1.9.1. Explicit egyenlet16 1.9.2. Implicit egyenlet17 1.9.3. Parametrikus egyenlet.17 1.9.4. Procedurális leírás, egyenlet19 1.10. A geometriai modellezés alapműveletei.19 1.11. Kérdések és feladatok.20 2

1.11.1. Ellenőrző kérdések20 1.11.2. Gyakorlatok.20 1.11.3. Feladatok.20 1.11.4. Gondolkodtató kérdések20 2. Alapozás.22 2.1. Elemi geometriai alapok.22 2.2. Súlyozott átlag, konvex kombináció, konvex burok.22 2.3. Affin transzformációk.23 2.4. Homogén koordináták.24 2.5. Pontok affin transzformációi homogén koordinátákban.25 2.6. Párhuzamos vetítés homogén koordinátákban25 2.7. Középpontos vetítés, távlati, perspektivikus ábrázolás26 2.8. Lineáris interpoláció.27 2.9. Poligon-interpoláció, görbébe írt poligon tulajdonsága28 2.10. Menelaos tétele CAGD verzió.29 2.11. Kérdések és feladatok.29 2.11.1. Ellenőrző kérdések29 2.11.2. Gyakorlatok.30 2.11.3. Feladatok.30 2.11.4. Gondolkodtató kérdések30 3. A Bézier-görbeív31 3.1. A másodfokú de Casteljau algoritmus32 3.2. Az általános de Casteljau-algoritmus és a Bézier-görbeív33 3.3. A Bézier-görbeív tulajdonságai a de Casteljau-algoritmus alapján33 3.4. Példa térbeli Bézier-görbeív kiértékelésére34 3.5. A Bézier-görbeív multiaffin kifejtése.35 3.6. Bernstein polinomok.37 3.7. Bézier-görbeív Bernstein-bázisban.38 3.8. A Bézier-görbeív tulajdonságai a Bernstein-bázisú alak alapján39 3.9. Kérdések és feladatok.40 3.9.1. Ellenőrző kérdések40 3.9.2. Gyakorlatok.41 3.9.3. Feladatok.41 3.9.4. Gondolkodtató kérdések41 4. Alapműveletek Bézier-görbeívekkel42 4.1. Egyenes leírása Bézier-görbeívvel. A természetes paraméterezés lehetősége43 4.2. A Bernstein polinom és a Bézier-görbe deriváltja44 4.3. Hodográf. Magasabb deriváltak45 4.4. Deriváltak az ív végpontjaiban.46 4.5. Deriváltak és a de Casteljau algoritmus46 4.6. Fokszámemelés.48 4.7. Az ismételt fokszámemelés és következményei.49 4.8. Fokszámcsökkentés. Bézier-görbeív egyszerű közelítése alacsonyabb fokúval.50 4.9. Kérdések és feladatok.51 4.9.1. Ellenőrző kérdések51 4.9.2. Gyakorlatok.52 4.9.3. Feladatok.52 4.9.4. Gondolkodtató kérdések52 5. Összetett görbék.53 3

5.1. Összetett görbe. Lokális és globális paraméter. Globális derivált54 5.2. Bézier-görbeív része, kettéosztása és kiterjesztése.55 5.3. A Bézier-görbe Cr folytonosságának feltétele58 5.4. Bézier-ívek C1 csatlakozása.59 5.5. Harmadfokú Bézier-ívek C2 csatlakozása59 5.6. Összetett Bézier-görbe C1 paraméterezésének előállítása60 5.7. C1 másodfokú összetett Bézier (B-szplájn) görbe61 5.8. C2 harmadfokú összetett Bézier (B-szplájn) görbe63 5.9. Nyílt C2 harmadfokú B-szplájn görbe Böhm-féle végződése64 5.10. Kérdések és feladatok.64 5.10.1. Ellenőrző kérdések64 5.10.2. Gyakorlatok.64 5.10.3. Feladatok.65 5.10.4. Gondolkodtató kérdések65 6. Egyszerű görbeívek és C1 harmadfokú összetett görbék illesztése66 6.1. A Bézier-görbe mátrixalakja.67 6.2. Négy pont interpolációja / kollokációja harmadfokú Bézier-görbeívvel68 6.3. Pontsorozat interpolációja parametrikus polinom alapú görbékkel69 6.4. Harmadfokú Hermite interpoláció. Hermite polinomok Bernstein bázisban.70 6.5. Összetett harmadfokú Hermite interpoláció.72 6.6. Egyenközű, húrhossz-arányos és vetületben egyenletes paraméterezés.73 6.7. Érintőirányok beállítása. FMILL tangens, Bessel tangens, Catmull-Rom szplájn.75 6.8. Az Overhauser szplájn76 6.9. Pont-normális interpoláció77 6.10. Kérdések és feladatok.77 6.10.1. Ellenőrző kérdések77 6.10.2. Gyakorlatok.78 6.10.3. Feladatok.78 6.10.4. Gondolkodtató kérdések78 7. B-szplájn görbék a geometriai modellezésben.79 7.1. Hogyan vihető át a C2 folytonosság szemléletes feltétele a koordináta-függvényekre?79 7.2. A B-szplájn alapfogalmai.81 7.3. A csomóbeszúrási algoritmus.83 7.4. A csomóbeszúrás formálisan85 7.5. A de Boor algoritmus és a B-szplájn85 7.6. A B-szplájn görbe felbontása Bézier-ívekre.88 7.7. A B-szplájn görbe folytonossága89 7.8. A B-szplájn bázis90 7.9. Rekurziós formulák.95 7.10. Chaikin-algoritmus, rekurzív felosztással definiált görbe95 7.11. Kérdések és feladatok.97 7.11.1. Ellenőrző kérdések97 7.11.2. Gyakorlatok.98 7.11.3. Feladatok.98 7.11.4. Gondolkodtató kérdések98 8. Racionális görbék.99 8.1. Racionális Bézier-görbék100 8.2. A racionális bázis tulajdonságai101 8.3. A racionális Bézier-görbék tulajdonságai. A súlyok hatása102 4

8.4. A racionális de Casteljau algoritmus103 8.5. Kiértékelés, deriváltak, fokszámemelés103 8.6. Racionális másodfokú görbék.105 8.7. A kúpszeletek osztályozása.107 8.8. A Racionális Bézier-kúpszelet és vezérlő háromszöge108 8.9. Körív leírása racionális másodfokú Bézier-alakban.109 8.10. A racionális B-szplájn (NURBS) görbék110 8.11. A racionális B-szplájn görbék tulajdonságai111 8.12. Példák teljes kúpszeletek leírására112 8.13. Kérdések és feladatok.114 8.13.1. Ellenőrző kérdések114 8.13.2. Gyakorlatok.114 8.13.3. Feladatok.114 8.13.4. Gondolkodtató kérdések114 9. Jelölések.115 10. Irodalomjegyzék.116 5

1. Bevezetés 1. Bevezetés 1.1. A geometriai modellezés, és a tárgy célja.6 1.2. A geometriai modellezés alkalmazási területei.7 1.3. A CAD, CAM és a geometriai modellezés rövid története7 1.4. A tervezési folyamatról.8 1.5. A geometriai modellezési feladatok bonyolultsága8 1.5.1. Dimenzionális bonyolultság9 1.5.2. Analitikus bonyolultság9 1.5.3. Kombinatorikus bonyolultság.9 1.6. Geometriai modellezési sémák.9 1.6.1. Drótvázmodell.9 1.6.2. Felületmodell és síklapú közelítés10 1.6.3. Testmodellek.11 1.7. Mi szükség van a bonyolultabb modellekre?14 1.8. Pontok és vektorok megkülönböztetése15 1.9. A görbe- és felületegyenletek típusai16 1.9.1. Explicit egyenlet16 1.9.2. Implicit egyenlet17 1.9.3. Parametrikus egyenlet.17 1.9.4. Procedurális leírás, egyenlet19 1.10. A geometriai modellezés alapműveletei.19 1.11. Kérdések és feladatok.20 1.11.1. Ellenőrző kérdések20 1.11.2. Gyakorlatok.20 1.11.3. Feladatok.20 1.11.4. Gondolkodtató kérdések20 Köszönettel tartozom Varga Tamás és Valasek Gábor hallgatóimnak, mert a segédlethez órai jegyzettel, hibakereséssel, gépeléssel jelentősen hozzájárultak. A segédletre, annak szerkezetére, az alkalmazott jelölésekre és az érintett tantárgyakra vonatkozó további általános tudnivalókat a külön fájlban található Bevezető rész tartalmazza. Az ott leírtakat itt nem (feltétlenül) ismételjük meg. Vida János 2010. 1.1. A geometriai modellezés, és a tárgy célja1 Alkalmazások széles köre épül térbeli alakzatok leírására. A geometriai modellezés az e célra használt fogalmakat és módszereket foglalja össze. A bevezetésben először áttekintjük a geometriai modellezés alkalmazási területeit és fejlődésének rövid történetét. A továbbiakban a szükséges alapfogalmak bevezetése illetve felfrissítése után a görbék és felületek leírására használt eszközöket, és 1 Ennek a bevezető fejezetnek az a célja, hogy helyére tegye a tárgyat, előzetes áttekintést, és a környezetre, folytatásra vonatkozó kitekintést adjon. Annak ellenére, hogy tételesen csak kis súllyal kerül szóba a vizsgán, fontos lehet a felkészülés során, mert szemléletet formál, ezáltal megkönnyíti az anyag többi részének megértését, tanulását. 6

1. Bevezetés ezek reprezentációhoz közeli algoritmusait ismerjük meg. A folytatásban a geometriai modellek elemeit rendszerbe foglaló adatszerkezeteket és az alkalmazásokat és felhasználói funkciókat kiszolgáló algoritmusok egy részét tárgyaljuk. 1.2. A geometriai modellezés alkalmazási területei A geometriai modellen alapuló eszközök az ipari alkalmazások, játékok, animációs filmek után ma már mindennapi életünkben is megjelennek. alakzatok interaktív létrehozása, tervezése (CAD2): pl. alkatrészek, szerkezetek, épületek tervezése, formatervezés számítógépi modell létrehozása, rekonstruálása mérési adatok esetleg képek alapján: pl. fog, fából, gyurmából készített forma beolvasása pl. optikai vagy lézerszkenner, korábban mérőgép segítségével modell alapú analízis: fizikai (pl. kinematikai, szilárdságtani, áramlástani), gazdasági, stb. számítások; ezek egy része költséges modellkísérleteket vált ki háromdimenziós nyomtatás (3D printing), gyors prototípus-készítés (rapid prototyping) robotirányítás: pl. ütközésvizsgálattal kiegészített interaktív robotprogramozás, vagy feladatok tervezése üzemi környezet modellje alapján megmunkálás, gyártás (CAM3): pl. NC4 megmunkálás műveletei és mozgáspályái grafika, animációtervezés, multimédia: ha csak ez a cél, gyakran síklapokkal közelített leírás is elegendő hozzá, pl. játékok, film, webáruház számítógépi látás, alakfelismerés, digitális képelemzés 1.3. A CAD, CAM és a geometriai modellezés rövid története5 II. világháború: Angol repülőgép-tervezők eredményeiket a hagyományos műszaki rajz mellett numerikus formában is rögzítették. Hardver: mechanikus, elektromechanikus számológépek 1955 körül, NC gép, APT6 nyelv, MIT7: Megjelentek az első NC szerszámgépek. Ezek programozását segítette az APT nyelv. 1959 körül, de Casteljau, Citroën: Felismerte, hogy a szabadformájú felületeket Bernstein polinombázisban érdemes leírni. Nem publikálta. Ezek a Bézier-görbék és felületek. 1963, Sutherland, MIT: SKETCHPAD interaktív grafikus kommunikációs rendszer 1963, Ferguson, Boeing: Parametrikus harmadfokú görbék és felületek 2 CAD, computer-aided design, = számítógépi (számítógéppel segített) tervezés 3 CAM, computer-aided manufacture = számítógépes (számítógéppel segített) megmunkálás vagy gyártás 4 NC, numerically controlled = eredeti jelentése: számjegyvezérlésű, mert a szerszámgép vezérlőegysége számára kezdetben főleg számjegyeket tartalmazó lyukszalag tartalmazta az elvégzendő műveleteket. Ma már a vezérlést is számítógép végzi, az ilyen NC megkülönböztető neve a CNC. Ez a vezérlő egység már csak annyiban különleges, hogy üzemi körülmények között is megbízhatóan kell működnie. 5 Ez a történeti összefoglaló nem része a vizsgának. Ismerete megkönnyíti a tanulást, mert érezhetővé teszi, hogyan alakult ki, és mire is lehet jó ez az eszköztár. A tananyag helyenként az időrendnek megfelelően halad. 6 APT, automatic programming of tools, programozási nyelv, amellyel egyenesek, körök, analitikus felületek menti pályákon lehet a szerszám mozgásait megadni. NC kódra az NC vezérlőegységének megfelelő posztprocesszor fordítja. 7 MIT, Massachusetts Institute of Technology 7

1. Bevezetés 1966, Bézier, Renault: Szabadformájú felülettervezés (karosszéria) Bernstein polinom bázisban 1967, Coons, MIT; 1969, Gordon, General Motors: Felületillesztési módszerek görbehálóra. 1968, Forrest, University of Cambridge: A CAD addig használt görbéinek és felületeinek első, matematikailag is igényes rendszerzése. 1973, Riesenfeld, Syracuse University: B-szplájn8 görbék és felületek bevezetése 1973, Braid, University of Cambridge: Kiértékelt testmodellező egyszerű geometriájú felületek által határolt bonyolult alakzatok leírására 1975, Versprille, Syracuse University: NURBS9 1980, Braid, University of Cambridge: A Baumgart-féle winged-edge 10 adatszerkezet és Euler-operátorok a BUILD rendszerben 1980-as évek: szabadformájú testmodellezés, testmodellek lekerekítése 1990-es évek: a felosztással definiált felületek elterjedése (különösen animáció- és formatervezésre), napjaink kutatási feladatai: rekonstrukció, modellépítés mért pontfelhő alapján, tervezés szabadkézi vázlat segítségével, valószerű megjelenítés a modell szerkesztése közben, valós időben, fizikai jelenségek modellezése, virtuális használatbavétel. 1.4. A tervezési folyamatról A tervezési folyamat lépései nagy vonalakban a következők: (1) Specifikáció: célkitűzés, lényeges funkciók meghatározása (2) Szintézis vagy tervek generálása (3) Analízis (4) Visszacsatolás A (2)(4) lépéseket ciklikusan végezzük, tervváltozatok sorozata keletkezik. Ezért a geometriai modellezőknek is meg kell oldaniuk az alternatívák hatékony kezelését. 1.5. A geometriai modellezési feladatok bonyolultsága Egy geometriai modellezési feladatot megoldó program bonyolultabbá válik, ha több dimenziót kell egyszerre kezelnie, vagy nehezebben kezelhető egyenleteket tartalmaz, vagy több vagy többféle geometriai elemet kell egyszerre kezelnie. 8 A szplájn az angol spline kiejtés szerinti szabályos átírása magyarra. Akkor is, ha úgy érezzük, hogy ez borzalmas. Polinom ívekből álló összetett görbét jelent, és ennek általánosítását felületre. A B-szplájn ( B-spline ) az összetett polinom bázissal rendelkező szplájn rövidítése. Részletesen foglalkozunk velük. 9 NURBS (ejtsd: nörbsz ), az angol non-uniform rational B-spline rövidítése, később részletesen vesszük. 10 Jelentése: szárnyas él. Lásd később. 8

1. Bevezetés 1.5.1. Dimenzionális bonyolultság Minőségi különbség van a különböző dimenziószámú terek között rendezés: 1D 2D euklideszi tér szög: 2D euklideszi 3D euklideszi tér az idődimenzió szerepe nem szimmetrikus: 3D euklideszi tér 4D téridő Más: egy feladat dimenziójának szokás nevezni a benne szereplő változók számát is. 1.5.2. Analitikus bonyolultság Kb. az egyenletek következő sorrendje szerint növekszik: lineáris, másodfokú, harmadfokú, racionális másodfokú, gyökös, negyedfokú, magasabb fokú racionális, trigonometrikus,. Az elvégzendő feladattól is függ, pl. metszés, lekerekítés, hizlalás 11 (ofszettelés) bonyolultabbá teszi. 1.5.3. Kombinatorikus bonyolultság Sok azonos típusú elem esetén jellemző, hogy a műveletigény az elemek számával hogyan növekszik. Pl. egyszerű, nyers erőn alapuló algoritmus (páronkénti metszések) esetén egy n n felület által határolt (konvex) test összes élgörbéjének meghatározása, összes csúcsá2 n nak meghatározása metszési műveletet igényelne. 3 Sok, pl. n különböző típusú alkotóelem (pl. görbetípus, felülettípus) páronkénti metszésére n (egyszerű szerkezetű, naiv kódolás esetén) sok, függvényt kell írni. 2 1.6. Geometriai modellezési sémák Egy alakzatot sokféleképpen jellemezhetünk. Egy geometriai modellezőre jellemző a leírható alakzatok köre. Ezen belül egy konkrét alakzat többféleképpen határozható meg. A modellezési séma az alakzatok számítógépi leírására vonatkozó alapelgondolás. Közvetlenül a modellt összetartó adatszerkezetekben. és a leíró fogalmakban (osztályokban) jelenik meg. Meghatározza a modellező lényeges tulajdonságait, korlátait. 1.6.1. Drótvázmodell A drótvázmodell eredetileg egy kezdetleges elképzelés volt arról, hogyan lehet a műszaki rajzot számítógépre vinni. Abból indult ki, hogy a vonalas műszaki rajzhoz hasonlóan a számítógépben is elegendő a testek éleit ábrázolni. A vonalas ábra azonban sem a két, sem a háromdimenziós --, önmagában nem egyértelmű, mert 11 Hizlalás, ofszettelés: azon pontok halmazának -- mértani helyének -- meghatározása a síkon vagy a térben, melyeknek egy adott alakzattól vett távolsága (a) pontosan vagy (b) legfeljebb adott r sugárnyi. Angolul offset, offsetting, ennek (kissé következetlen) átírása magyarra szabályosan az ofszet, ofszettelés. A geometriai modell építése (pl. CAD: falvastagság növelés, lekerekítés) során és alkalmazásokban (pl. CAM: forgácsoló megmunkálás tervezése) is szükséges, gyakori művelet. 9

1. Bevezetés teljesen automatikus gépi értelmezéséhez hiányzik a szoftver szakértői intelligenciája12, például nem mondja meg pontosan, hogy hol vannak a lapok az alábbi ábrán látható testen, így nem határozza meg egyértelműen, hol van a test belseje. 1.6.1. ábra: Drótvázmodell. Hol vannak lapok? (Forrás: [Vida93]) Ennek ellenére nem csak történeti szempontból hasznos a drótvázmodell, mert lapok hozzáadásával testmodellé kiegészíthető, rugalmas szerkesztési segédeszköz, pl. lehetővé teszi lekerekített testmodell egyszerű, gyors, olcsó létrehozását, így ma is a fejlett tervező rendszerek, vegyes dimenziós testmodellek része. 1.6.2. Felületmodell és síklapú közelítés Először a bonyolult geometriájú, hagyományos eszközökkel nem, vagy csak nehezen kezelhető felületek tervezésére és gyártására vált gazdaságossá számítógépet használni. Ezt a célt szolgálták a felületmodellező rendszerek. Funkcióik és jellemzőik: összetett polinom koordinátájú görbék és felületek létrehozása, lekérdezése, nem írnak le teljes testet, a szomszédossági relációk ábrázolása opcionális. Napjainkra a felületmodellező rendszerek funkciói a testmodell alapú geometriai modellezőkbe integrálódtak, ott a felületmodellezés műveletei ma is elérhetők. A felületmodellező rendszerekben használatos görbe- és felületreprezentációk alkotják a geometriai modellezés oktatásának első részletes, matematikailag is rendszerezett témakörét.13 A felületmodell speciális esetének tekinthető az alakzatok síklapú, közelítő leírása. Leggyakrabban grafikus megjelenítés és animáció, néha más alkalmazások céljára is elegendő az alakzatokat síklapokkal (általában háromszögekkel, ritkábban négyszögekkel) közelíteni. Ezeket aztán a grafikus kártyák vagy processzorok nagy tömegben, hatékonyan tudják kezelni. Általában ilyet használnak az interaktív grafikus programok, árnyalt, de nem teljesen valósághű képek gyors 12 A naiv eredeti elképzelés sikeresen visszavezette a feladatot egy nehezebbre. 13 TODO: ábra: felületmodell, vonalas (a) 1 paramétervonalas darab (b) összetett, OC példa 10

1. Bevezetés előállítására, akár animációban is. Ha egy alkalmazás bonyolult geometriájú alakzatok lényegesen pontosabb leírását igényli, mint ami grafikához elegendő (kb. a befoglaló mérethez képest 3 nagyságrendnyi pontosság (hiba, felbontás)), az rendszerint a közelítő síklapok számának elszaporodásához vezet, memória-, háttértár- és adatátviteli korlátokba ütközik. (Ez az egyik oka annak, hogy továbbra is az alkalmazások széles köre használ a görbült felületeket.) 1.6.2. ábra: Felületdarab közelítése síklapokkal 1.6.3. Testmodellek Egy testmodell alkalmas zárt, anyaggal kitölthető térrészek, ponthalmazok leírására, azaz a hétköznapi mechanikai értelemben szilárd testek névleges14 geometriájának kezelésére. Egy konkrét testmodellező rendszer megengedheti az alakzatok szélesebb körét is, pl. gyakran lehetővé teszik vegyes dimenziós, végtelenbe nyúló, vagy nem teljesen zárt alakzatok leírását. Más megfogalmazásban egy geometriai modell testmodell, ha segítségével minden térbeli pontról egyértelműen eldönthető, hogy kívül ( out ) vagy belül ( in ) van az alakzaton, vagy határpontja az alakzatnak ( on ). Ez a művelet a tér pontjainak osztályozása a testhez képest, röviden pont/test osztályozás. A testmodellek alaptípusai a következők. CSG15 testmodell. A test elemi alakzatokból (angolul primitive ) -- melyek vagy paraméteres elemi testek (téglatest, kúp, gömb, stb.) vagy félterek (lásd a felület implicit egyenleténél) lehetnek --, halmazműveletek és transzformációk segítségével épül fel. A testet egy bináris műveleti fa írja le: levelei az elemi alakzatok, melyeket a többi gráfpontban halmazműveletek,,, a fa élei mentén transzformációk kötnek össze. A CSG modell alapján 14 A névleges (latinból nominális, angolul "nominal") geometriai modell elvileg tökéletesen egyértelmű geometriájú alakzatot ír le. Nem alkalmas (közvetlenül) a szilárd test fogalmán belül még lehetséges kismértékű deformációk, pl. hőtágulás modellezésére. Nem minden esetben képes (közvetlenül) a méret és a forma bizonytalanságát jellemző tűrések által meghatározott alakzatosztályok kezelésére, bár ez a mérnöki alkalmazások jelentős részéhez elengedhetetlen. A névleges geometriai modell is használ belső (pl. pozíció- és szög-) tűréseket, melyek az alkalmazott közelítések pontosságát és az illeszkedési relációkat jellemzik, és a modell konzisztenciáját biztosítják. A modell belső tűrései nem tévesztendők össze az alkalmazói szint (pl. alak- és méret-) tűréseivel, melyekkel az alkatrész névleges geometriától való megengedett eltéréseit jellemezzük. 15 A CSG elnevezés az angol Constructive Solid Geometry rövidítése. Más testmodellező sémákban is szokás CSG műveltekről beszélni, ezek ott a halmazműveleteket jelentik, mert a CSG modell csak ezekkel építkezik. 11

1. Bevezetés a pont/test osztályozás elvégezhető: (1) a gyökértől a levelek felé terjesztjük az adott pontot, miközben (1a) a fa érintett élein lévő transzformációk inverzével transzformáljuk, (2) a levelekben elvégezzük a pont/test osztályozást (elemi alakzatokra ismert), majd (3) a levelektől a gyökér felé terjesztjük az eredményt, miközben (3a) az eredmény geometriai részét a fa érintett élein lévő transzformációkkal transzformáljuk, és (3b) az ágak részeredményeit a fa többi gráfpontjában lévő halmazműveleteknek megfelelően kombináljuk.16 1.6.3. ábra: Egyszerű test 1.6.4. ábra: és CSG modellje TODO trafók! (Forrás: [Vida93]) (Forrás: [Vida93]) B-rep 17 testmodell: A test teljes, irányított határát (határpontjainak halmazát, határoló felületeit18) adja meg. A teljes, irányított határ alapján a pont/test osztályozás elvégezhető: meg kell vizsgálni, hogy egy adott pontból a határ egy pontja felé kibocsátott félegyenes az adott ponthoz legközelebbi metszetében hogyan viszonyul a határ irányításához. A test határa a belsejével együtt három dimenzióban egy zárt ponthalmazt, egy anyaggal kitölthető térrészt határoz meg. Adatszerkezete a határ szomszédos dimenziószámú elemeinek (csúcs-él, él-lap) illeszkedési és szomszédossági viszonyait leíró gráfból, valamint az egyes határoló elemeket (csúcs, él, lap) tartalmazó geometriai elemek alakjának leírásából áll (pont, görbe, felület). A legtöbb B-rep séma él központú, azaz egy él adatszerkezet/osztály köré épül. Ennek klasszikus példája az első, BraidBaumgart-féle szárnyas él ( winged-edge ), ma elterjedt változatai a félél, vagy társél ( half-edge, "coedge") adatszerkezetek. 16 TODO: regularizált hamazművelet, környezetvizsgálat,. -- kell ide? 17 A B-rep elnevezés az angol boundary representation rövidítése. 18 Van, aki magyarul a palástot használja ebben az értelemben. Nem szerencsés ez a választás, mert a palástot csak a test oldallapjai alkotják, nem az összes lapja. 12

1. Bevezetés 1.6.6. ábra: Kiegészítő élhuroklista (Forrás: [Vida93]) 1.6.5. ábra: A szárnyas él ("wingededge") adatszerkezet mutatói (Forrás: A mutatók szokásos jelölései: Vertex = csúcs, Edge = él, Face = lap, Loop = élhurok; left = bal, right = jobb, clockwise = óramutató járása szerinti, counter-clockwise = óramutató járásával ellentétes [csúcsbeli szomszéd él a szomszéd lapon] [Vida93]) Napjaink geometriai modellezőinek többsége egy integrált, vegyes dimenziós B-rep testmodellező, amely képes drótvázmodellek és felületmodellek kezelésére, és tudja a CSG halmazműveleteket is. Az további testmodellek gyakran jellemző alkalmazási területekhez köthetők. Ismertebb közülük pár térfelosztásos technika. Az egyik ilyen a cellákra bontás, mely a testet azonos, egyszerű topológiájú (kockákra, szabályos tetraéderekre, vagy ezekkel homeomorf határszerkezetű) elemekre bontja, vagy ilyenekből építi fel. Jellemző alkalmazási területe a véges elemes analízis, melynek során a fizika differenciálegyenleteit egy ilyen belső (vagy felületi) hálószerkezet csúcsaihoz tartozó változókban oldjuk meg numerikusan. Más értelemben térfelosztásos a voxel és az octree19 modell: a tér egy rögzített, téglatest alakú részét osztja részekre, és ezekhez a részekhez rendel az alakzatra vonatkozó információt. A pixelekből álló képernyő mintájára a tér egy részét kis kockákra voxelekre bonthatjuk, és így háromdimenziós tömbben tárolhatjuk az alakzatra vonatkozó értékeket. Legegyszerűbb esetben ez az érték egyetlen bit, annak jelölésére, hogy van-e az alakzatnak pontja a voxelben. De szükség lehet például a voxel éleinek metszésére vonatkozó, vagy szín-, átlátszósági, egyéb optikai, esetleg további fizikai jellemzők tárolására. Jellemző alkalmazási területe: orvosi képalkotó eljárások eredményeinek tárolása és megjelenítése. Octree modell készítéséhez vegyünk egy koordináta-tengelyekkel párhuzamos élű téglatestet 19 Angol rövidített összetétel a gráfpontokban legfeljebb nyolcfelé ágazó fa, octonary, octant, vagy octal tree röviden octree. Magyarul az oktális fa fordítást, vagy az angol octree rövidítés átvételét javaslom. Rövidítése angolul közös t-ből adódik, a binary digit (bit) közös i-je mintájára ( kettes számrendszerbeli jegy, amit kegyetlen tréfa volna kegynek fordítani). Az octree szerencsétlen magyarítása a nyolcasfa. Mert ha már egyszer a binary tree magyarul bináris fa, és a "binary number" bináris szám (NEM kettesszám!!) akkor az "octal tree" oktális fa, annál is inkább, mivel az octal number oktális szám, és az octree minden egyes gráfpontja azonosítható egy annyi jegyű oktális számmal, ahány élen keresztül a fa gyökeréből elérhető. Sajnos kilóg a sorból a quadtree, amelyre a fentiek közül csak a quadrant tree származtatás lehetséges, a számrendszernek megfelelő "quaternary tree" nyelvileg nem. Az ennek megfelelő magyarítás a negyedfa, és a nyolcadfa lehetne, mindkettő kötődik a síkbeli és a térbeli dimenziónkénti felezéssel kapott felosztáshoz, vagyis grafika szempontjából jó, informatika szempontjából kevésbé. 13

1. Bevezetés (AABB20), amely tartalmazza az alakzatot, majd ezt mindhárom tengelyirányban felezzük meg, és azokat a részeket, amelyekbe esik pontja az alakzatnak rekurzívan osszuk tovább egy előre adott felbontás elérésig. Végül jegyezzük fel, hogy a fa mely leveleinek megfelelő részekbe esik pontja az alakzatnak. Ez a legegyszerűbb eset, a szükséges levelek száma ilyenkor a test térfogatával arányos21, ~V / 3, fizikai jellemzők térfogati eloszlásának tárolására alkalmas. 1.6.7. ábra: Octree modell Az octree modell fejlettebb változata csak azokat a cellákat osztja tovább, amelyekbe az alakzatnak határpontja esik. A szükséges levelek száma ilyenkor a test felszínével arányos 22, ~ A/ 2, fizikai jellemzők felszíni eloszlásának tárolására alkalmas. Figyeljük meg, hogy ha a test pontjainak halmaza helyett a határpontok halmazát ábrázoljuk, tömörebb reprezentációt kapunk! 1.7. Mi szükség van a bonyolultabb modellekre? A legegyszerűbb és a fejlettebb octree modellek összehasonlítása során látható, hogy tömörebb reprezentációt kapunk, ha a test pontjainak halmaza helyett a test határpontjainak halmazát írjuk le. Egy másik lehetőség a redundancia (pl. octree: a cellák számának) csökkentésére a határoló- vagy építőelemek folytonossági rendjének emelése (pl. octree: a cellán belül a határ síklapú közelítése: 0. 1. rend), ami polinom alapú leírás esetén gyakran összhangban van a leíró polinomok rendjének (fokszámának) emelésével. A redundanciacsökkentés fenti két módszere segítségével a testmodellek típusai az alábbi ábra szerint rendszerezhetők. 20 Az AABB az angol axis-aligned bounding box rövidítése. Jelentése szó szerint: tengelyhez igazított befoglaló doboz, pontosítva: koordinátatengelyekkel párhuzamos élű téglatest. 21 Folytonos, összefüggő, nem túl lapos, nem túl érdes alakzat esetén. 22 Folytonos, összefüggő, nem túl érdes alakzat esetén. 14

1. Bevezetés A magasabb rendben folytonos építőelemekből álló, vagy ilyen felületelemekkel határolt modellek alkalmazása mellett szóló érvek: kisebb redundancia, jobb adatkompresszió (nagy memória- és háttértár-igényt okozhat alacsony rendű modell esetén, ha nagy relatív pontosság szükséges) az adott alkalmazási területen magasabb rendű folytonosság szükséges. Például mérnöki alkalmazásokhoz általában legalább elsőrendű, vizuálisan szépen árnyalt formákon másodrendű, áramló közegben dolgozó alkatrészeken (pl. hajócsavar, turbinalapát, propeller) harmadrendű folytonosság szükséges. interaktív tervezésük egyszerűbb, mint pl. a voxelek vagy háromszögek millióinak módosítása volna. 1.8. Pontok és vektorok megkülönböztetése A pont és a vektor fogalma közötti különbséget a geometria kizárólag algebrai tárgyalása sajnos gyakran elfedi. Geometriai számításokat tartalmazó programokban ez a különbség azért érdekes, mert más műveleteket értelmezünk pontokon mint vektorokon. Ha megkülönböztetjük a pont és a vektor fogalmát, a fordítóprogram az operátor-kifejezések hibáinak széles körét képessé válik kiszűrni. A megkülönböztetés fogalmi alapja a következő. Euklideszi tér: olyan tér, amelyben az euklideszi geometria axiómái érvényesek. Két pontjának távolsága az összekötő szakasz hossza. Általánosabban: az n dimenziós euklideszi tér olyan metrikus tér, amelyben az A a1,., a n és B b1,., bn pont távolsága 2 3 n bi a i 2. A két és a i=1 három dimenziós euklideszi teret a továbbiakban E, E jelöli. Pont: az euklideszi tér eleme, az elemi geometria alapfogalma. Mozgatható, transzformálható. Ponthalmaz súlypontja, súlyozott átlaga kiszámítható. Helyvektor: a koordináta-rendszer origójában kezdődő és a tér egy pontjában végződő irányított szakasz. A tér minden pontjához hozzárendelhető. A helyvektorok összeadhatók és skalárral szorozhatók. Vektor (szabad vektor): Párhuzamos, egyirányú és egyenlő hosszú irányított szakaszokból álló ekvivalencia-osztály. A tér bármely X pontjában kezdődő eleme reprezentálhatja, így pl. a meg23 23 Algebrai értelemben, és a geometria kizárólag algebrai tárgyalása során minden skaláris szorzattal rendelkező lineáris teret szokás euklideszi térnek nevezni. Ezt a terminológiát NEM használjuk, itt zavart okozna. 15

1. Bevezetés felelő helyvektor is. Az összeadáson és a skalárral való szorzáson kívül értelmezett még két vektor skaláris és 3 dimenzióban 24 vektoriális szorzata. A vektortér lineáris, normált, Hilbert tér, a normát a skaláris szorzattal értelmezzük. Az n dimenziós vektorteret a továbbiakban R n jelöli. A geometria modellezőkben általában külön helyvektor osztály nincs, fogalmát néha a ponttal de inkább a vektorral vonjuk össze. Erre utal egyrészt a geometriai modellezés jelölésrendszere, másrészt jól látható a pont és a vektor (osztályok) műveleteiben. A geometriai modellezésben mind a pontokat p, a, b, mind a vektorokat u, v, w félkövér álló kisbetűkkel jelöljük, szemben a geometriában szokásos dőlt nagybetűs pontokkal P, A, B, melyeket többnyire csak ábrákon látunk. Oda kell figyelni, hogy melyik ponttér E n és melyik vektortér R n eleme. A vektorokkal ellentétben a pontokat nem lehet se összeadni, se skalárral, se skalárisan, se vektoriálisan szorozni. A pontnak a transzformáción és a (legalább két pontra értelmezett) súlyozott átlagon (baricentrikus kombináció) kívül alapművelete még a különbségvektor v=p 2 p1 képzés, és ennek inverzeként kiemelve a transzformációk közül az eltolás p2=p1 v. Gyakran helyvektorként is használjuk a vektorokat, pl. amikor vektort ponttal inicializálunk, akár megengedett ez a művelet, akár megkerüljük, pl. zérusvektor alkalmazásával. Geometriai szemléletet vagy szerkesztést követő, pontokat és vektorokat tartalmazó operátor-kifejezésekben minden részkifejezésnek szigorúan vagy vektor vagy pontértéke van, elíráskor ez könnyen borul, így több hibát ki tud szűrni a fordító. A szakirodalom jelentős része is követi az ennek megfelelő, fenti konvenciót. 1.9. A görbe- és felületegyenletek típusai A geometriai modellben a geometriai alakzatokat (pont, görbe, vagy felület) a tér koordináta-rendszereiben helyezzük el. A görbék és felületek alakját valamely egyenlettípushoz tartozó adataikkal adjuk meg, ezeket tároljuk (reprezentáció). Az alakzat dimenziójától, típusától, de az elvégzendő feladattól, művelettől is függ, hogy mikor melyik egyenletükkel dolgozunk. A következő egyenlettípusokat különböztetjük meg. 1.9.1. Explicit egyenlet Síkgörbe explicit egyenlete: y := f x f : R R, a görbe pontjai az x, y koordinátájú pontok: 1 2 2 p x :=P x, y := f x p : E E E. 2 Pl. az origó körüli, egységsugarú félkör explicit egyenlete y := 1 x. (1.1) (1.2) Felület explicit egyenlete: (1.3) z :=g x, y g :R 2 R, a felület pontjai az x, y, z koordinátájú pontok: (1.4) p x, y :=P x, y, z :=g x, y p :E 2 E 3 E 3. 2 2 Pl. az origó körüli, egységsugarú félgömb explicit egyenlete z := 1 x y. Explicit egyenlet esetén az alakzatot leíró függvény értelmezési tartománya altere értékkészletének. 24 Vektoriális szorzatot definiálni magasabb dimenzióban is lehetséges, de az általánosítás nem egyszerű, és a szorzat nem feltétlenül vektor. Nem használunk ilyet. 16

1. Bevezetés Egy zárt görbe a síkon, vagy egy zárt felület a térben explicit alakban az értelmezési tartomány fölött visszafordulhat, egyetlen függvénnyel nem írható le, darabokra kell bontani (1). Az, hogy hol kell darabolni, forgatásfüggő (2). Ha a görbe, ill. a felület e kritikus helyen sima, akkor ott első, vagy első parciális deriváltja végtelen (3), ami numerikus problémákhoz vezet. E három érv lehet az oka annak, hogy a geometriai modellező rendszerek a modellt alkotó görbék és felületek (elsődleges) leírására NEM használnak explicit egyenleteket. Egyes részletszámításokban megfelelő körültekintéssel alkalmazhatók, előfordulnak. 1.9.2. Implicit egyenlet Síkgörbe implicit egyenlete: (1.5) g x, y =0 g x, y, x, y R, x, y E 2, adott g :E 2 R esetén a görbe pontjai: (1.6) {P x, y E 2 : g x, y =0}. 2 2 Pl. az origó körüli, egységsugarú kör implicit egyenlete: x y 1=0. Felület implicit egyenlete: (1.7) f x, y, z =0 f x, y, z, x, y, z R, x, y, z E3, 3 adott f : E R esetén a görbe pontjai: (1.8) {P x, y, z E 3 : f x, y, z =0}. 2 2 2 Pl. az origó körüli, egységsugarú gömb implicit egyenlete: x y z 1=0. Gyakran írjuk le implicit alakban a másodrendű görbéket a síkon, valamint a másodrendű felületeket és a tóruszt a térben. Ezeknek az alakzatoknak egyszerű parametrikus leírása is lehetséges. Egyszerűsíti a számításokat, ha választhatunk a kétféle reprezentáció között. Volt testmodellező rendszer, amely csak ezekből a mind implicit, mind parametrikus alakban egyszerűen leírható, úgynevezett duális reprezentációjú elemi alakzatokból építkezett. Egy implicit egyenlet egy, a sík, vagy tér pontjaihoz valós értéket rendelő pont skalár függvény, skalármező. Gyakran használt speciális esetekben a skalármező értéke lehet síkon a görbétől, térben a felülettől mért távolság. Ha létezik ilyen implicit alak, célszerű ezt használni. A skalármező a síkot, vagy teret negatív, nulla és pozitív értékű, rendre belső ("in"), a görbére, vagy felületre illeszkedő ("on") és külső ("out") pontokra osztja. A térben az így értelmezett implicit egyenletek által meghatározott ponthalmazokat a CSG modellben elemi féltér alakzatoknak nevezzük. CSG értelemben elemi féltér alakzat, például: a féltér [alakú féltér]: Ax By Cz D 0, a végtelen, z-tengelyű körhenger: x 2 y 2 1 0, az origó körüli, egységsugarú, zárt gömb: x 2 y 2 z 2 1 0. 1.9.3. Parametrikus25 egyenlet Parametrikus egyenlettel többnyire görbéket és felületeket adunk meg, de deformációk leírására is alkalmasak. A parametrikus egyenlet egy paramétertérbeli R, R 2,R 3, E 1, E 2, E 3 tartományból az alakzatot tartalmazó euklideszi térbe E 2, E3 képez. 25 Itt két fogalom sajnos gyakran összekeveredik. Paraméteresnek (angolul parametrized, néha parametric ) nevezünk egy alakzatot vagy egy alkatrészt, ha annak mérete vagy alakja egy vagy több szabad paraméter értékétől függ. Parametrikusnak (angolul parametric ) nevezzük a görbét, felületet, vagy térfogatot (annak egyenletét), ha pontjai egy vagy több paramétere, azaz független változója segítségével járhatók be. 17

1. Bevezetés Síkgörbe parametrikus egyenlete. A t paraméterértéknél a síkgörbe helyvektora v t := x t v: R R 2, x, y : R R, (1.9) y t ezzel a síkgörbe t paraméterű pontja 2 (1.10) p t :=o v t p :R E, ahol o a koordináta-rendszer origója. Pl. az origó körüli, egységsugarú kör parametrikus egyenlete a síkon cos t p t := t [ 0, 2. sin t [ ] [ ] Parametrikus térgörbe helyvektora x t v t := y t v: R R 3, x, y, z : R R, (1.11) z t ezzel a térgörbe t paraméterű pontja (1.12) p t :=o v t p :R E3. Pl. egy z tengelyű, egységsugarú hengeren futó csavarvonalív parametrikus egyenlete cos t p t := sin t t [ 0, 2 ]. t [ ] [ ] [ ] Felület parametrikus egyenlete, pont értékű függvény alakban x u, v p u, v = y u, v, p: R 2 E 3, x, y, z : R 2 R. (1.13) z u, v Választható, hogy a paramétersíkot vektortérnek, vagy euklideszi térnek tekintjük-e. Utóbbi esetben p: E 2 E 3, x, y, z : E 2 R, de a paramétertér és a képtér diszjunkt. Pl. az origó körüli, egységsugarú gömb egy parametrikus egyenlete sin v cos u p u, v = sin v sin u, u [ 0, 2, v [ 0, ]. cos v [ ] 1.9.1. ábra: Gömb trigonometrikus paraméterezése 18

1. Bevezetés Parametrikus leképezéssel (egyenlettel) az alakzatok vagy a tér deformációi is leírhatók. Akkor beszélhetünk deformációról, ha az értelmezési tartományt tartalmazó paramétertérbe képezünk vissza. Síkbeli deformáció, vagy a sík deformációja: x u u p u =, u=, p: E 2 E 2, x, y :E 2 R. (1.14) v y u Pl. ilyen deformációkkal igazítjuk a műholdképek torzulásait a terephez. Térbeli deformáció, vagy a tér deformációja: x u u u= p u = y u, (1.15) v, p: E 3 E 3, x, y, z :E 3 R. w z u Pl. ilyen deformációkat használunk formatervezés, animációtervezés26 során. [ ] [] [ ] [] 1.9.4. Procedurális leírás, egyenlet A geometriai modellt alkotó görbék, felületek egy részének egyenletét nem mindig célszerű zárt alakban felírni. A geometriai modellezésben procedurálisnak nevezzük egy görbe vagy felület matematikai leírását, ha annak belső függvénye egy vagy több görbe vagy felület, pl. ilyen alkalmazható metszésgörbe, lekerekítő felület, felületi görbe leírására, vagy ha kiértékelése iterációt tartalmaz, pl. ilyenek a rekurzív felosztó algoritmus határértékeként definiált görbék és felületek, pl. ilyen a metszésgörbék durván közelítő, lokális iterációval finomítható leírása. 1.10. A geometriai modellezés alapműveletei Napjainkban a kizárólag grafikai célú geometriai modell többnyire síklapokkal, általában háromszögekkel határolt leírást jelent. Mérnöki alkalmazások és komolyabb animációs feladatok esetén a geometriai modell általában B-rep testmodellre épül. Az alkalmazások által megkövetelt relatív pontosság gyakran nem teszi lehetővé, hogy csak lineáris elemekkel dolgozzunk. Ma már ingyenesen hozzáférhetők egyes profi tervezőrendszerek oktatási, tanulási célú, gyakran csak ipari alkalmazás szintjén korlátozott változatai. Ezek felhasználói felülete igen fejlett, használatuk könnyen elsajátítható. Érdemes megismerni őket, hogy könnyebben elképzelhessük, milyen műveleteket is kell végezniük működés közben. Tananyagunk reprezentációkkal, matematikai leírásokkal indul. Annak megértéséhez, elfogadásához, hogy miért pont ezeket az eszközöket használjuk, kell, hogy legyen minimális áttekintésünk arra vonatkozóan, milyen alapműveleteket is akarunk végezni geometriai modellünkkel. A jellemző műveletcsoportok27: metszések, távolságok számítása pontok, görbék, felületek, testek között, osztályozások, vagyis annak eldöntése, hogy egy adott térbeli pont (görbe, felület, test) az alakzaton belül ( in ), annak határoló felületén ( on ), vagy azon kívül található-e ( out ), halmazműveletek,, az alakzatok ponthalmazai között, ofszettelés (hizlalás, rétegvastagság megadása), lekerekítés, 26 Angol elnevezése a grafikában, animációtervezésben, formatervezésben: morph, morphing. 27 TODO: ábrákat kell ide beszúrni a műveletcsoportok szemléltetésére, pl. OC példák segítségével 19

1. Bevezetés lokális módosítások fizikai jellemzők számítása az alakzatok felszínének bejárása, testmodellezésben szomszédosság ismerete szükséges hozzá, pl. szerszámpálya-generálás, grafikus bejárás. 1.11. Kérdések és feladatok 1.11.1. Ellenőrző kérdések 1. Mi tehet egy geometriai számításokat végző programot (a) analitikusan, (b) kombinatorikusan bonyolultabbá? 2. Melyek a geometriai programok írásának jellemző elvi lépései? 3. Mit nevezünk procedurális görbe- vagy felületleírásnak? 1.11.2. Gyakorlatok 4. Írjuk fel (a) egy sík, (b) egy henger, (c) egy kúp, (d) egy gömb, (e) egy forgási ellipszoid, (f) egy forgási paraboloid, (g) egy forgási hiperboloid, (h) egy tórusz egy implicit és egy parametrikus egyenletét. 1.11.3. Feladatok 5. Hasonlítsuk össze a szoftvertervezés és a mérnöki, animációtervezési folyamat elemeit. 1.11.4. Gondolkodtató kérdések 6. * Adott egy m és egy n lap által határolt test. Hogyan csökkenthető az elvégzendő felület-felület metszések száma m*n alá? A javaslat speciális, átlagos, vagy legrosszabb esetben használható? 7. * Milyen sűrűn fordulnak elő a speciális esetek egy mérnöki tervező (CAD) rendszer alapját képező geometriai modellezőben? Érdemes-e, szükséges-e kidolgozni az egyenletes eloszlást feltételezve ritkának tűnő, ugyanakkor az általános esetnél gyorsabban (és gyakran pontosabban) megoldható speciális eseteket? (Gondoljunk arra, hogy a mérnök illeszkedő görbéket, felületeket, kapcsolódó alkatrészeket, szerkezeteket tervez.) 8. * Modellezőnkben n különböző felülettípust szeretnénk támogatni. Hogyan csökkenthető a n megírandó felület-felület metszési algoritmusok száma alá? 2 9. * A gömb fenti trigonometrikus parametrikus egyenletében van két olyan felületi pont, amely a paraméter-tartomány végtelen sok pontjához tartozik. Konstruáljunk olyan parametrikus leírást a teljes gömbhöz, amellyel (a) minden felületi pont legfeljebb csak véges sok paraméterpárhoz tartozik, (b) a leképezés egy (ügyesen megválasztott) paramétersíkbeli tartomány és a teljes gömbfelület között egy-egyértelmű. azaz bijektív. 10.* A gömb fenti trigonometrikus parametrikus egyenlete egy síktartományhoz a teljes gömbfelületet két pont és egy görbeív kivételével homeomorf leképezéssel állítja elő. Előállítható-e egy pont kivételével homeomorffal? És kivétel nélkül homeomorffal? Hogyan? 11.* Mely tulajdonsága alapján lehetne általánosítani a vektoriális szorzást magasabb dimenziójú terekre? Miért nem magától értetődő feladat? 20

1. Bevezetés 21

2. Alapozás 2. Alapozás 2.1. Elemi geometriai alapok.22 2.2. Súlyozott átlag, konvex kombináció, konvex burok.22 2.3. Affin transzformációk.23 2.4. Homogén koordináták.24 2.5. Pontok affin transzformációi homogén koordinátákban.25 2.6. Párhuzamos vetítés homogén koordinátákban25 2.7. Középpontos vetítés, távlati, perspektivikus ábrázolás26 2.8. Lineáris interpoláció.27 2.9. Poligon-interpoláció, görbébe írt poligon tulajdonsága28 2.10. Menelaos tétele CAGD verzió.29 2.11. Kérdések és feladatok.29 2.11.1. Ellenőrző kérdések29 2.11.2. Gyakorlatok.30 2.11.3. Feladatok.30 2.11.4. Gondolkodtató kérdések30 2.1. Elemi geometriai alapok Az informatikus mérnök, a programozó és a programtervező matematikus hallgatók az egyetemi alapképzésben, sajnos, nem tanulnak elemi geometriát. Így csak a középiskolai geometriai alapokra építhetünk1. 2.2. Súlyozott átlag, konvex kombináció, konvex burok2 Baricentrikus (vagy affin) kombináció: pontok súlyozott átlaga, súlypont b= i bi, i i=1, i ℝ lehet negatív is, b i E3 i Megjegyzés: Mivel pontokra az összeadás nincs értelmezve, a szumma itt egy rögzített ponttól vett különbségvektorok segítségével értelmezhető. Speciálisan az origóból, a pontokba mutató különbségvektorokat pontok helyvektorai. Ezek segítségével: i bi :=o i bi o. i i Konvex kombináció: baricentrikus és i 0 Ponthalmaz konvex héja vagy konvex burka: A ponthalmaz elemeinek összes konvex kombinációjából álló pontok halmaza. 1 Célszerű megismerkedni egy bevezető axiomatikus tárgyalással [Hajó60], [SzJu96]. 2 TODO: itt tartok, innen kell folytatni 22

2. Alapozás Konvex ponthalmaz: bármely két pontját összekötő egyenes szakasz összes pontját is tartalmazó halmaz. A konvex burok konvex ponthalmaz. 2.3. Affin transzformációk Affin transzformáció: (aránytartó transzformáció) Olyan leképezés, amely a baricentrikus kombinációkat érvényben hagyja, vagyis φ affin leképezés, ha x= j a j, x,a j E 3 esetén x= j a j, x, a j E3. j j Állítás: x=a x v affin transzformáció. Biz.: j a j =A j a j v= j A a j j v= j A a j v = j a j j j j j j j ui.: j =1. j Példák: nevezetes affin transzformáció típusok 0. identitás: A=I, v=0 1. eltolás: A=I, v 0 2. léptékváltás3, nyújtás, zsugorítás: [ ] a 0 0 A= 0 b 0, v=0 0 0 c Lehet izotrop, azaz mindhárom tengely mentén ebből következően a tér minden irányában azonos arányú, vagy anizotrop. A B-rep testmodell anizotrop nyújtása, zsugorítása inkonzisztenssé teheti az illeszkedési relációkat, elronthatja a modellt. 3. forgatás: például a z-tengely körül: [ ] cos sin 0 A= sin cos 0, v=0 0 0 1 Általános tengely körüli elforgatást megkaphatjuk eltolások és tengelyek körüli forgatások eredményeként: 4. nyírás vagy csúsztatás: ( shear ) 3 Angolul scaling. A léptékváltás elnevezés onnan származik, hogy ha a koordináta-rendszer transzformációjának tekintjük, akkor megváltoztatja a tengelyek léptékét, azaz a tengelyek menti egységeket. Ezzel szemben a transzformációkat mi többnyire pont-transzformációknak tekintjük, azaz pontokat, alakzatokat transzformálunk velük, nem a koordináta-rendszert. Ezt a szemléletet tükrözi a nyújtás, vagy zsugorítás elnevezés. 23

2. Alapozás [ ] 1 a b A= 0 1 c, v=0 0 0 1 5. mozgatás: - aránytartó - szögtartó távolságtartó A AT =I Megjegyzések: A bonyolultabb affin transzformációk 14 típusú elemi affin transzformációk egymásutánjaként megkaphatók. Az eltolást nem tartalmazó összetett transzformációk mátrixa az alkotó elemi transzformációk mátrixainak szorzata. Szeretnénk, ha az eltolást tartalmazó esetben is felírható lenne az összetett transzformáció mátrixa az alkotó transzformációk mátrixainak szorzataként. Ebben is segít, ha homogén koordinátákban írjuk fel őket. 2.4. Homogén koordináták Megjegyzés: A lehető legegyszerűbben vezetjük be. Homogén koordinátás alakban leírható az euklideszi térből ideális térelemekkel (ideális vagy végtelen távoli pontok, egyenesek és sík) kibővített projektív tér. Összefüggéseit a projektív geometria tárgyalja. Részletesen lásd ott. Konverzió Descartes koordinátákból homogén koordinátákba: tetszőleges w 0 esetén [] [ ] xw x yw. y zw z w Bármely w 0 ugyanazt az euklideszi térbeli pontot jelenti, általában a w=1 választás a legegyszerűbb. Konverzió homogén koordinátákból Descartes-ba: [ ] [] xw x yw y. ha w 0 osztunk a negyedik koordinátával, azaz zw z w 24

2. Alapozás Speciálisan w=0 esetén az [] x y z 0 homogén koordinátájú pont az nesek közös, végtelen távoli a pontját jelenti (röviden: az [] 0 0 A 0 0 [] x y z [] x y z vektorral párhuzamos egye- irányú vételen távoli pont). homogén koordinátás alak értelmetlen. 2.5. Pontok affin transzformációi homogén koordinátákban x=a x v : affin transzformáció v : két vagy háromdimenziós vektor x : x homogén koordinátákban (házi jelölés) Ekkor x affin képe homogén koordinátákban: [] [ ] x = A v 0 1 xw yw =M x zw w Összetett affin transzformációk: x = M k M k 1. M1 x. A transzformációkat egyesével M1, M 2,., M k sorrendben hajtjuk végre. Megjegyzés Mivel az affin transzformáció aránytartó, ezért érvényben hagyja a baricentrikus koordinátákat. Megjegyzés. Az affin transzformációk aránytartók. Példa. Egy pontot dx, dy, dz vektorral homogén koordinátákban homogén koordinátákban felírva: [ ] 1 0 A= 0 0 0 1 0 0 0 dx 0 dy 1 dz 0 1 Megjegyzés. Affin transzformáció során a homogén transzformáció negyedik sora speciális! 2.6. Párhuzamos vetítés homogén koordinátákban Adott egy r 0 x 0, y 0, z0 origójú, u 1, u2 vektorok által kifeszített képsík és egy ettől lineárisan független u vetítési irány. 25

2. Alapozás Keressük a tér r x, y, z helyvektorú pontjának u irányú vetületét a képsíkon. A képet 2,5 lépésben kapjuk. Először (1) az origót a képsík r 0 x 0, y 0, z0 origójába toljuk, majd (2) az eredeti ortonormált bázist lecseréljük a képsík u 1, u2 bázisából és az u vetítési irányból álló bázisra, végül (2,5) tekintjük a képsíkbeli koordinátákat. [ ] [ ][ ut1 x' T y ' = u2 x ' = T z' u 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 x0 0 y0 1 z 0 0 1 ][ ] x y z 1 A képpont koordinátái a képsík u 1, u2 bázisában: x ', y '. A z ' koordináta az eredeti pontnak a képponttól vett előjeles távolságával arányos. Ez az a mélység-információ, amely takarás és vágás során szükséges. Megjegyzés. Az x 0, y0, z 0 pont, valamint az u 1, u2, u vektor az eredeti ortonormált rendszerben adott. Megjegyzés. Speciálisan, ha u merőleges a képsíkra, akkor a vetítés merőleges vetítés. Megjegyzés. Speciálisan, ha u egységvektor, akkor a z ' koordináta távolság. 2.7. Középpontos vetítés, távlati, perspektivikus ábrázolás Adott egy r 0 x 0, y 0, z0 origójú, u 1, u2 merőleges egységvektorok által kifeszített képsík. A képsík normálisa ekkor az u=u1 u 2 egységvektor. A képsík koordináta-rendszerét úgy vettük fel, hogy nézőpontunk r v =r 0 d u legyen, vagyis nézőpontunk a képsíktól d távolságra van, merőleges vetülete az origó. Keressük a tér r x, y, z helyvektorú pontjának az r v x v, y v, z v nézőpontból nézve képződő középpontos vetületét a képsíkon, azaz a nézőpont és a pont által meghatározott egyenesnek és a képsíknak a metszéspontját. Először (1) toljuk el a koordináta-rendszer origóját a képsík r 0 x 0, y 0, z0 origójába, majd (2) az eredeti ortonormált bázist cseréljük le a képsík u1, u2, u ortonormált bázisára -- ez most csak forgatást és tükrözést jelenthet --, végül (3) a kapott homogén koordinátákból állítsuk elő a képsíkbeli koordinátákat.4 [ ][ d 0 0 0 x ' w' x ' = y' w' = 0 d 0 0 0 0 0 d z ' w' 0 0 1 d w' ][ ] [ ut1 ut2 ut3 0 0 0 0 1 1 0 0 0 0 1 0 0 0 x 0 0 y 0 1 z 0 0 1 ][ ] x y z 1 A merőleges vetítéshez képest formálisan csak egy ritka, konstans mátrixszal bővült a képletünk, de ne feledjük, hogy a megmaradó részek jelentése a megkötések miatt más. A képpont koordinátái a képsík u 1, u2 bázisában: x '= x ' w ' /w ', y '= y ' w ' / w '. 4TODO: új ábra kell a középpontos vetítéshez, vagy a régi javított változata 26