Почему он вращается только между 90 и -90? - PullRequest
0 голосов
/ 25 января 2020

В этом коде прямоугольник всегда направлен на курсор, и все хорошо. Но есть одна проблема, которая может быть не видна при выполнении кода. что происходит, он вращается только между 90 и -90. Хорошо, если я ничего не добавлю. Но когда я закрашиваю его двумя цветами (скажем, красным и синим), если я перемещаю курсор рядом с прямоугольником справа, он смотрит на курсор с красной стороны, но при перемещении на другую сторону он смотрит на курсор с синей стороны .

double centerX = Rectangle.getX() + 0.5 * Rectangle.getWidth();
double centerY = Rectangle.getY() + 0.5 * Rectangle.getHeight();
Rectangle.setRotate(180 * Math.atan((e.getY() - centerY)/(e.getX() - centerX()));
}```

1 Ответ

1 голос
/ 25 января 2020

Просто замените

Math.atan((e.getY() - centerY)/(e.getX() - centerX())

на

Math.atan2((e.getY() - centerY), (e.getX() - centerX())
...