Winkelfunktionen und Schussbahn


Dr.Damm Fist

Member
Joined
Dec 14, 2009
Messages
347
Age
37
Location
Germany / Thuringia
Hi Leute,
irgendwie habe ich gerade einen tierischen Hänger, ich komm einfach nicht mehr auf das Ergebnis, bzw. den Algorithmus.
Ich wollte meinem Gefährt (Panzer) beibringen wie er seine Kanone dreht und dann in die Richtung die durch den Winkel angegeben wurde schießt.
Drehen der Kanone geht wunderbar, es passen auch die Winkel, nur kann ich jetzt nicht die Schussbahn berechnen, geshweige denn ein Zielkreuz was im gleichen Winkel 40 Einheiten weiter vor dem Gefährt platziert wird...
Ich hoffe mir kann hier jemand helfen...

MfG
 
Kräfte n-Eck? Schwerkraft nach unten, Schusskraft auf der y-Achse, Schusskraft auf der x-Achse, Luftreibung entgegen der Schusskraft auf beiden Achsen, Wind so wie er auf beiden Achsen strömt. Den (Abschuss)Winkel kannst du über sin/cos in seine Achsen zerlegen. Aus allem sollte sich eine Gleichung ergeben. Dein Boden, da wo das Geschoss auftrifft ist z.B. im einfachsten Fall eine Gerade. Schnittpunkt Funktion-Funktion: Voila der Auftreffpunkt. Alles klar, oder missversteh ich was du meinst? ;)
 
Nein das war schon sehr deutlich... aber ehrlich gesagt war ich noch nicht soweit Wind und Reibung mit rein zu nehmen, ich komm bei der Umrechnung von den Winkeln nicht weiter,, ich kann mit mit den Tasten meinen Winkel einstellen 0° (horizontale Linie) und 65° von der horizontalen Linie nach links oben, wie im Koordinatensystem... jetzt ist die Frage wie ich das Berechne wo der nächste Punkt auf der Linie ist vom Ursprung der Kanone (durch den Winkel definiert) bis ins "Unendlich", wenn ich jetzt z.b. das Fadenkreuz 40 Einheiten auf dieser Gedachten Linie vor dem Panzer anzeigen lassen will, ich kann eben gerade nicht die genaue Position berechnen, habe es mit
Code:
y = (sin(winkel * PI / 180) * 40) + panzer_y

und ohne die umrechnung mit PI gemacht, beide male habe ich abstruse Ergebnisse, so das das Fadenkreuz mehrmals in einem Bereich hin- und her sprang... aber nie direkt die Lösung das er der Kanone, dem Winkel der Kanone folgt.

MfG
 
Bei Sinusberechnungen muss beim normalen Pixel-System(0/0 oben links) auf jeden Fall immer ein Minus davor, da die y-Achse quasi "umgedreht" ist.

Der Ansatz

x += cos(deg(winkel)) * dist;
y += -sin(deg(winkel)) * dist;

stimmt aber.
 
Ahja, ok ich werd es weiter versuchen, dein Tipp bringt mich schon weiter, danke!

MfG


Edit : Hab es hinbekommen, komischerweise musste ich < 40 * cos > und nicht < cos(....) * 40 >.... etwas seltsam aber jetzt passt es :)
 
Back
Top