COMPILER


TUTORIAL

Bemutatkozás

Ez az oldal elsősorban gyereknek készült. Egy általam kitalált programozási nyelvet fordít át WebGL nyelve. Az új böngészők ezt már képesek 3D-ben megjeleníteni.

Az oldal ingyenes, ezért bármilyen támogatásnak örülök. (Megosztás, reklámozás, anyagi támogatás.)

Niethammer Zoltán
niethammer.zoli@gmail.com 

Legjobb munkáim

3D függvények: 

Fogaskerekek:

Boszniai piramis:

Napfogyatkozás:

Holdfogyatkozás:

Hidrogén:

1. Lecke: Alapok

Mi is ez?

Olyan online fordító program, ami a begépelt parancsokat webgl technológiájú 3D tartalommá fordítja. Ha helyen gépelted be az utasításokat, akkor a „convert to” gombbal megkapod a jobboldali panelen a 3D modellt. Ha képernyő üres marad, akkor hibás a forrás szövege.

Szintaxis - vagyis gépelési szabályok

Egy sorba csak egy parancs gépelhető. A parancsok neve után zárójelekben kell a paramétereket megadni. Pl.:  gömb(3)

A paramétereket vesszővel kell elválasztani. Pl.: tégla(2,3,5) 

Pontot használunk a tizedes törtek esetén. Pl.: tégla(2.5, 3, 6.25)

Néhány utasításban szöveget is megadhatunk. Pl.: kamera(ELSŐ KAMERA, 10,5,3)

 

Kommentek

A dupla per jel után bármi írható, mert nem kerül fordításra. Érdemes sok kommenttel írni a programot, hogy mások is használni tudják. Pl.: // ---- ez itt a komment -------

 

Utasítások csoportosítása:

  • Transzformációs utasítások: Ezekkel előre megadjuk a rajzolás helyét, méretét, forgatási szögét. Ezek addig lesznek érvényesek, amíg új értékeket nem adunk meg a programban.
  • Megjelenítési utasítások: Ezekkel lehet a test felszínének színét, textúráját, az árnyékokat szabályozni. Ezek is érvényesek a teljes kódban, amíg más értékeket nem adunk meg.
  • Geometriai utasítások: Ezekkel lehet 3D objektumokat rajzolni az előzetesen megadott helyre, és színben.
  • Animációs utasítások: Ezekkel lehet utólag animálni az objektumok tulajdonságait. Például a helyét, méretés, forgási szögét, stb..
  • Információs utasítások: Ezekkel lehet kamerákat és szöveges információkat kijelezni a képernyőn.

 

Rajzolj 3 gömböt egymás mellé. Mindhárom más színű legyen.

Megoldás: Lényegében bármilyen sorrendben begépelhető a következő 3 blokk, mivel a rajzolás helyét, színét és geometriáját mind a három kódban megadjuk.

  

Próbáld ki, hogy mi történik, ha töröl a második, és a harmadik gömb szín utasítását törlöd!

Letöltheted a forrás szövegfájlt a TXT ikonra kattintva, vagy online megnézheted 3D-ben is a végeredményt.

 

Új utasítások:

hely(x,y,z)

Minden alkalommal meg kell adni a térbeli koordinátákat, ha valamit rajzolni akarsz. Ha nem változtatsz a koordinátákon, akkor minden 3D test egy helyre kerül. A képernyőn a rács segít a tájékozódásban. Egy vonal 1 egységet jelent. A kék tengely az x, a sárga az y, és a piros a z.

A tengelyek metszéspontja az origo, azaz hely(0,0,0).

Ettől jobbra vannak a pozitív X koordináták. hely(10,0,0) vagy hely(25,0,0)
Ettől balra vannak a negatív X koordináták. hely(-10,0,0) vagy hely(-25,0,0)

Felfelé vannak a pozitív Y koordináták. hely(0,5,0) vagy hely(0,8,0)
Lefelé vannak a negatív Y koordináták. hely(0,-5,0) vagy hely(0,-8,0)

Előre vannak a pozitív Z koordináták. hely(0,0,12) vagy hely(0,0,30)
Hátra vannak a negatív Z koordináták. hely(0,0,-12) vagy hely(0,0,-30)

Természetesen mindhárom koordináta egyszerre módosítható. És egy lépésben a tér tetszőleges pontjára ugorhatsz. Pl.: hely(-20,12,-8)

szín(red) vagy szín(#FF0000)

A 3D testek felszínének alapszínét lehet ezzel az utasítással megadni. Paraméterként HTML színkód (#FF0000) vagy HTML angol név használható. Mindkettőt egy-egy segédoldallal könnyű kikeresni.

 

A színkódot vagy a neveket érdemes másolni, majd a programba beilleszteni.

 

gömb(2) vagy gömb(2,16)

Az első paraméter a gömb sugarát adja meg. A második a szegmensek számát határozza meg. Minél több a szegmens, annál szebb lesz a gömb görbülete, de többet is kell számolnia a megjelenítő programnak. 32 szegmens esetén már nem látszanak a szegmenshatárok.

 

Önálló feladat:

Rajzold meg a következő objektumokat! A középső gömb 2 egység sugarú, a többi 1. A kis gömbök 4 egység távolságra vannak a középponttól.