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 A
Position und die Überschrift befinden.
Was Sie tun möchten, ist eigentlich ziemlich einfach. 1) Wechseln Sie A
zum Ursprung Ihres Systems. Dies bedeutet einfach, dass die Local-to- A
Values die globalen Positionswerte minus den globalen Positionswerten von sindA
. A
wird (0, 0)
und B
wird (30, 40)
.
1.1) Die Überschrift muss ebenfalls verschoben werden. Dies ist eigentlich sehr einfach, da der y-Achsenabschnitt in lokaler A
Hinsicht immer 0 ist und sich die Steigung nicht ändert, also haben wir y = 2 * x
als Ü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 R
den Abstand zu einem Ort und phi
einen Drehwinkel von der x-Achse. R
ist definiert als sqrt(x^2 + y^2)
und phi
ist 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.13
in 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 R
Komponente machen. Überschriften werden immer in Form vonphi = C
, wo C
eine Konstante ist . In diesem Fall phi = atan(2 * x / x) = atan(2) = 63.435
Grad.
Jetzt können wir das System drehen, um die Überschrift auf die X-Achse des lokalen A
Systems zu verschieben. Ähnlich wie beim Übergang A
zum Ursprung des Systems müssen wir nur phi
die Überschrift von allen phi
Werten im System subtrahieren . Also das phi
vonB
wird 53.13 - 63.435 = -10.305
Grad.
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 B
bekommen wir X = 50 * cos(-10.305) = 49.2
und Y = 50 * sin(-10.305) = 8.9
soB
in Ortskoordinaten A
nah dran (49,9)
.
Hoffentlich hilft das und ist leicht genug in der Mathematik, damit Sie folgen können.