Вращение 2D-графики Java вокруг указанной точки
Я пытаюсь написать программу, которая будет рисовать несколько фигур, повернутых вокруг центральной точки. Результат должен быть чем-то вроде спирографа. Я пытаюсь проверить это с помощью прямоугольников, но я могу только два из них появиться в окне. Один из них находится там, где он должен быть, но затем после первого поворота он выбрасывает другой квадрат вверх в левом верхнем углу окна. Его следует вращать и рисовать вокруг центральной точки. Вот часть моего кода.
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.JPanel;
public class Shapes extends JPanel
{
private double angle;
private int type;
private int radius;
private int repeats;
public Shapes(int t, int r, int z)
{
type = t;
radius = r;
repeats = z;
angle = 360 / repeats;
}
public void paintComponent( Graphics g )
{
super.paintComponent( g );
Graphics2D g2d = (Graphics2D)g;
g.setColor(Color.red);
int centerX = getWidth()/2;
int centerY = getHeight()/2;
double curAngle = 0;
for(int i=0; i<=repeats; i+=1)
{
g.setColor(Color.blue);
Rectangle tangle = new Rectangle(0, 0, radius, radius);
g2d.rotate(Math.toRadians(curAngle));
g2d.translate(centerX, centerY);
g2d.draw(tangle);
curAngle += angle;
}
}