Készítette: niethammer@freemail.hu



Hasonló dokumentumok
Nappali képzés: Számítógéppel segített tervezés szerkesztésben közreműködött: Zobor Bence Kiegészítő- levelező képzés: Számítástechnika 2.

TÉGLATEST, KOCKA, GÖMB TÉGLALAP, NÉGYZET, KÖR

MODELER FELHASZNÁLÓI KÉZIKÖNYV

Digitális terepmodell modul

Rajzolás PowerPoint 2007 programban

Üdvözöljük. Solid Edge kezdő lépések 2

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

A médiatechnológia alapjai

UniPoll Feedback. Intézményi integrált kérdőívkészítő rendszer vélemény és visszajelzés gyűjtéshez.

Műszaki informatika I. (CAD I.)

Animációk, effektusok

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

Bevezetés. Párhuzamos vetítés és tulajdonságai

mynct v0.0.1 Maró verzió Kezelési leírás

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

Újdonságok. Release 2

GroupWise 5.2 használói jegyzet


PÉLDATÁR BEGYAKORLÓ FELADAT SÍKFESZÜLTSÉGI PÉLDA MEGOLDÁSA VÉGESELEM-MÓDSZERREL

NeoCMS tartalommenedzselő szoftver leírása

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Gráfelmélet II. Gráfok végigjárása

Feltételes formázás az Excel 2007-ben

Oktatáskutató és Fejlesztő Intézet TÁMOP / XXI. századi közoktatás (fejlesztés, koordináció) II. szakasz. Fejlesztőfeladatok

PÉLDATÁR BEGYAKORLÓ FELADAT TÉRBELI FELADAT MEGOLDÁSA VÉGESELEM- MÓDSZERREL

Szerszámpróba, új termék bemintázás

Spike Trade napló_1.1 használati útmutató

Kötegelt nyomtatványok kezelése a java-s nyomtatványkitöltő programban (pl.: 1044 kötegelt nyomtatvány - HIPA; 10ELEKAFA - Elekáfa)

hatására hátra lép x egységgel a toll

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

Az anyagdefiníciók szerepe és használata az Architectural Desktop programban

TARTÓK STATIKÁJA I. Statikai modell felvétele és megoldása a ConSteel szoftver segítségével (alkalmazási segédlet)

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

14.2. OpenGL 3D: Mozgás a modellben

ARCHLine.XP Windows. Újdonságok. Felhasználói kézikönyv. ARCHLine.XP 2009 Újdonságok

Számítógépes grafika

elektronikus kitöltés és benyújtás

MATEMATIKA A 10. évfolyam

Alkalmazott modul: Programozás

C Í M K E É V F O L Y A M ORSZÁGOS KOMPETENCIAMÉRÉS 2007 JAVÍTÓKULCS MATEMATIKA. Oktatási Hivatal Országos Közoktatási Értékelési és Vizsgaközpont

LOGO grafikák: - Bevezetés - Válogatás a szakkörösök legszebb munkáiból

ProAnt Felhasználói Útmutató

O 1.1 A fény egyenes irányú terjedése

Felszín- és térfogatszámítás (emelt szint)

Kézikönyv. SOFiSTiK SOFiCAD-B (Vasalásszerkesztő modul) 16.5 és 17.1 verzió

Végeselem módszer 5. gyakorlat (kidolgozta: Dr. Pere Balázs) Feladat: Forgásszimmetrikus test elmozdulás- és feszültség állapotának vizsgálata

3. Az y=x2 parabolához az y=x egyenletű egyenes mely pontjából húzható két, egymásra merőleges érintő?

Mérési útmutató Nagyfeszültségű kisülések és átütési szilárdság vizsgálata Az Elektrotechnika tárgy laboratóriumi gyakorlatok 1. sz.

I. rész. x 100. Melyik a legkisebb egész szám,

1 Újdonságok a 3D szerkesztő módban

A HunPLUS 2009 újdonságai

GroupWise 5.2 használói jegyzet

Bevezetés. A WebAccess használatának bemutatása előtt néhány új funkció felsorolása következik:

Matematika felvételi feladatok bővített levezetése 2013 (8. osztályosoknak)

Q2041 típusú kapcsolóóra kezelési útmutatója

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

PovRay. Oktatási segédlet

4. Gyakorlat ellenőrzött osztályozás

A TWAIN adatforrás használata

3. gyakorlat. 1/7. oldal file: T:\Gyak-ArchiCAD19\EpInf3_gyak_19_doc\Gyak3_Ar.doc Utolsó módosítás: :57:26

1. A testek csoportosítása: gúla, kúp

ADATBÁZISKEZELÉS ADATBÁZIS

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

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat:

1. Melyek azok a kétjegyű számok, amelyek oszthatók számjegyeik

i4x50 sorozatú szkennerek

Geometriai példatár 2.

Adminisztrátori kézikönyv (Ver: )

Gyakorló feladatok ZH-ra

Tükrözés a sík átfordításával

Ady Endre Líceum Nagyvárad XII.C. Matematika Informatika szak ÉRINTVE A GÖRBÉT. Készítette: Szigeti Zsolt. Felkészítő tanár: Báthori Éva.

BAUSFT. Pécsvárad Kft Pécsvárad, Pécsi út 49. Tel/Fax: 72/ ISO-bau. Szigetelés kiválasztó verzió.

BEVEZETÉS A SULINET DIGITÁLIS TUDÁSBÁZIS (SDT) HASZNÁLATÁBA

évi nyári olimpiai játékok

Szeminárium-Rekurziók

44. ORSZÁGOS TIT KALMÁR LÁSZLÓ MATEMATIKAVERSENY. Országos döntő, 1. nap május 29.

Felhasználói kézikönyv

edia 2.2 Kézikönyv feladatfelvitelhez Diagnosztikus mérések fejlesztése Készítette: Molnár Gyöngyvér Papp Zoltán Makay Géza Ancsin Gábor

Év zárása és nyitása 2015-ről 2016-ra

11. Balra zárt igazítás A bekezdés sorai a bal oldali margóhoz igazodnak. 12. Beillesztés

ÁBRÁZOLÓ ÉS MŰVÉSZETI GEOMETRIA I. RÉSZLETES TARTALMI KÖVETELMÉNYEK

ARCHLine.XP Interior Windows. Interior alapok. Oktatási anyag az ARCHLine.XP Interior alapszintű használatához.

LINEÁRIS ALGEBRA PÉLDATÁR MÉRNÖK INFORMATIKUSOKNAK

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

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

10. évfolyam, negyedik epochafüzet

MATEMATIKA C 6. évfolyam 3. modul LERAKÓS, TOLOGATÓS JÁTÉKOK

Építész-informatika 3, Számítógéppel segített tervezés Kiegészítő- levelező képzés: Számítástechnika gyakorlat

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

Vektorgrafikus rajzeszközök

LÉTESÍTMÉNYGAZDÁLKODÁS. Változáskezelés. Változás Pont Cím Oldal A teljes dokumentáció átírásra került

Mechatronika segédlet 1. gyakorlat

Első sorozat (2000. május 22. du.) 1. Oldjamegavalós számok halmazán a. cos x + sin2 x cos x. +sinx +sin2x =

Novell GroupWise levelező rendszer alapok Kiadványunk célja, hogy a Nemzeti Közszolgálati Egyetemen használt Novell GroupWise (a továbbiakban GW)

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

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

148 feladat ) + ( > ) ( ) =?

GoLabel használati útmutató

MUNKAANYAG. Földi László. Szögmérések, külső- és belső kúpos felületek mérése. A követelménymodul megnevezése:

CellCom. Szoftver leírás

ACÉLÍVES (TH) ÜREGBIZTOSÍTÁS

Átírás:

VLogo VRML generáló program Készítette: Niethammer Zoltán niethammer@freemail.hu 2008

Bevezetés A VLogo az általános iskolákban használt Comenius Logo logikájára épülő programozási nyelv. A végeredmény nem egy sík grafika, hanem a háromdimenziós virtuális világ. A Comenius Logo a sík grafika pixeleit módosítja. A VLogo a tér x,y,z koordinátáiba rajzol valamilyen 3D objektumot. A rajzolás paraméterei folyamatosan változnak a rajzolás közben. Mindig az utolsó paraméter érvényesül a következő rajzoláskor. Koordináták A VRML térben alapesetben az XY síkot (sárga-piros) látjuk és arra merőlegesen felénk mutat a Z tengely (kék). Tehát a (0;0;0) pont a képernyő közepén van. Hozzánk közelebb található a (0;0;1) pont. Tőlünk távolabb van a (0,0,-1) pont. Alapesetben a néző a zöld kúp helyén van és a (0;0;0) pontba néz. A térelemek koordinátáit 3D koordinátáknak nevezzük a továbbiakban. Néha szükségünk lesz síkbeli koordinátákra is. Ezeket 2D koordinátáknak nevezzük majd. Megjegyzések A sor elején 2db per jel használható a megjegyzés jelölésére: //------------------------------------------------------------ // ide kerül a megjegyzés // Utasítások Az utasításokat neve után kerülnek a paraméterek. Ezeket szóközzel kell elválasztani egymástól! HELY 0 0 0 Gömb 2,4 Programozási alapok A programot célszerű néhány sor megjegyzéssel kezdeni. Utána beállítjuk a rajzolás helyét, forgatási szöget, méretet, színt. Utána lehet geometriai utasításokkal rajzolni. Majd módosítva a helyet, stb. ismét lehet rajzolni.

Rajzolás helye A HELY x y z utasítás állítja be a következő geometriai rajzolás helyét. Ha ezt nem módosítjuk, akkor ugyanoda kerülnek a következő elemek is. A következő példában egymásba rajzolódik a gömb és a téglatest, mert közben nem változott a rajzolás helye: Ha közben módosítjuk a rajzolás helyét, akkor nem fedik egymást:

Módosítható a rajzolás helye relatív módon is a FEL, LE, JOBBRA, BALRA, ELŐRE, HÁTRA utasításokkal is. Ezek az utolsó HELY utasítás valamelyik összetevőjét módosítják a következő módon: BALRA 3 JOBBRA 4 FEL 1 LE 0,3 ELŐRE 10 HÁRTA 1,2 x csökken 3 egységgel x nő 4 egységgel y nő 1 egységgel y csökken 0,3 egységgel z csökken 10 egységgel z nő 1,2 egységgel A következő példában 4 db gömböt rajzolunk. Kiindulási hely a (-1;-1;0) pont. Innen jobbra 2 egységgel van a (1;-1;0), majd 2 egységgel felfelé van a (1;1;0) és végül 2 egységgel balra van a (-1;1;0) pont: Ebben a példában pedig egymás mellé rajzolunk 4 téglatestet, de különböző méretűeket:

Elfordulás A objektumok elforgatva is rajzolhatók. A forgatás egy térbeli tengely alapján történik. A tengely kezdőpontja a (0;0;0) pont a (vektor) végét pedig meg kell adni az első 3 paraméterben. A negyedik paraméter a forgatás szöge 0-360 fok. A következő példában a tengely felfelé mutat az y=1 helyre és jobbra 45 fokban felforgatva rajzoljuk a második téglát: Itt pedig még 90 és 135 fokban elforgatva is téglát rajzolunk:

Méretezés Az előzőekhez hasonlóan lehet a rajzolás előtt módosítani a tárgy méretét. Külön módosítható az x,y és a z méret. A példában baloldalon van az eredeti kúp, a jobb oldalon az x irányban fele méretre összenyomott változata: Itt pedig a középső repülő az eredeti, a baloldali z irányban az eredeti 30%-a, a jobboldali még y irányban is 200%-os:

Színkezelés A megrajzolandó objektum színét több utasítás is befolyásolja. A legfontosabb a SZÍN_1 utasítás ennek három paramétere a szín RGB összetevője. Minden összetevő 0 és 255 közötti egész szám lehet. Ez a szín a tárgy világos részeinek színe lesz. Néhány szín: A színek kikeverésében segít a beépített RGB színkeverő:

A SZÍN_2 utasítás határozza meg a fényes részek színét. A példában a tárgy alapszíne piros (255;0,0) a megvilágított fényes rész viszont sárga (255;255;0). A kettő között átmenetet számol a megjelenítő program: A SZÍN_3 határozza meg a sötét részek színét. A példában az eddig feketébe átmenő pirosas részek kékesek lesznek, mert a sötét rész színe kék (0;0;255):

Egy paramétere (0..255) van a FÉNYESSÉG utasításnak. Ez határozza meg, hogy mennyire nagy lesz a fényes terület. 0 esetén nagyon nagy folt lesz fényes, 255 esetén nem lesz fényes rész a gömbön: Hasonlóan működik az ÁTLÁTSZÓSÁG utasítás. A 0 átlátszóság azt jeleni, hogy a tárgy teljesen tömör. A 255 pedig teljesen átlátszó. A példában ezért kellet 220-as értéket beállítani.

Az anyagjellemzők együttesen is megadhatók az ANYAG utasítással. A paraméter csak az anyag sorszáma. Az anyagok segédablakban a fejlécben látjuk a kiválasztott anyag számát: Például a 77. anyag egy félig átlátszó arany:

EGYSZERŰ GEOMETRIAI UTASÍTÁSOK GÖMB sugár HENGER magasság alap_sugara

KÚP magasság alap_sugara TÉGLA szélesség magasság mélység

HASÁB magasság sugár lapok_száma alsó_x alsó_y felső_x felső_y A HASÁB utasítás kissé hosszúnak tűnik, de elegendő csak az első 3 paraméter a rajzoláshoz. Az alábbi példában háromféle magassággal azonos sugarú és lapszámú hasábok láthatók: Itt pedig a sugár értéke háromféle:

Itt a lapok száma változik (3,4,5): Az utolsó 4 paraméterre csak akkor van szükség, ha torzítani akarjuk az alsó vagy a felső részét a hasábnak. A torzítás x és y irányú lehet, és %-ban kell megadni. Az alábbi példában gúlákat csináltunk a hasábokból, mivel az alsó vagy a felső geometriát 0% méretre torzítottuk.

TEXTÚRÁZÁS A geometriai objektumok felszínére ráhúzhatunk valamilyen képet (textúrát) is. A MINTA parancs után meg kell adni a kép nevét és utána az ismétlődések számát x és y irányban. MINTA kép_neve ism_x ism_y A képek a Vlogo mappán belül a textura mappában vannak! Az első példában egy lapos téglatestre húzzuk a A008.JPG nevű képet. Most x irányban 3-szor ismételjük a képet:

Most pedig mindkét irányban 3-szor: A textúra éppen úgy öröklődik a további objektumokra, mint a geometriai transzformációk. Ha már nincs rá szükség, akkor kikapcsolható a MINTA paranccsal paraméter nélkül.

A téglatest esetén mind a 6 oldalra azonos módon kerül a textúra. Ha az egyik oldal kisebb, mint a többi, akkor a textúra összenyomódik: Henger esetén a textúra a paláston széthúzva jelenik meg. Mivel a henger kerülete nagyobb lehet, mint a magassága, az x és y ismétlés nem lehet egyforma:

Textúra alkalmazása esetén lényegtelen a tárgy színe, de az átlátszóság értéke hatással van a látványra. Segíti a textúrák használatát az alsó sorban látható textúra böngésző. 1: kategória kiválasztása 2: x és y ismétlődések beállítása 3: a beállított ismétlődések módosítása ( + növeli - csökkenti x duplázza 1 visszaállítja 1-re) 4: dupla kattintással beírja a programba a textúra utasítás kódját

HALADÓ GEOMETRIA VONAL A vonalrajzolás logikája a következő: meg kell adnunk a vonal pontjait. Ezek 3D pontok x,y,z koordinátákkal. Minimálisan 2 pont kell, de lehet több is. Ezután meg kell adnunk, hogy melyik pont melyikkel legyen összekötve. Bármelyik pont összeköthető bármelyikkel. A pontokhoz rendelhető egy színtömb is, azaz megadható, hogy melyik pont milyen színű lesz. Ha a vonal kezdőpontja és végpontja nem azonos színű, akkor színátmenetet számol a VRML böngésző. A vonal rajzoló utasítás szintaktikája a következő: VONAL PONT_3D x y z PONT_3D x y z PONT_3D x y z ( ez a 0. pont) ( ez a 1. pont) ( ez a 2. pont) SORREND 0 1 2-1 ( összeköti a 0-1 1-2 pontokat ) ( a -1 jelzi, hogy nincs több összekötés) SZÍNEK 255 0 0 SZÍNEK 255 255 0 SZÍNEK 255 255 255 ( a 0. pont színe) ( a 1. pont színe) ( a 2. pont színe) SZÍNSORREND 0 1 2-1 ( A 0.pont kapja a 0.színt stb.. ) VONAL VÉGE A következő példában a 0. pont a (-1;0;0) helyen van, az 1. pont a (1;0;0) helyen. A SORREND parancs ezeket köti össze:

Minden VONAL utasítás törli a pontok tömbjét és egy újat kezd. A következő példában négy pont helyezkedik el az XZ síkon és az ötödik az Y tengelyen található 3 egység magasságban. Az első négy pont indexei: 0,1,2,3 (tehát a pontok indexszáma nullával kezdődik!) Az összekötés a SORREND 0 1-1 utasítással történik. Az utolsó -1 paraméter jelzi, hogy nincs több vonal. A többi vonal összekötése: SORREND 1 2-1 SORREND 2 3-1 SORREND 3 0-1 De jóval rövidebb az alábbi megoldás: SORREND 0 1 2 3 0-1 A sorrend utasítás után maximum 8 index adható meg! A gúla megrajzolásához mind a négy alapponthoz hozzá kell kötni az ötödik (indexe 4) pontot, azaz a csúcspontot. A program előnye, hogy ciklussal és függvényekkel sok pontot viszonylag kevés utasítással meg tudunk adni. Hasonlóan a kötéseket is lehet algoritmizálni.

A következő példában 10 pontot (index 0..9) ad meg a ciklus egy kör mentén. Utána összekötjük az összes pontot a többivel, egy dupla ciklussal) Ugyanez a módszer, de 20 fokonként lépünk a kör kerületén, így 18 pont lesz. Azaz 0..17 lesz a pontok indexe. Az összekötés is ennek megfelelően változik.

Pókháló a VÉLETLEN függvénnyel: A vonalak színét a SZÍN_1 utasítás befolyásolja, még a VONAL utasítás előtt. A VONAL utasításban minden vonal azonos színű lesz, ha nem használunk színtömböt és színindexeket a pontok és kötések megadásához hasonló módon.

Ha minden ponthoz rendelünk egy színt, akkor nem kell külön indexeket is csinálni. Elegendő ugyanannyi színt definiálni, mint amennyi pontunk van: Ha a két szomszédos vonal nem azonos színű, akkor színátmenetet számol a böngésző! SZÍNSORREND utasítást kell használni, ha kevesebb színt adunk meg, mint amennyi pontunk van. Ekkor a SORREND paranccsal szinkronban kell megadni, hogy a színtömb melyik eleme rendelődjön a ponthoz: Négy pontunk van 0..3 indexű. Az összekötéskor 0 1 2 3 0 sorrendet adunk meg. Tehát a SZINSORREND parancsban szintén 5 számot kell felsorolni a -1 lezáró előtt: SZÍNSORREND S1 S2 S3 S4 S5-1 Mivel előzőleg csak két színt adtunk meg (0: piros 1: kék), csak 0 és 1 értékű lehet bármelyik szám.

A következő példában a négyzet szemben lévő pontjai azonos színindexet kapnak: FELÜLET A felületeket sík lapokból kell felépíteni, a LAP utasítás segítségével. Ennek működése teljesen azonos a VONAL utasítással, csak itt a megadott 3D pontokat összekötve kapunk egy zárt síkidomot. Ennek színeit tudjuk módosítani a VONAL utasításban megismert módon. Először egy egyszerű háromszöget rajzolunk. Nincs megadva színtömb, ezért a SZÍN_1 utasítás hatására azonos színű lesz minden pont:

Most adjunk meg három színt. Ekkor minden sarok más színű lesz. A közbenső pontokat színátmenettel számolja a VRML böngésző: Most használjunk csak 2 db színt a színtömbben és rendeljük a sarkokhoz a színeket az indexük alapján:

Sokszög rajzolása Ciklussal előállítjuk egy kör kerületén a megadott számú (NUM) pontot. Ezután háromszögeket alkotunk. Ezeknek egyik pontja mindig a (0,0,0) középpont. A másik kettő pedig egy kerületi pont és a tőle jobbra lévő kerületi pont: A sokszögünk 32 csúcs felett már körnek számít:

Egy kocka, aminek hiányzik 2 oldala: Egy henger:

KIHÚZOTT FELÜLET A kihúzott felület egy XY síkbeli alakzat kihúzásával keletkezik. Közben az eredeti alakzat mérete és térbeli szöge változhat. Egy gúla alapja a négyzet síkbeli alakzat. Ezt kihúzva a négyzet méretét nullára kell csökkenteni, hogy megkapjuk a gúlát. A gyakorlatban a nulla méret tiltott, de elegendő 1% méretre csökkenteni az alakzat méretét és már nem látható. Az utasítás szintaktikája a következő: KIHÚZÁS KIHÚZÁS VÉGE KIHÚZÁS ALJA NINCS KIHÚZÁS TETEJE NINCS PONT_2D X1 Y1 PONT_2D X2 Y2 PONT_3D X1 Y1 Z1 PONT_3D X2 Y2 Z2 MÉRET_2D A1 B1 MÉRET_2D A2 B2 HELYZET X1 Y1 Z1 SZÖG1 HELYZET X2 Y2 Z2 SZÖG2 Kezdjük az elején - készítünk egy háromszög alapú hasábot: Fontos: zárt alakzatot akkor kapunk, ha az első pontot megismételjük a végén! A kihúzás a (0,0,0) pontból felfelé a (0,2,0) pontba történt.

Most megváltoztatjuk a kihúzás közben a méretet: A 3D pontokkal párban legyenek a 2D méret utasítások! Lehet több részben is kihúzást végezni: Így most az első és a második kihúzási pont 100% méretű, de a harmadik csak 1%.

A kihúzási pontok a tér bármelyik pontjában lehetnek: Ilyenkor a VRML megjelenítő automatikusan módosít az alaprajz dőlésszögén. Itt most az első kihúzási pontban kellett kb. 25 fokos szögben elforgatni az alaprajzot. Ha ez nem tetszik akkor a HELYZET utasítással lehet korrigálni az automatikus értékeket:

Alapesetben a kihúzás teteje és alja automatikusan lezárul egy-egy sík lappal. Ezeket ki lehet kapcsolni. Itt nincs teteje: Itt pedig alja sincs:

Természetesen az összes adatot számoltathatjuk is valamilyen függvénnyel és ciklussal. Először az alaprajzot számoltatjuk, mivel az egy kör lesz: Most a kihúzás útvonalát is számoljuk. Az is egy kör lesz. Az eredmény egy tórusz:

Érdekesebb, ha közben változik a kör mérete valamilyen függvény szerint:

Nyolcszög alaprajz körbeforgatva 0-600 fokig, miközben a alaprajz mérete egyre csökken. Az átlátszó felület miatt látható a belső felcsavarodás is:

Egy pipa : szintén nyolcszög alaprajz, de a kihúzás szinuszos jellegű:

Egy vonal körbe kihúzva, és máris kész a gyűrű: Ha közben változik a vonal helyzete, akkor megcsavarodott gyűrűt kapunk, vagyis egy Möbius szalagot:

Kicsit kisebb szélességgel és hármas csavarral: Játék a SIN és COS függvényekkel:

Végül néhány gömbi Lissajous-görbe: Ezeknek a görbéknek három paramétere van: A, B és R. Utóbbi a gömb sugara. A másik kettő a görbe alakját határozza meg. Minden görbénél a kihúzás alaprajza egy kör. X = R* sin(a*s) * cos(b*s) Y = R* sin(a*s) * sin(b*s) Z = R* cos(a*s) Ahol s az idő, illetve egy szögérték. Ezt ciklusváltozóval 0..1800 fok között változtattam.

RÁCSOS FELÜLET A rácsos felület az XZ síkon helyezkedik el. Az első két paraméter megadja, hogy X és a Z irányban mennyi pontból áll a felület mátrixa. A második két paraméter az egyes pontok közötti távolságot adja meg X és Z irányban. Ezután egy a PONT_3D utasítás tömbbe kell megadni a pontok magasság (Y) adatait egymás után. A magasság adatokat az Y mezőbe kell írni, az X és az Z értéke közömbös. Az első példában egy 10 x 10 es mátrixot készítünk, amely 0,5 ös lépésközű X és Z irányban is. A magasságokat egy véletlen függvény generálja:

A második példában a mátrix téglalap alakú: A harmadik példában manuálisan írtjuk be a magasságokat:

Természetesen lehet textúrázni a felületet:

SZÖVEG Az utasítás a paraméterben megadott szöveget kirajzolja az aktuális transzformációk szerint: A felület lehet textúrázott is: A szövegben ékezetes betű nem lehet, mivel a VRML böngészők nem tudják kezelni!

Mivel a parancsértelmező a szóközt tekinti elválasztó jelnek, a szövegben szóköz nem lehet. Helyette az aláhúzás jelet használhatjuk. A program ezt automatikusan szóközre cseréli: A második paraméter lehet a szöveg hivatkozás neve:

PONTSZERKESZTŐ Bevezetés A pontszerkesztő ablakban lehet egy négyzet alakú területre pontokat helyezni az egér baloldali gombjával, illetve törölni a jobboldali gombbal. A pontokat összekötve alakzatokat kapunk, amiket különböző utasításokban lehet használni.

Beállítások Lap mérete: megadja, hogy mekkora a rajzterület mérete méterben A láthatóságok kapcsolója alatt van a "zárt alakzat" kapcsoló. Néha nyitott kell, hogy legyen az alakzat. Ilyen lehet például egy mozgás útvonala. A rács mögé vagy helyette betölthető egy pixeles kép is, ami segíti a körvonalak rajzolását.

Sokszögek Ezen a lapon lehet szabályos sokszögeket készíteni. A sugár a pontok távolságát adja meg a középponttól. A szögszám 3 és 50 közötti érték lehet. Az elforgatás szögével lehet jobbra forgatni a megadott szöggel a pontokat. A nyújtásokkal lehet x vagy y irányban nyújtani az alakzatot.

Beszúrás Ezen a lapon választható ki, hogy milyen utasításhoz kapcsolódjanak a megrajzolt pontok koordinátái. Mivel csak síkban tudunk (x,y) koordinátákat rajzolni, némelyik utasításnál a harmadik koordinátát be is írhatjuk. PONT_2D Ebben az esetben a KIHÚZÁS utasításhoz szúrható be az általunk megrajzolt alakzat 2D koordinátái. Előzőleg a programban meg kell írni a KIHÚZÁS utasítás többi részét, majd a kurzort a beszúrás helyére kell vinni. Ezután a PONTSZERKESZTŐ segítségével megrajzolt pontok koordinátái beszúrhatók a szövegfájlba. A kész utasítás:

A kapu vastagsága a kihúzás útvonalának hosszától függ (0,0,0 -> 0,0,-1) Ugyanaez a 0,0,-5 pontba húzva: A körvonal egy textúra alapján készült. Kapcsoljuk a kihúzáshoz:

Lyukas alakzatoknál vigyázni kell a pontok átfedésére. A négyzetben csak akkor lesz kör alakú lyuk, ha a P0 és a P10 valamint a P16 és a P11 pontok koordinátái azonosak. Ilyenkor érdemes bekapcsolni a koordináta kijelzést.

PONT_3D Ebben az esetben a megadott pontok a KIHÚZÁS utasításban a PONT_3D helyre kerülnek, megadva a kihúzás útvonalát. Az útvonal lehet zárt és lehet nyitott is. Most a megadható, hogy a megrajzolt útvonal melyik síkban legyen. A harmadik koordináta beírható: Egy kört kihúzva a megrajzolt útvonalon a következő alakzatot kapjuk:

MÉRET_2D A KIHÚZÁS utasítás lehetővé teszi, hogy a kihúzási útvonal minden pontjában változzon a kihúzott alakzat mérete. A méretet az eredeti méret x százalékába kell megadni. Ebben segít pontszerkesztő, mivel a függőleges tengelytől jobbra rajzolva egy burkológörbét minden kihúzási ponthoz, megkapjuk a méret értékeket. Ezeket természetesen a KIHÚZÁS utasításba kell beszúrni. Az útvonal: A méretezés: A burkológörbe legtávolabbi pontja lesz a 100% méret. A többi pont százalék értéke ebből számítódik ki. Nagyon fontos, hogy a kihúzásban és burkológörbében azonos számú pont legyen!

HELY Ezzel a lehetőséggel tudunk a megadott pontokba helyezni bármilyen objektumot, aminek meg kell adni a HELY X,Y,Z adatát. Itt is csak 2 koordinátát tudunk megrajzolni, a harmadikat beírhatjuk. Most használható a "programrészlet minden utasítás után" szövegdoboz. Amit ide írunk, az minden beszúrt sor után beíródik.

EGYÉB Az "Egyéb" szöveges részbe bármilyen utasítás nevét beírhatjuk, aminek x,y,z koordinátára van szüksége. Célszerű valamilyen eljárást csinálni, amit utána a PONTSZERKESZTŐ segítségével paraméterezhetünk.

SORREND A sorrend parancs sík lapok összekötésére használható. Előzőleg be kell szúrni a LAP parancsba a 3D koordinátákat, majd rögtön utána a SORREND következik.

MOZGÁS A pontszerkesztővel animációk mozgás kulcsait is megadhatjuk valamelyik síkon. Csak a mozgások százalék adatait szúrja be a programba, a többit előre be kell írni.

MULTIMÉDIA HANGOK HANG hangfájl max_hangerő_távolsága nulla_hangerő_távolsága hangforrás_erőssége A HANG utasítással a tér bármelyik pontjába hangforrást helyezhetünk. Természetesen a hangforrás nem látszik, csak hozzá közeledve erősödik a hangja. A hangforrás első paramétere a hangfájl neve. A második paraméter azt adja meg, hogy milyen távolságban hallható maximális hangerővel a hang, a második, hogy milyen távolságban hallható a hang nulla hangerővel. A példában két hangforrásunk van. Mindkettő a forrástól számítva 1 egység távolságra már maximális hangerősséggel hallható, és 100 egység távolságban már nem hallható. Így elérhetjük azt, hogy a forráshoz közeledve hangosabb a zene. Egyenletes háttérzenéhez mindkét értéket egyforma nagyra kell állítani:

Az utolsó paraméter tudja módosítani magának a hangforrásnak az erősségét: A hangok beszúrását segíti az egyszerű hanglejátszó:

VIDEO A videó a testek felületén textúraként jelenik meg, de a hozzá tartozó hang is hallható. Beszúrása a legegyszerűbben a beépített videó lejátszóval történhet: A HANG utasításhoz hasonlóan a hang gyengülését a második és a harmadik paraméter határozza meg:

A negyedik paraméter pedig a forrás hangerejét állíthatja be. Értéke 0..1 között legyen:

OBJEKTUMOK A kész VRML objektumokat külső fájlban is tárolhatunk. Ezeket behívhatjuk a saját VRML modellünkbe az OBJEKTUM utasítással: A VRML fájl neve után kell írni azt a nevet, amivel majd később hivatkozhatunk az objektumra:

Természetesen az alapvető transzformációk vonatkoznak az objektumokra is: A VRML fájlok beszúrását segíti a beépített VRML tallózó. Ha a modell nem jelenne meg, akkor lehet, hogy nincs bekapcsolva a fejlámpa vagy nagyon kicsi a modell!

Ciklusok A ciklusok segítségével gyorsabban hozhatunk létre objektumokat. A ciklus fejrésze és a ciklust lezáró rész közötti utasításokat ismétli a program. A ciklus szerkezete a következő: CIKLUS VÁLTOZÓ KEZD VÉG LÉPÉS. Utasítások CIKLUS VÁLTOZÓ VÉGE A VÁLTOZÓ bármilyen szöveg lehet, kivéve az utasításokat vagy egyéb már definiált változókat. A többi paraméter csak szám lehet. (Egész vagy tört.) A változó értéke a KEZD értékéről indul. Minden ciklusban a LÉPÉS értékével nő a változó, amíg el nem éri a VÉG értéket. A LÉPÉS-t nem kötelező megadni. Ekkor automatikusan 1-el nő a változó. A következő példában a változót darab -nak neveztem: A változó használható azokban az utasításokban is, ahol számokat kellene megadni. Például a HELY utasításban. A következő példában az X paraméter helyén található a darab nevű változó:

A következő példában a darab változó kettesével nő: A ciklusok egymásba is ágyazhatók:

Változók A ciklusok változói automatikusan létrejönnek és az értékük is automatikusan változik. Ezen kívül is definiálhatunk változókat. A változók csak számokat tartalmazhatnak. Különböző műveleteket végezhetünk velük és az utasításokban is használhatók. Kötelező előre definiálni a változókat a VÁLTOZÓ utasítással! A következő példában a num nevű változót definiáltam először, majd feltöltöttem az értékét 12-vel. Ezután az ANYAG utasítás paramétereként használtam. Végül minden ciklusban 3-mal növeltem.

A következő példában több változót is használtam: X,Y,Z a gömbök helyét tárolja, az A pedig az anyag számát. Látható, hogy a változókkal matematikai műveletek is végezhetők. Alapműveletek Az alapműveletek formája szigorúan csak a következő lehet: A = B + C Tehát szóközzel kell elválasztani minden tagot egymástól. Hibás formátumok a következők: A=B+C A = B+C A = B+ C A kifejezés baloldalán csak változó lehet, a jobboldalán változó és szám is. CSAK 2 változó vagy szám használható!! Az A = B + C + D műveletet több részben lehet elvégezni: A = B + C A = A + D ( itt már az A tartalmazza a B és a C összegét) Az alapműveletek jelei: + Összeadás - Kivonás * Szorzás / osztás

Tippek: Egy változó növelése egyel: A = A + 1 Csökkentése: A = A - 1 Felezése: A = A / 2 Matematikai függvények Az alapműveletekhez hasonlóan szigorú formátumban használhatók a függvények. EGÉSZ (Törli a bementében megadott törtszám törtrészét) B = 3,14 A = EGÉSZ B ( A értéke 3 lesz) X = 10,001 X = EGÉSZ X ( X értéke 10 lesz) SIN (Kiszámolja a bemenetén fokban megadott szög szinuszát) X = SIN 180 Y = SIN 90 ( X értéke 0 lesz) ( X értéke 1 lesz) COS (Kiszámolja a bemenetén fokban megadott szög koszinuszát) Működése hasonló, mint a SIN függvényé. Példák a SIN, COS függvényekre: Egy 1 egység sugarú kör koordinátái: X = SIN szög Y = COS szög Ha nagyobb kört akarunk, akkor X és Y értékét szorozni kell a sugárral X = X * 10 Y = Y * 10 Ellipszis lesz, ha nem egyforma a két sugár: X = X * 10 Y = Y * 5

A szög értékét érdemes ciklusban növelni:

Feltételes utasítások A HA utasítás lehetővé teszi, hogy egy adott programrészt csak akkor hajt végre a program, ha a feltétel igaz. HA feltétel AKKOR HA VÉGE A feltétel csak két változó vagy szám közötti vizsgálat lehet. Pl.: A > B vagy A = 10 vagy A <= 20 A változó neve és a reláció után kötelező szóközt tenni! Például a következő programban az X ciklusváltozót vizsgáljuk meg, hogy kisebb-e, mint 3. Ha kisebb, akkor sárga (25. anyag), ha nagyobb vagy egyenlő, akkor piros (14. anyag) lesz a színe a gömböknek. Egymásba is ágyazhatók a HA utasítások: Az anyag alapvetően piros (14.anyag), de abban az esetben lesz arany színű (125. anyag), ha X<4 és Y<5.

A következő példa a páros páratlan vizsgálatot mutatja. E1-ben van az X és az Y összege. Utána már E1 tartalmazza E1 felét. Ez lehet tört is. E2 csak az egész részt tartalmazza. Ha E1 és E2 egyforma, akkor a szám felének nem volt tört része, azaz osztható kettővel:

ELJÁRÁSOK Eljárásnak nevezzük az olyan kódrészt, aminek nevet adunk, majd a név segítségével hívjuk meg. ELJÁRÁS VALAMI.. ELJÁRÁS VÉGE VALAMI A VALAMI nevű eljárás akkor működik, ha a programban a nevével meghívjuk az előre definiált utasításokat. A példában a VALAMI nevű eljárás jobbra lép egyet és rajzol egy hengert. A főprogram ezt a kódrész ötször hívja meg.

Eljárás hívhat egy másik eljárást is: A példában a MI nevű eljárás eldönti, hogy mit kell rajzolni. T=1 esetén piros hengert, T=2 esetén kék téglát rajzol. A LÉP nevű eljárás lépteti a T értékét. Ha T>2, akkor ismét egy lesz az értéke. Így felváltva 1,2,1,2.. lesz T értéke: Paraméterek Az eljárások szabadon használhatják a változókat, de minden eljárás kaphat max. 8 darab paramétert is. A paramétereket az eljárás neve mellé írjuk, amikor azt meghívjuk. KÖB 8 vagy ADD X 5 stb Az eljáráson belül a $ jellel lehet hivatkozni a paraméterekre. Pl. az első paraméter a $1. A második a $2, stb.. A példában az S globális változót használjuk a KÖB nevű eljárásban az eredmény visszaadására. Csak az első paraméterre lesz szükség. ($1) A főprogramban a többször is meghívjuk a KÖB eljárást és a paraméter értékét az X változó adja az eljárásnak:

A másik példában kér paramétert is használunk. A KÖR eljárás kiszámolja egy kör X és Y koordinátáit, ha megadjuk az első paraméterben a szöget, a másodikban a sugarat:

OBJEKTUM VARÁZSLÓ Ezzel a varázslóval a programba illesztés előtt megnézhetők az alapvető geometriai utasítások. Először a geometriai adatokat kell megadni (1). Majd a transzformációk következnek (2), végül a színek és a textúrák (3). Az előnézet gombra kattintva ki is próbálható a végeredmény (4). A beszúrás gombbal kerül a programba a kurzor helyére a kész kód. A felszín színét az anyag és a textúra határozza meg. Utóbbit a varázsló ablakán kívül a szokásos módon dupla kattintással kell megadni az alsó textúra böngészőval. Törölhető is a textúra. A transzformációk a szokásosak. Az ½ magassággal történő eltolás arra jó, hogy a modellezett test alja az xz alapsíkra kerüljön. Egyébként a test a sík alá lóg ½ magasság értékkel.

Alapvető geometriai elemek Véletlenszerű rács A megadott méretű négyzetet osztja fel a sűrűség darabszámával Véletlenszerűen generál a megadott számú csúcsot a maximum magasságig. A hegyekhez hasonlóan készít véletlenszerű gödröket. Minél magasabb az átlagolás száma, annál laposabbak lesznek a hegyek és a gödrök. Az alapzaj növelésével a sík részek is egyenetlenebbek lesznek.

Rács minták Rács sűrűsége: 30 Méret: 30 Hegycsúcsok száma: 10 Max. magasság: 3 Gödrök száma: 0 Max. mélység: 0 Átlagolás: 5 Alapzaj: 0,1 Textúra: MINTA noveny/lizard_scales.jpg 2 2 Rács sűrűsége: 30 Méret: 30 Hegycsúcsok száma: 10 Max. magasság: 3 Gödrök száma: 2 Max. mélység: -5 Átlagolás: 5 Alapzaj: 0,1 Textúra: MINTA fold/uveg2.jpg 2 2 Rács sűrűsége: 30 Méret: 30 Hegycsúcsok száma: 0 Max. magasság: 0 Gödrök száma: 0 Max. mélység: 0 Átlagolás: 3 Alapzaj: 1 Textúra: MINTA egbolt_viz/freon_mist.jpg 2 2

EXPORTÁLÁS Exportáláskor meg kell adnunk egy üres mappát, amibe az összes felhasznált médiafájl másolata kerül (kép, hang, video, háttérkép), illetve a VRML 2.0 kódolású fájl. A VRML fájl neve: index.wrl Internetes publikáláskor ezt a fájlt kell megadnunk egy link céljaként: <a href="index.wrl">valami</a> A szerverre természetesen a mappa teljes tartalmát be kell másolni.