Вращение 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;
  }

}

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

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