Rotating rects around a circle perimeter pointing to the center

Hello,
I want to achieve something like this but I have no idea how. I checked almost every example, on the application and on the website, checked libraries, googled, but still, I didn’t manage to find a solution (sorry if I didn’t see something similar for processing already existing). I don’t know how to write this code written in p5.js for processing. Any help would be really appreciated. Thanks in advance! :blush:

1 Like

Sample code:

void setup(){
  size(400,400);
  rectMode(CENTER);
}

void draw(){
  background(0);
  noStroke();
  fill(0,200,0);
  translate(width/2, height/2);
  for( int i = 0; i < 20; i++){
    rect( 150, 0, 40, 10 );
    rotate( TWO_PI / 20.0 );
  }
}
2 Likes

so the example is in p5.js,
but you want play

processing IDE 3.5.3 JAVA mode?

and need a translation?

translate( width/2,height/2);
fill(200,0,0);
for ( int i =0; i<30; i++ ) {
  rotate(TWO_PI/30.0);
  rect ( 30,0,10,2);
}

SNAG-0051

pls understand how rotation works in processing

  • first move to center with translate
  • rotate ( 0 ) starts right side
  • rotate ( dalpha ) is clockwise.
2 Likes

Thanks for the replies so far. However I can’t rotate them without having them overlapping.

float x=TWO_PI/30;
void draw() {
  x+=.0001;
  background(0);
  translate(width/2, height/2);
  fill(200, 0, 0);
  for (int i =0; i<30; i++ ) {
    rotate(x);
    rect (30, 0, 10, 2);
  }
}

1 Like

disable that line and try again

I mean, I can’t animate them to move around…

i go in a total other way,
but ok, even can rotate this:

float many = 60;
float x=TWO_PI/many;
float ang = 0, dang= 0.01;

void setup() {
  size(200, 200); 
  noStroke();
  fill(200, 0, 0);
  textSize(10);
  rectMode(CENTER);
}

void draw() {
  background(200, 200, 0);
  translate(width/2, height/2);
  rotate(-PI/2.0+ang);
  ang += dang;   
  show_sec();
}

void show_sec() {
  for (int i =0; i<many; i++ ) {
    rect (75, 0, 10, 5);
    if ( i%5 == 0) { 
      text(i, 87, 5);
      strokeWeight(0.1);
      stroke(0);
      line(0, 0, 70, 0);
      noStroke();
    }
    rotate(x);
  }
}

1 Like

Thank you! :slight_smile: