Не вдаваясь в реализацию Java Point, общая концепция очень проста.
Сначала вам нужно преобразовать все точки вашей фигуры так, чтобы центр вашей фигуры был (0,0).Например, если центр (Cx, Cy) и одна из ваших точек (Px, Py), то новая точка должна быть NewP = (Px - Cx, Py - Cy).Теперь после того, как все точки были преобразованы, вы должны сделать следующее для каждой из точек.Предполагая, что вы хотите повернуть на 90 градусов по часовой стрелке (проверьте ссылку ниже, чтобы узнать, как это сделать для других вращений): RotatedP = (-NewPy, NewPx)
После поворота вы должны преобразовать свои точки обратно в ихисходное местоположение: FinalP = (RotatedPx - NewPx, RotatedPy - NewPy).
Некоторый псевдокод:
Point p;
Center center;
Point relativePoint = p - center;
// For 90deg CW: -y, x
// For 90deg CC: y, -x
Point rotatedPoint = new Point(-1 * relativePoint.Y, relativePoint.X); // 90deg CW
Point finalPoint = rotatedPoint + center;
Просто прочитайте немного о преобразованиях и вращении, и это должно быть очень ясно дляВы: Повороты - Читать только первую часть (Повороты в двух измерениях)