OK najpierw przeprosiny, ponieważ wiem, że tego rodzaju pytanie zostało zadane przed więcej niż raz. Jednak nawet po zapoznaniu się z pozostałymi pytaniami i odpowiedziami nie byłem w stanie zrobić tego dla mojej sytuacji. Poniżej znajduje się przykład: Java: kąt determinacji między dwoma punktami
Wszystko Ja po prostu próbuje się wypracować kąt pomiędzy P1 i P2, przy założeniu, że 0 stopni jest jak przedstawiono powyżej, aby można było wskazać strzałę między 2 we właściwym kierunku. Więc robię coś takiego ...
Point p1 = new Point(200,300); Point p2 = new Point(300,200);
double difX = p2.x - p1.x; double difY = p2.y - p1.y;
double rotAng = Math.toDegrees(Math.atan2(difY,difX));
Który wychodzi jako: -45, gdzie powinien być 45? Jednak nie jest to po prostu przypadek, w którym nie myślę o tym, aby zwracał wynik ujemny, jak na przykład, jeśli zmieniłem P1 na 300 300 (poniżej P2), wtedy kąt powinien wynosić 0, ale jest zwracany jako -90.
Więc zastanawiam się, czy ktoś może wskazać, co robię źle, aby to obliczyć, czy jest to możliwe, aby to zrobić w ten sposób?
Powinieneś umieścić to w funkcji i obliczyć i porównać z oczekiwaniami kąty dla punktów "O" i "P2", które są bliżej siebie. Podstawowy pomysł użycia "atan2" jest dobry. – LutzL
Hmm 0 nie ma być punktem, właśnie to, czego oczekiwałbym 0 stopni do punktu od P1. Eksperymentowanie z metodą/funkcją dla tego teraz, chociaż z ustawieniem P1 jako 0,0, ale nie jestem pewien co to znaczyło: o –
Nie, miałem na myśli lokalizację wokół znaku 0 lub O. – LutzL