ArtRotating Shapes

Preview image for Rotating Shapes

rotating_shapes.pde

int num_points = 3;
float rotation_angle = 0.0;
float rotate_angle_per_frame = 3.0;
float radius = 240;

void setup() {
	size(600, 600, P3D);
}

void draw() {
	background(10);
	
	translate((width / 2), (height / 2));
	
	rotateY(radians(-90));
	rotateY(radians(-rotation_angle));
	
	fill(color(255, 0, 0));
	noStroke();
	beginShape();
	
	float angle_per_point = (360.0 / (float)num_points);
	
	for(int pt = 1; pt <= num_points; pt++) {
		float angle = (angle_per_point * pt);
		
		float x = (cos(radians(-90 + angle)) * radius);
		float y = (sin(radians(-90 + angle)) * radius);
		
		vertex(x, y, 1);
	}
	
	endShape();
	
	rotation_angle += rotate_angle_per_frame;
	
	if(rotation_angle >= 180) {
		rotation_angle = 0;
		num_points++;
	}
	
	if(frameCount == 50) { save("preview.png"); }
}
pyxol © 2023
built with React + Next.js