processing如何多图形绕各自中心旋转。

图片说明
就是做出这种效果,主要就是我的旋转是绕画布上某一个点旋转,而不是各自绕其中心旋转,怎么破,求解。

int num = 50;
float r;
Rect[] re = new Rect[num];
void setup(){  
  size(800, 600);
  rectMode(CENTER);
  for (int i =0; i<num; i++) {
    re[i] = new Rect(random(width),random(height), random(10, 80), random(45, 91));   
  }
}
void draw() {
  background(255);
  translate(width/2,height/2);
  frameRate(5);
  for (int i =0; i<num; i++) {
    re[i].display();
    re[i].change();
    re[i].move();    
 }
}
class Rect {
  float x, y, diameter, angle;
  Rect(float a, float b, float c, float r) {
    x= a;
    y= b;
    diameter = c;
    angle = r;
  }  
  void display() {
    stroke(0);
    fill(50, 90);
    rect(x, y, diameter, diameter);
  }
  void move() {
    if (diameter<80) {
      diameter+=10;
    } else {
      diameter = 30;
    }
  }
  void change() {
    if (r <90) {
      r++;
    } else {
      r = 45;
    }
    rotate(radians(r));    
  }
}

https://blog.csdn.net/qq_39097425/article/details/84980717

请问该如何让图形围绕自身中心旋转