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:

10. Lecke: Limit, eltolás

Ebben a leckében egy táblás játék geometriáját készítem el. Maga a alaptábla egy egyszerű téglatest, ami kapott egy kockás textúrát.

Érdekessége a modellnek, hogy a bábukat lehet majd mozgatni az egérrel. [1] Erre való a MOZGATHATÓ utasítás. Bekapcsolása esetén minden egyszerű geometria amit alá írsz, elmozdítható lesz. Ezért érdemes a kód végére írni ezeket a sorokat. Sajnos csoportokat nem lehet így mozgatni. A mozgatás lényege, hogy a képernyő síkjában húzott egér koordinátáit átszámolja a rendszer 3D koordinátákra. Így egy húzással mindhárom koordináta változhat. A példában ez elég zavaró lenne, hogy néha az XZ sík alá, vagy fölé kerülne a bábú.

Ilyenkor a LIMIT utasítással korlátozható a test pozíciója. [2] Fontos, hogy egyéni neve legyen a testnek!

Maga az utasítás három részből áll: LIMIT.HELY.X, LIMIT.HELY.Y, LIMIT.HELY.Z 

Ha valamelyik nincs megadva, akkor ott nem érvényesül a korlátozás. [3] Első paraméterként az objektum nevét kell megadni, majd a minimum, és maximum értékeket.

 Valóságosabb lesz a bábu, ha több testből épül fel. Mivel a csoportokat nem lehet így mozgatni, azt a megoldást választottam, hogy a B1 objektum koordinátáihoz kapcsolom a többi test koordinátáit, persze eltolva. Ha B1-et elhúzod, akkor a B1A, és a B1B is megy vele. Az eltolás mértéke itt 0.6, és 0.9 egység Y irányban. Eltolni persze lehet bármilyen irányban.

A folyamatos mozgatással akárhova lerakható a bábu. a LIMIT utasítás kiegészíthető még egy paraméterrel, a lépésközzel. Ha ezt megadod, akkor csak egy képzeletbeli rácsra helyezhető a test. A példában 0.5 egységet választottam.