Java: повернуть точку вокруг другого на указанное значение степени

Я пытаюсь повернуть 2D-точку в java вокруг другой с заданным значением градуса, в этом случае просто вокруг точки (0, 0) на 90 градусов.

Метод:

public void rotateAround(Point center, double angle) {
    x = center.x + (Math.cos(Math.toRadians(angle)) * (x - center.x) - Math.sin(Math.toRadians(angle)) * (y - center.y));
    y = center.y + (Math.sin(Math.toRadians(angle)) * (x - center.x) + Math.cos(Math.toRadians(angle)) * (y - center.y));
}

Ожидается для (3, 0): X = 0, Y = -3

Возвращено для (3, 0): X = 1,8369701987210297E-16, Y = 1,8369701987210297E-16

Ожидается для (0, -10): X = -10, Y = 0

Возвращается для (0, -10): X = 10,0, Y = 10,0

Что-то не так с самим методом? Я портировал функцию из(Вращение точки в 2D в Lua - GPWiki) на Яву.

РЕДАКТИРОВАТЬ:

Сделал несколько тестов производительности. Я бы так не думал, но векторное решение победило, поэтому я воспользуюсь этим.

Ответы на вопрос(2)

Ваш ответ на вопрос