## Untitled 6

### Corneel Cannaerts

Based on: Untitled 6 by Hans Korneder, 1978

Category: direct

Description:

//made during Processing Ghent Recode Workshop

//Corneel Cannaerts @introspect0r

This sketch is running in the browser.

```/*
Part of the ReCode Project (http://recodeproject.com)
Based on "Untitled 6" by Hans Korneder
Originally published in "Computer Graphics and Art" v3n2, 1978
*/

/* @pjs pauseOnBlur="true"; */

//made during Processing Ghent Recode Workshop
//Corneel Cannaerts  @introspect0r

int numX;
int numY;
int stepX;
int stepY;
float gridOffSet;
float cenOffSet;
ArrayList<Polygon> polygons;

void setup() {
size(740, 480);
stepX = 80;
stepY = 80;
numX = 8;
numY = 5;
gridOffSet = 20;
cenOffSet = 40;
initPolygons();
}

void draw() {
background(255);
stroke(0);
strokeWeight(2);
noFill();
for (Polygon p:polygons) {
p.render();
}
noLoop();
}

//initialize the polygons
void initPolygons() {
PVector[][] grid = new PVector[8][6];
polygons =  new ArrayList();
//make a distorted grid
for (int i=0; i<numX; i++) {
for (int j=0; j<numY; j++) {
}
}
//initialize the polygons and add to arraylist
for (int i=0; i<numX-1; i++) {
for (int j=0; j<numY-1; j++) {
Polygon temp = new Polygon(grid[i][j], grid[i+1][j], grid[i+1][j+1], grid[i][j+1]);
}
}
}

void mousePressed() {
initPolygons();
loop();
}

//simple polygon class
//stores coordinates and center
//renders offset
class Polygon {
PVector a, b, c, d, cen;
Polygon(PVector a, PVector b, PVector c, PVector d) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;

cen = a.get();
cen.mult(0.25);

//some centers offset downwards
if (random(1)<0.5) {
}
}

//draw ploygons
//we interpolate between coordinates and the center using lerp
void render() {
for (float i=0; i<1; i+=0.1) {
beginShape();
vertex(lerp(a.x, cen.x, i), lerp(a.y, cen.y, i));
vertex(lerp(b.x, cen.x, i), lerp(b.y, cen.y, i));
vertex(lerp(c.x, cen.x, i), lerp(c.y, cen.y, i));
vertex(lerp(d.x, cen.x, i), lerp(d.y, cen.y, i));
endShape(CLOSE);
println(i);
}
point(cen.x, cen.y);
}
}```