Partikel in bestimmtem Winkel erzeugen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich stehe vor einem Problem: In meiner Partikelengine möchte ich Partikel nur in eine bestimmte Richtung abstrahlen. Momentan erzeuge ich die Partikel folgendermaßen:
Delphi-Quellcode:
Ich erzeuge einen Vektor und normalisiere diesen, um die Partikel praktisch "kreisförmig" abzustrahlen. Aufgrund der Normalisierung bringt es auch nicht viel an den so viel versprechenden Werten 180 oder 360 rum zu spielen.
var l:double;
begin with FDir do begin X := 180-random(360); Y := 180-random(360); l := Sqrt(Sqr(X)+Sqr(Y)); X := X / l; Y := Y / l; end; end; Wie meine Winkelangabe aufgebaut ist, habe ich nochmal an einem kleinen Beispiel im Anhang verdeutlicht. Hat jemand eine Idee, wie ich dies realisieren könnte? (Ich bin leider erst in Klasse 10. und kenne mich mit Vektorrechnung nicht so 100% aus.) Schonmal Danke, Igel457 |
Re: Partikel in bestimmtem Winkel erzeugen
tan(alpha) gibt dir die Steigung eines solchen Strahles an, das ist genauer als wenn du das mit Pythagoras zu lösen versuchst.
|
Re: Partikel in bestimmtem Winkel erzeugen
Ähm...
Kannst du das nochmal genauer erkären? Ich verwende den Pythagoras duch nur, um meinen Vektor zu normalisieren. Das soll auch mit Tangens gehen? :gruebel: |
Re: Partikel in bestimmtem Winkel erzeugen
Hm, machs doch einfach so:
Delphi-Quellcode:
Bereits normalisiert und natürlich über Alpha extrem leicht anpassbar.
Alpha := Random * 2 * Pi;
X := cos(Alpha); Y := sin(Alpha); |
Re: Partikel in bestimmtem Winkel erzeugen
Zitat:
Delphi-Quellcode:
Danke an alle
var alpha,max,min,h : double;
begin with FDir do begin max := (CreationAngle+CreationAngleOpen / 2) * PI / 180; min := (CreationAngle-CreationAngleOpen / 2) * PI / 180; Alpha := Random * (max-min)+min; X := cos(Alpha); Y := sin(Alpha); end; end; igel457 |
Re: Partikel in bestimmtem Winkel erzeugen
Oder für die Schreibfaulen ;) :
Delphi-Quellcode:
Alpha := Offset + Open * (Random - 0.5);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz