Siva

Particle System

Felhasználóknak

Bal egér kattintással füstöt rajzolhatunk. A jobb egér gombot nyomva tartva pedig mozgathatjuk a kísérletben pattogó halvány színes labdákat. Később egy napocskára hasonlító karaktert is irányíthatunk a nyíl billentyűkkel.

Fejlesztőknek

A rendszer olyan magas szintű függvényeket biztosít, melyekkel könnyedén hozhatunk létre mozgó részecske rendszereket (animációkat).

Részecske rendszer

Adott egy kezdő- és egy végállapot. Továbbá a lájátszás sebessége, típusa (pl lineáris), részecske alakja. A program ezekből a paraméterekből hozza létre az animációt. Illetve számolja a részecskék aktuális állapotát.

Kilöködő (emitter)

Létrehozhatunk részecske rendszer csoportokat különböző paraméterekkel.

Kép alapú kirajzolás

Adott egy képfájl, amit a program képpontonként dolgoz fel, majd ez alapján hoz létre tetszőleges típusú és sűrűségű részecske rendszereket.

Függvények rendre

void addParticle(Emitter e)
Hozzá ad 1 darab részecskét a kilöködés paramétereivel.
void addEmitter(Emitter e)
Kilöködő objektum létrehozása a paramétereivel:
Emitter newEmitter(char *name, int preDuration, int reStart, char *type
   , int db, double x, double y, int rotation, int alpha
   , int startR, int rMin, int rMax
)
típusok (char *type):
   "bouble"
   , "smoke"
   , "water"
   , "ball"
   , "wind"
   , "siva"
   , "sun"

Az ujjászületés mélysége (int reStart) szintenként eggyel csökken.
void addEmitterGroup(char *img, double scaleX, double scaleY, double density, Emitter e)
A beolvasott kép fekete képpontjaihoz tetszőleges sürűséggel ad hozzá kilőködőket.

Egyéb

A program duplán láncolt listát használ. Az egyes részecskéket név alapján külön tudjuk kezelni.

Tesztelés

A szaporodásra képes részecskéknek köszönhetően könnyedén felhasználhatjuk az összes memóriát. Ez a program kifagyásához vezet az általam használt rendszeren (Windows 7). Ilyenkor a másodpercekre eső képmegjelenítések száma is jelentősen lecsökken.
Érdekes látványt kaphatunk, ha a törlő szín átlátszóságát át állítjuk. Ugyanis ilyenkor a mozgó részecskék lenyomatot hagynak maguk után.
Bizonyos körülmények között a program nem tudja lekezelni a bemeneteket, mert csak a kirajzoltatásra jut az erőforrásokból. Ezt megpróbáltam kiküszöbölni, például azzal hogy a másodpercekre eső képmegjelenítések számát magam számolom ki.

Kapcsolatfelvétel

Engi Erik : kireerike@gmail.com
kireerik.uw.hu
A Siva névre keresztelt rendszer a BME VIK 1. Nagyházi feladatára készült.