Я уже знаю, как найти точку на окружности по углу. Код, который я использую для этого, приведен ниже.
x = Math.sin(Math.toRadians(angle)) * radius;
y = Math.cos(Math.toRadians(angle)) * radius;
Я пытаюсь отменить этот процесс.
Пока что у меня есть этот код, который полностью работает только для углов, меньших или равных 90 градусам.
DecimalFormat df = new DecimalFormat("###.####");
angleFromX = normalize(
Double.parseDouble(
df.format(
Math.toDegrees(
Math.asin(
(x / radius)
)
)
)
)
);
angleFromY = normalize(
Double.parseDouble(
df.format(
Math.toDegrees(
Math.acos(
(y / radius)
)
)
)
)
);
А вот метод normalize
, использованный выше.
public static double normalize(double angle) {
angle %= 360;
if (angle < 0) {
angle = angle + 360;
}
return angle;
}