Я делаю игровой движок на Java. Я пытаюсь добавить столкновение ящиков в свою игру, и этот ящик должен иметь возможность вращаться вместе с игроком. Я искал и нашел формулу, которая должна вычислять новую точку повернутой точки, однако, когда я поворачиваю свои точки, они, кажется, следуют странному непропорциональному пути фигуры 8 вместо круга вокруг центра моего ящика.
for (Point p : points) {
//Loops through every point on the box (Square)
//top, left, bottom, right
float pointX = p.getX();
float pointY = p.getY();
//rotation as radians
float cos = (float) Math.cos(rotation);
float sin = (float) Math.sin(rotation);
pointX = centerX +(pointX-centerX) * cos + (pointY-centerY) * sin;
pointY = centerY -(pointY-centerY) * cos + (pointX-centerX) * sin;
p.setPos(pointX, pointY);
}
Вот что происходит с коробкой, когда я поворачиваю свой плеер: https://gyazo.com/ff801ce8458269c2385e24b2dc5404f5
Любая помощь будет принята с благодарностью, я занимаюсь этим уже почти неделю с теми же результатами.