ArtTriangle Morph

Preview image for Triangle Morph

triangle_morph.pde

float tri_size = 600;
int num_tris = 1;
float aa = 0.0;
float aa_inc = 1.0;
float aa_step = 60.0;

void setup() {
	size(640, 640);
	colorMode(HSB, 100);
	
	//num_tris = 17;
}

void draw() {
	background(10);
	
	float ow = tri_size;
	float oh = abs((sin(radians(-60)) * ow));
	
	float w = (tri_size / float(num_tris));
	float h = (oh / float(num_tris));
	
	PVector pos = new PVector(0.0, 0.0);
	
	pos.x += (width / 2);
	pos.y += ((height / 2) - (oh / 2));
	
	float step_ratio = ((aa % aa_step) / aa_step);
	
	for(int i = 1; i <= num_tris; i++) {
		PVector tri_pos = new PVector();
		tri_pos = pos.copy();
		
		for(int j = 0; j < i; j++) {
			beginShape();
			
			noStroke();
			fill(100);
			
			vertex(tri_pos.x, tri_pos.y);
			vertex(tri_pos.x - (w / 2), (tri_pos.y + h));
			vertex(tri_pos.x + (w / 2), (tri_pos.y + h));
			
			endShape(CLOSE);
			
			tri_pos.add(w, 0);
		}
		
		pos.add((w * -0.5), h);
	}
	
	aa += aa_inc;
	
	if(aa >= aa_step) {
		aa = 0.0;
		num_tris++;
		aa_step *= 0.9;
	}
	
	if(frameCount == 150) { save("preview.png"); }
}
pyxol © 2023
built with React + Next.js