Partikel gleichmäßig auf Kreis verteilen

Posted By: TheTommynator

Partikel gleichmäßig auf Kreis verteilen - 07/02/07 19:55

Hi,

versuche gerade einen Kreis aus Partikeln zu erstellen.

Die Partikel sollen dabei gleichmäßig über den gesamten Kreis verteilt sein.

Meine bisherige Lösung ergibt zwar einen Kreis, allerdings sind die Partikel nicht gleichmäßig verteilt.

Code:
 function fade_circle(PARTICLE *p)
{
p.alpha -= 2 * time_step;
if (p.alpha <= 0) p.lifespan = 0;
}

function circle_effect(PARTICLE *p)
{
VECTOR partikel_richtung[3];
partikel_richtung.x = 0;
partikel_richtung.y = 0;
partikel_richtung.z = 0;
vec_add(p.vel_x, partikel_richtung);
p.alpha = 100;
vec_set(p.blue, vector(255,255,255));
p.size = 4;
p.event = fade_circle;
p.flags |=(BRIGHT | TRANSLUCENT | MOVE);
}

function circle_effect_startup()
{
while(1)
{
var i;
for(i = 0; i < 5; i++)
{
drehung.pan += 500 * time_step;
spawn_position.x = 0 + 20 * cos(drehung.pan);
spawn_position.y = 0 + 20 * sin(drehung.pan);
spawn_position.z = -174;
wait(-0.05);
}
effect(circle_effect,1, spawn_position, nullvector);
wait(1);
}
}



Wäre toll, wenn mir jemand eine Lösung für das Problem bieten könnte

Dankeschön!
Posted By: Joey

Re: Partikel gleichmäßig auf Kreis verteilen - 07/03/07 10:31

drehung.pan += 500 * time_step;
...
wait(-0.05);

passt nicht zusammen. wenn du time_step verwenden willst, benutze keine absolute zeit zum warten (oder anderstrum). bei so kleinen werten (fürs warten) funktioniert das sowieso nicht sonderlich gleichmäßig.

mfg, joey.

edit: warum durchläufst du diese schleife 5 mal? o.O seltsamer code, he...
Posted By: TheTommynator

Re: Partikel gleichmäßig auf Kreis verteilen - 07/03/07 13:57

Mit der Schleife wollte ich erreichen, dass sich der Pan-Wert zunächst immer weiter erhöht, bevor ein neuer Partikel generiert wird.

Lasse ich die Schleife (bzw. das wait()) weg, dann entsteht ja ein geschlossener Partikelkreis.
Aber der Kreis soll ja gleichmäßige, regelmäßige Abstände zwischen den Partikeln aufweisen.
Posted By: Joey

Re: Partikel gleichmäßig auf Kreis verteilen - 07/03/07 22:38

der code ist trotzdem blödsinnig, das ist wie:

Code:
for (i = 0; i < 5; i ++) {
fuzz = i * 2;
}



da kannste auch gleich schreiben:

Code:
fuzz = 4*2;



joey.
© 2024 lite-C Forums