Ich habe zwei Positionen, beide mit X- und Y-Koordinaten, und
eine Anfangsrotation:
Standort = {125, 240}
Zielort = {65, 145}
Rotation = 145°
Angenommen eine Person steht auf dem Standort und möchte
richtung Zielort schauen. Um wieviel Grad, muss sich die
Person drehen, damit das geschieht? Wie erreche ich die
benötigte Rotation?
Ich hoffe, ich verstehe die Frage richtig: die (Anfangs-)Rotation gibt an, in welche Richtung die Person am Anfang schaut? Und der Winkel ist relativ zur positiven x-Achse, im mathematisch positiven Sinn, also gegen den Uhrzeigersinn? Im Folgenden gehe ich mal davon aus, dass das so stimmt…
Erst mal braucht man den Vektor vom Standort zum Zielort, den man wie üblich als Differenz bekommt, also (-60, -95).
Dessen y-Koordinaten, geteilt durch die x-Koordinate, also (-95)/(-60) = 19/12, ist gleich dem tan des Winkels zur positiven x-Achse, den Winkel erhält man also als arctan(19/12); das ist etwa 57,72°.
Aber Vorsicht: der arctan liefert normalerweise Werte zwischen -90° und +90° (ich weiss nicht, wie der atan in C genau programmiert ist); hier brauchen wir aber eindeutig einen Winkel größer als 180°, zum Ergebnis muss also noch 180° dazu gezählt werden: 237,72°. (allgemein muss zum Ergebnis 180° dazu gezählt werden, wenn die y-Koordinate negativ ist)
Da der Winkel vorher schon 145° war, ist die gesuchte Rotation also 92,72°.
Hilfreich?