Pozwól, że spróbuję dać ci coś pomiędzy odpowiedzią The Light Spark a odpowiedzią Elliota, ponieważ z tego, co czytam, naprawdę szukasz algorytmu do naśladowania, a nie tylko rzuconej na ciebie matematyki.
Opis problemu: Biorąc pod uwagę, że masz lokalizację A (50, 50)i nagłówek (ponieważ nie podałeś go, potwierdzę to jako y = 2 * x + 25), znajdź, gdzie B (80, 90)jest relacja Ai nagłówek.
To, co chcesz zrobić, jest dość proste. 1) Przenieś Asię do źródła swojego systemu. Oznacza to po prostu, że lokalnymi Awartościami będą globalne wartości pozycji minus globalne wartości pozycji A. Astaje się (0, 0)i Bstaje (30, 40).
1.1) Nagłówek również musi zostać przesunięty. Jest to w rzeczywistości bardzo łatwe do zrobienia, ponieważ punkt przecięcia y w lokalnych Awarunkach to zawsze 0, a nachylenie nie zmieni się, więc mamy y = 2 * xjako nagłówek.
2) Teraz musimy wyrównać poprzedni nagłówek do osi X. Więc jak to robimy? Najprościej, koncepcyjnie, jest to konwersja z współrzędnych x, y na biegunowy układ współrzędnych. Polarny układ współrzędnych obejmuje Rodległość do położenia i phikąt obrotu od osi x. Rjest zdefiniowany jako sqrt(x^2 + y^2)i phijest zdefiniowany jako atan(y / x). Obecnie większość języków komputerowych definiuje atan2(y, x)funkcję, która robi dokładnie to samo, atan(y/x)ale robi to w taki sposób, że wyniki zwykle wynoszą od -180 stopni do 180 stopni zamiast 0 stopni do 360 stopni, ale albo działają.
Bw ten sposób staje się R = sqrt(30^2 + 40^2) = sqrt(2500) = 50i phi = atan2(40, 30) = 53.13w stopniach.
Podobnie nagłówek teraz się zmienia. Jest to nieco trudne do wyjaśnienia, ale ponieważ nagłówek z definicji zawsze przechodzi przez nasze pochodzenie A, nie musimy się martwić o Rkomponent. Nagłówki są zawsze będzie w formie phi = C, gdzie Cjest stała. W tym przypadku phi = atan(2 * x / x) = atan(2) = 63.435stopnie.
Teraz możemy obrócić system, aby przesunąć nagłówek do osi X systemu lokalnego A. Podobnie jak po przejściu Ado początku systemu, wszystko, co musimy zrobić, to odjąć phinagłówek od wszystkich phiwartości w systemie. Więc phiof Bstaje się 53.13 - 63.435 = -10.305stopniami.
Na koniec musimy przekonwertować z współrzędnych biegunowych na współrzędne x, y. Formułą wykonania tej transformacji są X = R * cos(phi)i Y = R * sin(phi). Dla Bzatem mamy X = 50 * cos(-10.305) = 49.2i Y = 50 * sin(-10.305) = 8.9tak Bw lokalnych-to- Awspółrzędnych znajduje się w pobliżu (49,9).
Mam nadzieję, że to pomaga i jest wystarczająco lekkie dla matematyki, abyś podążał za nią.