Támogatás

Az oldal oktatási célra készült, és folyamatosan fejlesztem, amikor időm engedi. A tárhelyet önerőből tartom fent, ezért bármilyen támogatással segítheted a további működést.

Paypal címem: 
niethammer.zoli@gmail.com

AR marker

A marker egy olyan kép, amelyet a kiterjesztett valóság modellkhez használunk. Nyomtasd ki kb. 10-15 cm méretben, vagy nagyítsd ki egy monitoron!

A fordító rendelkezik egy fizikai szimulációs modullal, amely korlátozott mértékben képes a valós sebességeket, mozgásokat szimulálni egy tetszőleges gravitációs térben. Jelenleg a gömb, a téglatest, és a henger geometriák használhatók a szimulációhoz.

Első lépésként be kell állítani a gravitációs vektort, vagyis merre zuhanjanak a testek.

A példában lefelé irányuló 2 egység erősségű a gravitáció.

A fizika.start utasítás kapcsolja be a szimulációt. Amint lefordítod a kódot, a testek azonnal lefelé zuhannak, és meg sem állnak a végtelenig.

gravitáció(0, -2, 0)

fizika.start

hely(0,10,0)
tégla(2)

hely(-5,10,0)
gömb(1)

hely(5,10,0)
henger(1,1,2)

Minden test kaphat sebesség, és perdület értéket az induláskor. Ehhez a testeknek egyéni nevet kell adni, majd a test.sebesség, vagy a test.perdület utasításban hivatkozni rájuk.

A példában a téglatest a T1, a gömb a T2, és a henger a T3 nevet kapta. A henger sebességet, és perdületet is kap induláskor.

gravitáció(0, -2, 0)

fizika.start

hely(0,10,0)
tégla(2) DEF T1

hely(-5,10,0)
gömb(1) DEF T2

hely(5,10,0)
henger(1,1,2) DEF T3

test.sebesség(T2,2,0,0)
test.perdület(T1,0,3,0)

test.sebesség(T3,-1,0,0)
test.perdület(T3,0,3,0)

  

Zéró gravitáció is használható. Ebben az esetben a perdületekkel, és a sebesség vektorokkal kell mozgatnunk a testeket.

gravitáció(0, 0, 0)

fizika.start

hely(-10,0,0)
tégla(2,2,2) DEF T1

hely(10,0,0)
tégla(2,2,2) DEF T2


test.perdület(T1,3,3,0)
test.perdület(T2,3,3,0)

test.sebesség(T1,1,0,0)
test.sebesség(T2,-2,0,0)

 

Ciklussal generált gömböket helyeztem el a -10,10 tartományba, és mindegyik kapott egy egyéni delta mozgási vektort. Az ütközések miatt szépen szétszóródnak a térben.

color(#ffb200)
gravitáció(0, 0, 0)
fizika.start

for(n,1,100)

x=rand(-100,100)/10
y=rand(-100,100)/10
z=rand(-100,100)/10
hely(x,y,z)

gömb(1) DEF G[n]


dx=rand(-5,5)/10
dy=rand(-5,5)/10
dz=rand(-5,5)/10
test.sebesség(G[n],dx,dy,dz)

next(n)

 

Az utolsó példában már nem véletlen a sebesség vektor, hanem a test (x,y,z) koordinátáinak -1 szeres értéke lesz. Így minden test az origó felé indul, és minél távolabb van, annál gyorsabban. Egy kis tömörülés után lepattannak egymásról, és elindulnak kifelé. A látvány kedvéért minden gömb véletlen RGB színkódot kapott.

color(#ffb200)
gravitáció(0, 0, 0)
fizika.start

for(n,1,100)

x=rand(-100,100)/10
y=rand(-100,100)/10
z=rand(-100,100)/10
hely(x,y,z)

r=rand(0,100)
g=rand(0,100)
b=rand(0,100)
rgb(r,g,b)

gömb(1) DEF G[n]

dx=-x
dy=-y
dz=-z
test.sebesség(G[n],dx,dy,dz)

next(n)