Tstmodllzés 1 1. Tstmodllzés Egy objktum modlljén az objktumot rprzntáló adatrndszrt értjük. Egy tstmodll gy digitális rprzntációja gy létz vagy lképzlt objktumnak. trvzés, a modllzés során mgadjuk a objktum gomtria adatait. Ez történht a modllzési módszrnk mgfll közvtln mgadással, vagy a modllzési rndszrt l függtln módszrrl, a modll általános alapadataival. Utóbbi stbn a rndszr az adatokból a számára mgfll adatszrkztt állítja l. mgjlnítés után lht ség van a modll módosítására. Általában gy összttt objktumot gyszr bb adatszrkz, könnyn dniált, alapobjktumokból állnak össz. tstmodllzésnk, a gomtriai modllzésnk (Solid modling, Gomtric modling) számos flhasználási trült van az ipartól a szórakoztatáson át az gészségügyig. Többfél tstmodllt különböztthtünk mg a modll adatszrkzt szrint. 1.1. Drótvázmodll drótváz- vagy élmodll (wir fram modl) a lggyszr bb tstmodllzési módszr. Egy drótváz modllzési rndszrbn a gomtriai objktumot az kt mghatározó csúcspontok és az zkt összköt élk írják l. (z élk nm fltétlnül gyns szakaszok.) 1.1. Példa. z 1. ábrán vázolt négyzt alapú gúla csúcspontjai lgynk a kövtkz koordinátákkal mgadva. 0 = (0, 0, 0), 1 = (2, 0, 0), 2 = (2, 2, 0), 3 = (0, 2, 0), 4 = (1, 1, 3). 4 1 5 0 0 1 1. ábra. Gúla. Ekkor a csúcspontok koordinátáit gy V csúcspont (vrtx) listában tárolhatjuk. 4 V = {(0, 0, 0), (2, 0, 0), (2, 2, 0), (0, 2, 0), (1, 1, 3)}. z csúcspontokat összköt élk E (dg) listája a mgfll élk kzd és végpontjai indxib l kapott számpárokat tartalmazza. 6 3 2 7 2 3 E = {(0, 1), (1, 2), (2, 3), (3, 0), (0, 4), (1, 4), (2, 4), (3, 4)}. Thát a gúla drótvázmodlljét a V és E listák gyüttsn írják l.
2 Számítógépi gomtria E módszr l ny, hogy kvés adattal, gyszr n írhatók l a térbli alakzatok. lírt alakzatok gyorsan mgjlnítht k. Hátránya, hogy nm lht láthatóság szrint ábrázolni az objktumokat, lírhatók nm létz objktumok (2. ábra) továbbá nm gyértlm, több tstnk is lht ugyanaz a modllj (3. ábra). Ezn hiányosságok miatt nm tkintjük tljs érték tstmodllnk. 2. ábra. Nm létz, d drótvázmodlll lírható alakzat. 3. ábra. Egy adatrndszr több objktumot is modllzht. 1.2. Flültmodll flültmodll (palástmodll, B-rp Boundary Rprsntation) a drótvázmodll továbbfjlsztésénk tkintht. zon a fltétlzésn alapul, hogy az objktumokat lapok határolják, a lapokat élk, az élkt két csúcspont. lapok az kt határoló élkkl, az élk az kt határoló csúcspontokkal, a csúcspontok pdig a koordinátájukkal írhatók l. lapok lhtnk flültk 1, az élk lhtnk görbék, kkor az gynltikkl és a határoló adataikkal adjuk mg kt. Sok flültmodlln alapuló rndszr csak síklapokat ngd mg. z ilyn rndszrkkl csak poliédrk rprzntálhatók gzaktul. görbült flültkt poliédrkkl közlíthtjük. z ilyn modllkt poliédrmodllknk nvzzük. modllzht tstkr néhány mgszorítást kll tnnünk. lapok határai gyszr sokszögk lgynk, mindn élbn pontosan két lap találkozzon, valamint kizárjuk azokat a tstkt, amlyk gymáshoz, vagy önmagukhoz élbn, vagy csúcsban csatlakoznak. 4. ábrán néhány nm modllzht tst látható. poliédrmodll l ny, hogy a líró adatstruktúra gyszr, a láthatóság szrinti ábrázolás könnyn mgvalósítható. modllztt objktum módosítható. módosítások során az adatstruktúrához pontok, gynsk, lapok adhatók hozzá, vagy törölht k. 1Mlyk l állatására kés bb számos példát látunk.
Tstmodllzés 3 4. ábra. Flültmodlll nm modllzht poliédrk. Ügyljünk arra, hogy az Eulr-tétlt btartva mindhárom lista mgfll n módosuljon. z c + l = 2 Eulr-tétl a poliédr csúcsainak (c), élink () és lapjainak (l) száma közötti összfüggést írja l. z Eult-tétlt btartó poliédrk adatstruktúráit módosító m vltkt nvzzük Eulr-m vltknk, vagy Eulr-oprátoroknak. poliédrmodll hátránya mindnk l tt a görbült flültk közlítéskor fllép pontatlanság. Ez csökkntht a lapok számának növlésévl, ami az élk és a csúcspontok számának növlésévl jár. Ez jlnt sn növli az adatrndszr tárolásának a hlyigényét és az ábrázolás idjét. 1.2. Példa. z 1.1 példában adott gúla adatszrkztét gészítsük ki a gúla lapjait tartalmazó F flült (fac) listával. Egy lapot adjunk mg a határoló élk indxink sorozatával kívülr l nézv pozitív (óra mutató járásával llntéts) körüljárási irányban flsorolva. F = {(1, 6, 5), (2, 7, 6), (4, 3, 7), (5, 4, 0), (0, 3, 2, 1)}. Thát a gúla gy flültmodlljét (poliédrmodlljét) a V, E és F listák gyüttsn írják l. Több flültmodll lírás is létzik, pl. csúcsok listájából mgadhattuk volna l ször a lapok, majd bb l az élk listáját is (ügylv a körüljárásra). 1.3. Térfogatmodll flültmodll mlltt a másik lgltrjdtbb modll a térfogatmodll (CSG Constructiv Solid Gomtry). Ez a modllzési módszr l r dniált gyszr alaptstkb l, un. primitívkb l halmazm vltk (Bool-m vltk unió, mtszt, különbség) sgítségévl állítja l az objktumokat. lggyakrabban alkalmazott primitívk a gúla, a hasáb, a gömb, a kúp, a hngr és a tórusz. primitívk F (x, y, z) 0 implicit gynltkkl mgadott zárt térrészként vannak dniálva (F (x, y, z) általában polinomfüggvény). Például az origó középpontú gység sugarú gömb az x 2 + y 2 + z 2 1 0 gynlttl, gy gységkocka az x 1, x 0, y 1, y 0, z 1, z 0 féltrk mtsztként állítható l. z alapalakzatokat mghatározó adataival adjuk mg, pl gömböt a középpontjának koordinátáival és sugarával, hngrt az alapkörénk síkjával, középpontjával, sugarával és magasságával. mgadott primitívkr és az általuk l állított objktumokra, mlyk szintén zárt térrészt dniálnak, a térbli transzformációk sgítségévl módosíthatók. primitívk általában lokális koordináta-rndszrbn vannak tárolva, hogy módosításkor
4 Számítógépi gomtria lég lgyn az alapadatok mgváltoztatása. Általában lht ség van a trvz által létrhozott további tstprimitívk dniálására is. Ezk síkbli tartományokból létrhozhatók kihúzással (5. ábra), forgással (6. ábra), pásztázással, vagy söpréssl (7. ábra). z összttt objktumok dniálásánál nm csak az gysítés, a közös rész képzés, a kivonás mgngdtt, hanm pl a síkkal való mtszés is. 5. ábra. Kihúzás. 6. ábra. Forgás. 7. ábra. Kihúzás útvonal mntén (pásztázás, söprés). térfogatmodlll végs, zárt objktumok széls skáláját lht dniálni, mlyk mgvalósíthatósága is biztosított. z adatszrkzt kis hlyn tárolható. vizuális visszacsa-
Tstmodllzés 5 tolás, a mgjlnítés kissé bonyolult és lassú, mrt nincs közvtln hozzáférés a csúcs, él és lap információkhoz. 1.3. Példa. Hasábokból és hngrb l az unió és a kivonás halmazm vltkkl a kövtkz képpn adhatunk mg gy térbli tstt (8. ábra). U - = 8. ábra. Térfogatmodll primitívkb l. 1.4. Clla módszr trt osszuk fl kis lmi részkr, cllákra (clural dcomposition). Lgynk az lmi részk, a voxlk (voxl = volum lmnt) kis kockák. Mindn voxlr l l kll döntni, hogy a dniált objktumon blül, vagy kívül van. Általában azt a voxlt is amlynk térfogatának több mint fl (vagy középpontja) az objktumhoz tartozik a bls k közé soroljuk. z ábrázolandó térrész kis kockái gy 3 dimnziós tömbbn bitnként tárolhatók. mgfll bit 1, ha a kocka az objktumhoz tartozik, 0, ha nm. z objktumok uniói, mtszti és különbségi így könnyn kzlht k bit m vltkkl. z objktumok adatszrkzt rndkívül gyszr, a tömg és térfogat számítás stén jól alkalmazható. módszr hátránya, hogy gy tstt nagyszámú voxlll írhatunk l, nagy a tárigény, az ábrázolandó tstt csak közlíti. Különböz mért voxlkkl javítható a módszr hatékonysága. Néhány CD szoftvr a fnti tstmodllzési módszrk közül többt is tud alkalmazni. módszrk adatstrukturáiból kövtkzik az átjárhatóság. Egy gomtriai objktum térfogatmodlljéb l l lht állítani a flült-, majd abból a drótvázmodlljét is, d z fordítva általában nm lhtségs. Bizonyos fltétlk mlltt a flültmodllb l l állítható a térfogatmodll is.
6 Számítógépi gomtria 1.4. Fladat. 1.4.1. Írja l két gység élhosszú kocka drótváz és flültmodlljénk adatszrkztét az 1.1. és az 1.2. példák alapján! 1.4.2. Készíts l a 8. ábrán látható alakzat modlljét CD-dl! 1.4.3. (Badandó.) Készíts l gy összttt alakzat modlljét CD-dl, amly tartalmaz síkmtsztt és kihúzott alapalakzatot is! Készíts l az alakzat löl- és flülnéztét, valamint axonomtrikus vtültét 4-s mért lapra kinyomtatva! Vgy gylmb a kövtkz kt: cím rial, 7mm, fnt középn; név, csoport rial 3,5mm, lnt jobbra; látható vonalak folytonos, 0,6mm; takart vonalak vtültkn szaggatott, 0,3mm, axonomtrián nincs takart vonal (vagy folytonos, 0,2mm), a lap szélét l 10mm-r körbn gy 0,7mm-s krt van. 1.5. utocd 2004 szközök utocd 2004 szilárdtstk szrksztésér a 9. ábrán szrpl szköztár használja. hozzájuk tartozó parancsok : téglatst(_box), gömb (_sphr), hngr (_cylindr), kúp (_con), ék (_wdg), tórusz (_torus), kihúzás (_xtrud), forgatás (_rvolv), kttészl (_slic), krsztmtszt (_sction), áthatás (_intrfr), rajz bállítása (_soldraw), nézt bállítása (_solviw) és vtült bállítása (_solprof). papírtérbn (lrndzés ablak) a vtültk mgrajzolásához és hlys lrndzéséhz a rajz bállítása és a nézt bállítása parancs szükségs. 9. ábra. CD 2004 szilárdtstk szköztára. szilárdtstk szrksztés szköztár (a 10. ábra) ls három parancsa az gysítés (_union), kivonás (_subtract) és közösrész (_intrsct). többi a szilárdtst lapjait élit változtatja. 10. ábra. CD 2004 szilárdtstk szrksztés szköztára. szilárdtstk mgjlnítését az árnyalás szköztár (a 11. ábra) parancsaival változtathatjuk. Ezk a parancsok (_shadmod) lht vé tszik 2D drótvázas árnyalást, a 3D drótvázas árnyalást, a takartvonalas árnyalást, a simított árnyalást, a gouraud árnyalást, simított árnyalást élk mgjlnítésévl és a gouraud árnyalást élk mgjlnítésévl. színk és vonal típusainak és vastagságainak bállítását a fóliák szköztárral (a 12. ábra) végzhtjük l.
Tstmodllzés 7 11. ábra. CD 2004 árnyalás szköztára. Hivatkozások 12. ábra. CD 2004 fóliák szköztára. [1] Juhász Imr, Számítógépi gomtria és graka, Miskolci Egytmi Kiadó, Miskolc, 1993. [2] Budai ttila, számítógéps graka, LSI Oktatóközpont, Budapst, 1999. [3] Szirmay Kallos László, Számítógéps graka, Computrbooks, Budapst, 2001. [4] Pintér Miklós, utocd, tankönyv és példatár, Computrbooks, Budapst, 2008. [5] Juhász Imr, Számítógépi graka, Miskolci Egytm, 2007. (http://193.6.8.43/sgdlt/dokumntumok/tiszk/szamitogpi_grafika.php) [6] Tornai Róbrt, Fjztk a számítógépi grakából, mobidiák könyvtár, Dbrcn, 2004. (http://aris.ktf.hu/mod/bvgraf/fj_graf.pdf) [7] Schwarcz Tibor, Bvztés a Számítógépi grakába, mobidiák könyvtár, Dbrcn, 2005. (www.inf.unidb.hu/grafika/schwarcz/bvgraf.pdf) [8] Kovács Em d, Fjztk a számítógépi grakából, 1997. (http://www.ktf.hu/mod/kom.pdf) [9] Kovács Zoltán, Komputrgomtria, (El adásvázlat). (http://zus.nyf.hu/kovacsz/kompgom/indx.html) [10] Christoph M. Homann, Gomtric and Solid Modling. (http://www.cs.purdu.du/homs/cmh/distribution/books/go.html) [11] Jakubk Lajos, utocd tstmodllzés. (http://mk.nym.hu /filadmin/dokumntumok/mk/flt/flt/jgyztk/tstmodllzs.pdf) Készült LTEX2 ε vl.