Lassen Sie mich versuchen, Ihnen irgendetwas zwischen der Antwort von The Light Spark und der Antwort von Elliot zu sagen, denn nach dem, was ich gelesen habe, suchen Sie wirklich nach einem Algorithmus, dem Sie folgen können, und nicht nur nach Mathematik.
Problemstellung: Wenn Sie eine Position A (50, 50)und eine Überschrift haben (da Sie keine angegeben haben, werde ich diese als bestätigen y = 2 * x + 25), finden Sie, wo B (80, 90)sich die relative APosition und die Überschrift befinden.
Was Sie tun möchten, ist eigentlich ziemlich einfach. 1) Wechseln Sie Azum Ursprung Ihres Systems. Dies bedeutet einfach, dass die Local-to- AValues die globalen Positionswerte minus den globalen Positionswerten von sindA . Awird (0, 0)und Bwird (30, 40).
1.1) Die Überschrift muss ebenfalls verschoben werden. Dies ist eigentlich sehr einfach, da der y-Achsenabschnitt in lokaler AHinsicht immer 0 ist und sich die Steigung nicht ändert, also haben wir y = 2 * xals Überschrift.
2) Nun müssen wir die vorherige Überschrift auf die X-Achse ausrichten. Wie machen wir das? Der einfachste Weg, dies konzeptionell zu tun, besteht darin, die x, y-Koordinaten in ein Polarkoordinatensystem umzuwandeln. Das Polarkoordinatensystem umfasst Rden Abstand zu einem Ort und phieinen Drehwinkel von der x-Achse. Rist definiert als sqrt(x^2 + y^2)und phiist definiert alsatan(y / x) . In den meisten Computersprachen wird heutzutage eine atan2(y, x)Funktion definiert, die genau das Gleiche tut atan(y/x), jedoch so, dass die Ausgabe in der Regel zwischen -180 und 180 Grad und nicht zwischen 0 und 360 Grad liegt, aber beide funktionieren.
B so wird R = sqrt(30^2 + 40^2) = sqrt(2500) = 50 und phi = atan2(40, 30) = 53.13in grad.
Ebenso ändert sich nun die Überschrift. Dies ist etwas schwierig zu erklären, aber da die Überschrift per Definition immer durch unseren Ursprung verläuft A, müssen wir uns keine Sorgen um die RKomponente machen. Überschriften werden immer in Form vonphi = C , wo Ceine Konstante ist . In diesem Fall phi = atan(2 * x / x) = atan(2) = 63.435Grad.
Jetzt können wir das System drehen, um die Überschrift auf die X-Achse des lokalen ASystems zu verschieben. Ähnlich wie beim Übergang Azum Ursprung des Systems müssen wir nur phidie Überschrift von allen phiWerten im System subtrahieren . Also das phivonB wird 53.13 - 63.435 = -10.305Grad.
Schließlich müssen wir die Polarkoordinaten wieder in x, y-Koordinaten umwandeln. Die Formel für diese Transformation lautet X = R * cos(phi)und Y = R * sin(phi). Dafür Bbekommen wir X = 50 * cos(-10.305) = 49.2und Y = 50 * sin(-10.305) = 8.9soB in Ortskoordinaten Anah dran (49,9).
Hoffentlich hilft das und ist leicht genug in der Mathematik, damit Sie folgen können.