xxxxxxxxxx
151
var canvas = null;
var countX, countY;
var sizeX, sizeY;
var rand;
var dots = null;
var STEPS = 12;
var outlineStroke, outlineStrokeWght;
function init() {
dots = [];
outlineStroke = Math.random()>.5 ? 255 : 0;
outlineStrokeWght = Math.random();
countX = Math.ceil(windowWidth/200) * 4 * Math.floor(random(1, 5));
countY = Math.ceil(windowHeight/200) * 4 * Math.floor(random(1, 5));
strokeWght = Math.ceil(Math.random()*18);
rand = Math.ceil( 200/countX*Math.random() + 40);
strokeWeight(strokeWght);
sizeX = windowWidth/(countX-1);
sizeY = windowHeight/(countY-1);
for(var i=0; i<countX; i++) {
var list = [];
for(var j=0; j<countY; j++) {
var x = (i==0||i==(countX-1)) ? i*sizeX : (Math.random()-.5)*rand + i*sizeX;
var y = (j==0||j==(countY-1)) ? j*sizeY : (Math.random()-.5)*rand + j*sizeY;
list.push(createVector(x,y));
}
dots.push(list);
}
}
function keyPressed() {
var k = key.toLowerCase();
switch(k) {
case 's':
saveCanvas(canvas, 'canvas.jpg');
break;
}
}
function setup() {
canvas = createCanvas(windowWidth, windowHeight);
init();
background(255);
stroke(0);
strokeWeight(1);
noFill();
noLoop();
}
function draw() {
background(255);
for(var i=0; i<countY; i++) {
var cnt = countX / 4;
for(var j=0; j<cnt; j++) {
var p1 = dots[j*4][i];
var p2 = dots[j*4+1][i];
var p3 = dots[j*4+2][i];
var p4 = dots[j*4+3][i];
var p00 = null;
var p0 = null;
if(j>0) {
p00 = dots[j*4-2][i];
p0 = dots[j*4-1][i];
}
if(i>0) {
var pp1 = dots[j*4][i-1];
var pp2 = dots[j*4+1][i-1];
var pp3 = dots[j*4+2][i-1];
var pp4 = dots[j*4+3][i-1];
var pp00 = null;
var pp0 = null;
if(j>0) {
pp00 = dots[j*4-2][i-1];
pp0 = dots[j*4-1][i-1];
}
// var weight = Math.ceil(Math.random()*2);
stroke(30);
strokeCap(PROJECT);
strokeWeight(.5);
drawVerticalLines(p00, p0, p1, p2, p3, p4, pp00, pp0, pp1, pp2, pp3, pp4);
}
}
}
strokeWeight(outlineStrokeWght);
stroke(outlineStroke);
strokeCap(ROUND);
for(var i=0; i<countY; i++) {
var cnt = countX / 4;
for(var j=0; j<cnt; j++) {
var p1 = dots[j*4][i];
var p2 = dots[j*4+1][i];
var p3 = dots[j*4+2][i];
var p4 = dots[j*4+3][i];
var p00 = null;
var p0 = null;
if(j>0) {
p00 = dots[j*4-2][i];
p0 = dots[j*4-1][i];
}
drawCurve(p00, p0, p1, p2, p3, p4);
}
}
}
function drawVerticalLines(p00, p0, p1, p2, p3, p4, pp00, pp0, pp1, pp2, pp3, pp4) {
var steps = Math.random() * 20 + 10;
for (var k = 0; k <= steps; k++) {
var t = k / steps;
var x1 = curvePoint(p1.x, p1.x, p2.x, p3.x, t);
var y1 = curvePoint(p1.y, p1.y, p2.y, p3.y, t);
var x2 = curvePoint(pp1.x, pp1.x, pp2.x, pp3.x, t);
var y2 = curvePoint(pp1.y, pp1.y, pp2.y, pp3.y, t);
line(x1, y1, x2, y2);
var x1 = curvePoint(p1.x, p2.x, p3.x, p4.x, t);
var y1 = curvePoint(p1.y, p2.y, p3.y, p4.y, t);
var x2 = curvePoint(pp1.x, pp2.x, pp3.x, pp4.x, t);
var y2 = curvePoint(pp1.y, pp2.y, pp3.y, pp4.y, t);
line(x1, y1, x2, y2);
var x1 = curvePoint(p2.x, p3.x, p4.x, p4.x, t);
var y1 = curvePoint(p2.y, p3.y, p4.y, p4.y, t);
var x2 = curvePoint(pp2.x, pp3.x, pp4.x, pp4.x, t);
var y2 = curvePoint(pp2.y, pp3.y, pp4.y, pp4.y, t);
line(x1, y1, x2, y2);
if(p00) {
var x1 = curvePoint(p00.x, p0.x, p1.x, p2.x, t);
var y1 = curvePoint(p00.y, p0.y, p1.y, p2.y, t);
var x2 = curvePoint(pp00.x, pp0.x, pp1.x, pp2.x, t);
var y2 = curvePoint(pp00.y, pp0.y, pp1.y, pp2.y, t);
line(x1, y1, x2, y2);
}
}
}
function drawCurve(p00, p0, p1, p2, p3, p4) {
if(p00!=null) {
curve(p00.x,p00.y,p0.x,p0.y,p1.x,p1.y,p2.x,p2.y);
}
curve(p1.x,p1.y,p1.x,p1.y,p2.x,p2.y,p3.x,p3.y);
curve(p1.x,p1.y,p2.x,p2.y,p3.x,p3.y,p4.x,p4.y);
curve(p2.x,p2.y,p3.x,p3.y,p4.x,p4.y,p4.x,p4.y);
}