Reflektion berechnen

Meldanor

Bekanntes Mitglied
Hi Leute,

also ich stehe irgendwie total auf dem Schlauch.

Ich habe hier eine Unit, die sich auf einem 2D Feld, das durch X und Y Koordinaten beschrieben wird, bewegt. Die Bewegungsrichtung wird durch eine Zahl zwischen 0-359 angegeben. Es ist sozusagen der "Winkel zur x-Achse". Also wenn es als Direction 45° hat, bewegt es sich nach oben rechts, bei 90° nach oben.
Wenn die Unit das Spielfeld erreicht, soll es natürlich sich davon wegbewegen. Ich befolge hier dem Gesetz der Reflektion "Einfallswinkel = Ausfallswinkel". Ich hab jetzt jedoch mal keine Ahnung, wie ich an die Direction nach der Kollision komme.
Sagen wir, die Unit bewegt sich mit 87° , welchen Winkel hat es danach? Ich schätze so was auf 290° in dem Dreh. Aber wie kann ich das ausrechnen. Ich hab das Gefühl, die Sache ist über einfach, aber ich stehe im Moment echt auf dem Schlauch und hab ca. nen halben Tag schon über ne Lösung gegrübelt.
Als einzige Rechengrundlage habe ich nur meine Direction in Grad.

Mfg
Mel
 

Monaria

Aktives Mitglied
Ich weiß jetzt nicht genau, wie das aussieht, aber wären 180° und dafür eine Angabe, ob die Steigung postiv oder negativ ist, nicht einfacher?
Dann müsste der Ausfallswinkel die Differenz von 180 und dem Einfallswinkel sein.
Ist aber nur so eine Idee.

Edit: Mit einem kleinen Beispiel lässt sich das wohl trotzdem leicht herrausfinden.

35° Bewegung nach rechts oben.
0° = Bewegung nach rechts.
-35° = 325° = Bewegung nach links unten

Von dem her müsste der Ausfallswinkel 360° - Einfallswinkel sein.
 
Zuletzt bearbeitet:

Landei

Top Contributor
Reflektion rechter und linker Rand: 180° - Winkel
Reflektion oberer und unterer Rand: 360° - Winkel

Bei Winkel < 0° einfach 360° draufaddieren, bei Winkel > 360° einfach 360° abziehen.

Test:
30° rechts reflektiert gibt 180°-30° = 150°, kommt hin, 150° links reflektiert gibt wieder 180°-150° = 30°
-30° = 330° rechts reflektiert gibt 180° - 330° = -150° = 210°, stimmt auch

30° oben reflektiert gibt 360° - 30° = 330°, kommt auch hin
-30°=330° unten reflektiert gibt 360° - 330° = 30°, stimmt
 

Ähnliche Java Themen


Oben