COMPILER


TUTORIAL

Keresés

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


PayPal azonosító:
niethammer.zoli@gmail.com 

3D Időkép

Fejlesztés alatt van a 3D időkép vizualizáció, amely az ingyenes adatbázis  alapján élőben mutatja a legfontosabb időjárási adatokat. 

A fejlesztés részleteiről itt olvashatsz: 3d-idokep

3. Lecke: Egyszerű animációk

Az egyszerű animációk 0-100% időtartamra adják meg az animációk fázisait. A KULCS utasítással kell legalább 3 fázist leírni. A többit a program lineáris interpolációval számolja ki. A KULCS utasítás 4 paraméterrel rendelkezik:

- Az első a fázis százaléka 0..100% között. Célszerű 0%-al kezdeni, és 100%-al befejezni a kulcsok felsorolását.
- A következő 3 paraméterben koordinátákat, forgási szögeket, vagy méret adatokat adunk meg, az animáció típusától függően.

Az animációnak nevet kell adni, illetve a 3D objektumnak is, amit mozgatni akarunk.

A következő példában OBJ-nek neveztem a kúpot, és AN1-nek az animációt. A [0,0,0] pontból mozgatja a [0,5,0] pontba, majd vissza.

A kód:

szín(#DF7401)
henger(0,2,4) def OBJ
animáció(AN1)
kulcs( 0%, 0, 0, 0)
kulcs( 50%, 0, 5, 0)
kulcs(100%, 0, 0, 0)
animáció.hely(OBJ,AN1)

Hibalehetőségek:

  • Nem 0%-al kezdődik az első kulcs.
  • Nem 100%-al végződik az utolsó kulcs.
  • Legalább 3 kulcs kell!
  • A kulcs utasításban a szóközt lehet tagolásra használni, de a % jel után ne legyen!

A következő videókat teljes képernyőn HD felbontásban érdemes megnézni!

HELY animáció:

Egyenletes mozgás 5 kulccsal.

Az első, és az utolsó kulcs nem egyforma, ezért hirtelen átugrik a kocka a végén.

Az első, és a második kulcs közötti távolságot (16 egység)
Az idő 10%-a alatt kell megtennie, ezért sokkal gyorsabb a mozgása.

 

FORGÁS animáció:


MÉRET animáció:

 

5. Lecke: Csoportok

A csoport utasítás lehetővé teszi, hogy több egyszerű geometriai utasítást összekapcsoljunk egyetlen objektumba.  A csoporttal végzett transzformációk a benne lévő objektumokra is érvényes lesz.

1. példa:  3 db kockát mozgatok fel-le. A fehér gömb csak jelzi a csoport helyét. Az animáció a csoportot mozgatja a [0,0,0], és a [0,5,0] pontok között.

A kód: 

 

 

2. példa:  A csoportban 2 db gömb van. A csoportot felemeltem a [0,3,0] pontba, és a méretet 2x-re növeltem Y irányban. Az animáció forgatja az Y tengely körül.

A kód:

 

 

2. Lecke: Egyszerű geometriák

 

tégla(x,y,z)

A három paraméter a téglatest x,y, és z kiterjedését adja meg. Sík lapot kapunk, ha valamelyik érték nulla. A renderelésnél ez zavart okozhat, ezért inkább egy kis szám javasolt helyette. Kockát kapunk, ha mindhárom egyforma. Amikor a helyet megadjuk, akkor az a téglatest középpontjára vonatkozik.

Feladat: Egy zöld 100 méteres oldalú négyzetet rajzolunk alapnak. Magassága 0.001 méter lesz, hogy síknak tűnjön. A közepére egy 5 méter oldalú piros kockát helyezünk.

 

 A kockát 2.5 méterrel feljebb kell rajzolni, mert ez a magasságának a fele. Így az alja pontosan a zöld síkra esik. Ha nem emelnénk fel, akkor a kocka fele a zöld sík alatt lenne!

 

henger(R1, R2, M, SZ)

 Az utasítás neve henger, de sokféle forgástestet lehet vele rajzolni. Például hengert is. 

Paraméterek:

  • R1: Felső lap sugara
  • R2: Alsó lap sugara
  • M: Magasság.
  • SZ: Szegmensek száma (Nem kötelező megadni)

Henger rajzolása esetén R1=R2.

A zöld henger 3 m sugarú, és 6 m  magas. 3 m-el kellett feljebb rajzolni. A sárga 4 m magas, ezért 2 m-el kellett feljebb rajzolni.

 

 

Kúp rajzolása esetén R1=0

Az előző programhoz képest csak annyi változott, hogy a henger parancs első paramétere 0. Így kúpokat kaptunk.

Ha a szegmensek számát megadod, akkor a körök helyett sokszögek zárják le a test tetejét és alját. Az utolsó paraméter a szegmensek száma.

 

A következő példában több henger utasítást használtam. A kúp helyének kiszámítása a következő:

Y=henger magassága + (kúp magassága)/2