schwierigkeiten Particle in form einer Kugel explodieren lassen

Zespire

Lieutenant
Registriert
März 2007
Beiträge
857
schwierigkeiten Particle in form einer Kugel explodieren zu lassen

Mir stellt sich folgendes Problem, ich bin dabei mein Particle System um eine Dimension zu erweitern und bekomme es nicht auf die reihe, einen Kugelförmigen Emitter zu erzeugen.

hier einmal der teil vom Code der die Richtung vor gibt.

Code:
 //Die dif werte haben eine Reichweite von -100 bis +100.

 angle = (float) (Math.atan2(dif_Y,dif_X)*180f/3.14f);	
			
 velocityX = (float) Math.cos(angle); 
 velocityY = (float) Math.sin(angle);

 angle = (float) (Math.atan2(dif_Z,Math.sqrt( dif_X * dif_X + dif_Y * dif_Y ) )*180f/3.14f);	
			
 velocityZ = (float) Math.cos(angle);



Aktuell kommt dabei eine Art Zylinder ohne Deckel raus wen ich alle Particle auf einmal abfeuere.

tube.png
 
Zuletzt bearbeitet:
Nur mal ganz vorsichtig gefragt: Ist das Absicht, dass du *180f/3.14f (also von rad zu deg) und anschließend Math.cos usw. benutzt? Soweit ich weiß, benutzen die Funktionen alle das Bogenmaß (rad).
 
Hast vollkommen recht habe vergessen hier wieder zurück zu rechnen. Habe es eingebaut um den Winkel in der Console als Degree ausgeben zu können.

In meiner alten Klasse für den 2D Emitter habe ich noch daran gedacht :)

Code:
velocityY += (float) (((accelerationY/100f) * Math.sin((angle/180f)*3.14f))*-1);
Ergänzung ()

So hab jetzt raus wie ich einen Kugel erzeuge hier der passende Code.

Code:
			angleLong = (float) (Math.atan2(dif_Y,dif_X));	
	                angleLat    = (float) (Math.atan2(dif_Y,dif_Z));	

			
			velocityX = (float) Math.cos(angleLong )*(float)Math.cos(angleLat ); 
			velocityY = (float) Math.cos(angleLong )*(float)Math.sin(angleLat );
			velocityZ = (float) Math.sin(angleLong );

hier ein Link zu dem Topic der mir sehr geholfen hat.

http://stackoverflow.com/questions/9600801/evenly-distributing-n-points-on-a-sphere

Werde den Topic aber noch einmal durch arbeiten müssen oder mit Zufallswerten arbeiten um eine gleichmäßigere Verteilung zu bekommen.


sphere.png
Ergänzung ()

Jetzt ist es halbwegs gleichmäßig Verteilt bis auf die Pole wo noch eine größere Dichte an Punkten ist.

Hier die Kugel.

sphere.jpg

Und pseudo Zufall kann so schön sein. :)

random.jpg

Kleine Info am Rande die Kugel ist GPU limitiert und die Trend Whore im unteren Bild CPU
 
Zuletzt bearbeitet:
Zurück
Oben