import processing.pdf.*; float inner_r; float outer_r; PVector[] inner_p; PVector[] outer_p; int steps = 3; int alpha = 200; PGraphics g; void setup() { size(600, 600); g = createGraphics(width, height); redraw(); // noLoop(); // beginRecord(PDF, "shirt_round"+(int)random(10000)+".pdf"); } void redraw() { inner_r = width*0.25; outer_r = width*0.4; int inc = floor(360/steps); inner_p = new PVector[360/inc]; outer_p = new PVector[360/inc]; int index = 0; for (int i = 0; i < 360; i += inc) { float r1 = random(-width*0.015, width*0.015); float r2 = random(-width*0.1, width*0.1); inner_p[index] = new PVector(sin(radians(i))*inner_r+r1, cos(radians(i))*inner_r+r1); outer_p[index] = new PVector(sin(radians(i))*outer_r+r2, cos(radians(i))*outer_r+r2); index++; } } void draw() { background(255); translate(width*0.5, height*0.5); strokeCap(SQUARE); //fill(0); //beginShape(); for (int i = 0; i < inner_p.length; i++) { for (int j = 0; j < inner_p.length; j++) { // int k = (int)random(outer_p.length); strokeWeight(1); stroke(0, alpha*1.5); // if (random(1) > .992) rotate(millis()*0.0000001); line(inner_p[i].x, inner_p[i].y, outer_p[j].x+sin(i+millis()*0.001)*100, outer_p[j].y+cos(j+millis()*0.01)*100); // if (random(1) > .995) rotate(millis()*.000001); // line(inner_p[i].x, inner_p[i].y, inner_p[j].x, inner_p[j].y); // line(inner_p[i].x, inner_p[i].y, outer_p[j].x, outer_p[j].y); line(inner_p[i].x, inner_p[i].y, outer_p[j].x+random(10), outer_p[i].y); strokeWeight(1); stroke(0, 0); // if (i == 0) // line(inner_p[inner_p.length-1].x, inner_p[inner_p.length-1].y, inner_p[i].x, inner_p[i].y); // else // line(inner_p[i-1].x, inner_p[i-1].y, inner_p[i].x, inner_p[i].y); //vertex(inner_p[i].x, inner_p[i].y); } } //endShape(CLOSE); // endRecord(); } void keyPressed() { if (key == 'r') redraw(); if (key == 's') setup(); }