Benötigte Rotation berechnen

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?

Zusatz: Ich programmiere diese Problemstellung in C#. Ich habe Funktionen wie Atan, Atan2, Sin, Cos, Tan etc zur Verfügung.

Hallo.

Verstehe ich das richtig, dass wir uns eigentlich im dreidimensionalen Raum befinden? Oder wie soll man die Information „steht am Standort“ interpretieren? Wohin schaut er denn aktuell? Wie gross ist die Person? Wie ist die Information Anfangsrotation zu verstehen?

Sorry für die Nachfragen, aber so ganz ist mir die Frage noch nicht klar :wink:

Viele Grüße.

Die Frage verstehe ich nicht ganz. Wohin blickt die Person vorher? zum Koordinatenursprung?
Was sollen die 145°?
Oder soll der Winkel zwischen den Vektoren (125,240) und (65,145) berechnet werden ?
Mit Matheass
http://www.chip.de/downloads/MatheAss-8.13_12997914…

erhalte ich einen Winkel von 3,366°

MitC# habe ich mich nie beschäftigt. Hatte frühe nur in ALGOL, FORTRAN, BASIC und TURBOPASCAL programmiert.

Hallo,
mal abgesehen davon, dass ich vom Programmieren so gar keine Ahnung habe, ist mir die Aufgabe nicht ganz klar.
Ist mit der Anfangsrotation die Blickrichtung der Person gemeint (abweichend von Nord)?
Um mit einfacher Trigonometrie arbeiten zu können, bräuchte man meines Erachtens einen Punkt, auf den die Person zuerst schaut. Dann könnte man ein Dreieck aufspannen, mit dem man den Drehwinkel berechnet (Kosinussatz, da dann Länge der drei Seiten ermittelbar und der Winkel berechenbar).
Andernfalls sollte sich das Problem leichter mit Vektorrechnung lösen lassen.
Tut mir leid, wenn ich keine größere Hilfe bin.

Gruß

Hi,

leider ist so, wie Du es schreibst, nicht ganz klar, was Dein Bezugssystem ist - Was meinst Du mit den Angaben Standort / Zielort / Rotation? Von wo an misst Du die Winkel? Hast Du sowas wie ein Sichtfeld oder möchtest Du eine Rotation auf Punkt-zu-Punkt-Verbindung?

Mach doch mal eine Skizze, in der nur die Problemstellung drin vorkommt und lade die irgendwo hoch und verlinke sie hier, dann wird vermutlich etwas klarer, was Du meinst…

Viele Grüße,
Nik

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?

Mal abgesehen davon, das meine grafische Darstellung nicht zu meinen angegebenen Koordinaten passen, hier die Zeichung: http://i.imgur.com/kIEs0.png

Hoffe es ist damit etwas deutlicher geworden.
Nochmal die Frage: Ich befinde mich am Standort (125, 240) und möchte auf den Zielort (65, 145) schauen. Ich schaue momentan nach unten rechts (145°). Wie lautet die Rechnung, damit ich die Gradzahl der benötigten Drehung erhalte. Bitte gehen Sie nicht von der grafischen Lage der Punkte aus, sondern von den angebenen Koordinaten.

Gruß

Hallo mskc33,

wenn ich die Frage richtig verstehe, geht es darum, um wieviel man sich drehen muss, wenn man zu Beginn in Richtung 145° schaut, aber in Richtung Ziel schauen möchte. Ich gehe davon aus, dass die Richtung so definiert ist, dass 0° rechts ist, 90° oben, 180° links usw.
In diesem Fall würde ich so vorgehen:
Der Vektor StandortZielort = {-60,-95},
seine Richtung daher = ArcTan(-95/-60) + 180° = 237,7°
(+180° wegen der negativen x-Koordinate; wenn Atan2 in C# dasselbe macht wie ARCTAN2 in Excel, dann ist der Winkel einfacher zu berechnen mit Atan2(-60,-95).)
Um von 145° auf 237,7° zu kommen, ist eine Rotation von 92,7° erforderlich.

mfg SdV

Hallo,
Du suchst die Rotation, so dass ich davon ausgehe, dass Du eine Blickrichtung vorgibst und diese hast Du in Deinem Beispiel unglücklich „Rotation“ genannt.

  1. Zielort minus Standort für X und Y Koordinate berechnen (= Differenz, Vorzeichen ist wichtig).
  2. arctan(Differenz Y Koordinate / Differenz X Koordinate) = gesuchte Rotation von der X-Achse weg, gegen den Uhrzeigersinn.
  3. Da eine Blickrichtung vorgegeben ist, musst Du dieses noch von der gefundenen Rotation abziehen.
  4. Positive Rotation = gegen den Uhrzeigersinn
    Grüße
    Niklas

Sorry, verstehe die Aufgabenstellung nicht - in welche Richtung schau denn die Person zu Beginn ? Ein Rotationswinkel ist gegeben, was gibt es dann noch an Rotationswinkel zu suchen ?
Entschuldige meine Ahnungslosigkeit in diesem Bereich
Gruß von Max

Hi,

ich habe das Problem zunächst reduziert. Ich beachte überhaupt nicht den bisherigen Blickwinkel, sondern rechne erstmal den Hilfswinkel alpha aus.

Standort ist an Koordinaten (a,b); Ziel ist auf (c,d).

Den Hilfswinkel alpha (siehe Skizze:
http://i.imgur.com/s70hf.jpg
)
berechnen wir mit atan (Achtung, alles in Bogenmaß / radians).

Nachdem wir alpha kennen müssen wir nun den bisherigen Blickwinkel (beta) berücksichtigen. Ich weiß jetzt nicht, ob im Beispiel die 135° so gemessen sind, wie ursprünglich gedacht, aber ich denke das Problem ist der Winkel alpha - der Rest ist dann einfach :smile:

Generell bitte immer auf die Einheit achten und konsistent Dezimalgrad bzw. Bogenmaß verwenden…

Viel Spaß damit,
Nik

Hallo,
der Vorgang spielt sich in der x-y-Ebene ab. Dort markiere ich die Punkte S und Z und zeichne die Strecke SZ.
Wenn Deine Person zu Anfang in Richtung der positiven x-Achse blickt (das ist nicht gegeben, aber das nehme ich einmal an), dann muss sie sich zunächst einmal links herum um 180° drehen und dann noch einmal um einen Winkel alpha, dessen Tangens man erhält, wenn man die Differenz der y-Werte durch die Differenz der x-Werte dividiert. Falls diese Rotation gemeint ist, beträgt sie bei mir insgesamt rund 237,7°.
Gruß
Jobie

Hallo,
ich habe dazu ein paar Fragen, um die Aufgabenstellung zu verstehen.

  1. Liegen Standort und Zielort in einer Ebene?
  2. Ist der Rotationswinkel der Winkel gegen die Nordrichtung oder im mathematischen Sinn zur x-Achse entgegen dem Uhrzeigersinn?

Gruß
Jueke