xxxxxxxxxx
var sz = 900;
function setup() {
createCanvas(sz, sz);
buf = createGraphics(sz, sz);
noLoop();
}
function randomFill() {
fillWith(random(192));
}
function fillWith(b) {
fill(random(255), 255, 255-b, b);
//colorMode(HSB, 255);
//fill(random(255), 255, 128);
}
function doTriangle() {
var xc = randomGaussian(sz * .5, sz * .25);
var yc = randomGaussian(sz * .5, sz * .25);
var x1 = randomGaussian(xc, sz * .2);
var y1 = randomGaussian(yc, sz * .2);
var x2 = randomGaussian(xc + sz * .2, sz * .2);
var y2 = randomGaussian(yc, sz * .06);
var x3 = randomGaussian(xc - sz * .2, sz * .2);
var y3 = randomGaussian(yc, sz * .06);
randomFill();
triangle(x1, y1, x2, y2, x3, y3);
}
function doSwirl() {
var eps = .1;
var q = random(2. * Math.PI);
var dq = randomGaussian();
var x = sz * .5;
var y = sz * .5;
var ims = random(44);
var imax = ims * ims;
for(var i=0; i<imax; i++) {
var g = randomGaussian();
dq += eps * g - .01 * dq * dq * dq;
q += eps * dq;
var newx = x + 3 * cos(q);
var newy = y + 3 * sin(q);
strokeWeight(Math.min(5,Math.max(2,5*Math.abs(dq))));
line(x, y, newx, newy);
x = newx;
y = newy;
}
}
function doCircle() {
var xc = random(sz);
var yc = random(sz);
var l = [];
var imax = random(1.5, 5.5);
for(var i=0; i<imax; i++) {
let r = -log(random());
l.push([-random(192), sz * r * .05]);
}
l.sort();
for(var i=0; i<imax; i++) {
fillWith(-l[i][0]);
circle(xc, yc, l[i][1]);
}
}
function doPar() {
var vx = randomGaussian(sz * .5, sz);
var vy = randomGaussian(sz * .5, sz);
}
function draw() {
colorMode(HSB, 255);
for(var i=0; i<5; i++) {
doTriangle();
}
for(var i=0; i<5; i++) {
doCircle();
}
for(var i=0; i<5; i++) {
doSwirl();
}
}