ОК, во-первых, приношу извинения, так как я знаю, что этот вопрос задавался раньше более одного раза. Однако даже после просмотра других вопросов и ответов я не смог заставить это работать в моей ситуации. См. пример ниже:
Все, что я просто пытаюсь сделать, это определить угол между P1 и P2, предполагая, что 0 градусов соответствует показанному выше, чтобы я мог указать стрелку между 2 в правильном направлении. Поэтому я делаю что-то вроде этого...
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));
Что получается: -45, где должно быть 45? Однако это не просто случай, я не думаю, что он возвращает отрицательный результат, например, если я изменил P1 на 300 300 (ниже P2), тогда угол должен быть равен 0, но возвращается как -90.
Поэтому мне просто интересно, может ли кто-нибудь указать, что я делаю неправильно, чтобы рассчитать это, или это вообще возможно сделать так?
O
иP2
, которые находятся ближе друг к другу. Основная идея использоватьatan2
хороша. - person Lutz Lehmann   schedule 25.03.2015