xxxxxxxxxx
315
var options = [
"VIOLET",
"RISOFEDERALBLUE",
"FLUORESCENTORANGE",
"YELLOW",
]
var colors = [];
var ink1, ink2;
function setup() {
pixelDensity(3);
c = createCanvas(windowHeight * .8, windowHeight * .8); // Create SVG Canvas
noLoop();
ink1 = round(random(0,options.length-1));
console.log(options[ink1]);
ink2 = round(random(0,options.length-1));
console.log(options[ink2]);
colors = [
new Riso(options[ink1]),
new Riso(options[ink2])];
}
var start, end, side, center;
function draw() {
start = 0;
end = width;
side = end-start;
center = start + (side / 2);
jokagbo(180, 180, start, start, end, end);
drawRiso();
// exportRiso();
}
function mousePressed() {
ink1 = round(random(0,options.length-1));
console.log(options[ink1]);
ink2 = round(random(0,options.length-1));
console.log(options[ink2]);
colors = [
new Riso(options[ink1]),
new Riso(options[ink2])];
clearRiso();
background(255);
jokagbo(180, 180, start, start, end, end);
drawRiso();
}
// recursion happens in here
function jokagbo(stopW, stopH, minX, minY, maxX, maxY) {
var w = maxX - minX;
var h = maxY-minY;
if (w > stopW && h > stopH) {
var centerX = random(minX+(w*.25), maxX-(w*.25));
var centerY = random(minY + (h*.25), maxY-(h*.25));
//fourQuads(minX, minY, centerX, centerY, maxX, maxY);
jokagbo(stopW, stopH, minX, minY, centerX, centerY); // NW
jokagbo(stopW, stopH, centerX, minY, maxX, centerY); // NE
jokagbo(stopW, stopH, minX, centerY, centerX, maxY); // SW
jokagbo(stopW, stopH, centerX, centerY, maxX, maxY); // SE
} else {
var centerX = random(minX+(w*.25), maxX-(w*.25));
var centerY = random(minY + (h*.25), maxY-(h*.25));
fourQuads(minX, minY, centerX, centerY, maxX, maxY);
}
}
function setColors() {
if (flipCoin()) {
colors[0].noFill();
colors[0].stroke(255);
colors[0].strokeWeight(2);
colors[1].stroke(random(100,200))
colors[1].fill(random(100));
} else {
colors[1].noFill();
colors[1].stroke(255);
colors[1].strokeWeight(2);
colors[0].stroke(random(100,200))
colors[0].fill(random(100));
}
}
function fourQuads(sX, sY, cX, cY, eX, eY) {
setColors();
if ((cX-sX) < 80 && (cY-sY) < 80) {
colors[deck()].quad(sX, sY, cX, sY, cX, cY, sX, cY) // NW
colors[deck()].quad(sX, sY, cX, sY, cX, cY, sX, cY) // NW
} else if (flipCoin()) {
if ((cX-sX) > (cY-sY)) { // wide
var offset = (cX - sX)*.33;
var slant1 = random(sX + offset, cX - offset);
var slant2 = random(sX + offset, cX - offset);
//colors[0].fill(100);
colors[deck()].quad(sX, sY, slant1, sY, slant2, cY, sX, cY) // NW
colors[deck()].quad(slant1, sY, cX, sY, cX, cY, slant2, cY) // NW
colors[deck()].quad(sX, sY, slant1, sY, slant2, cY, sX, cY) // NW
colors[deck()].quad(slant1, sY, cX, sY, cX, cY, slant2, cY) // NW
} else if ((cX-sX) < (cY-sY)) { // tall
var offset = (cY - sY)*.33;
var slant1 = random(sY + offset, cY - offset);
var slant2 = random(sY + offset, cY - offset);
colors[deck()].fill(100);
colors[deck()].quad(sX, sY, cX, sY, cX, slant1, sX, slant2) // NW
colors[deck()].quad(sX, slant2, cX, slant1, cX, cY, sX, cY) // NW
colors[deck()].quad(sX, sY, cX, sY, cX, slant1, sX, slant2) // NW
colors[deck()].quad(sX, slant2, cX, slant1, cX, cY, sX, cY) // NW
}
} else { // straight
if ((cX-sX) > (cY-sY)) { // wide
var mid = sX + (cX - sX)/2;
colors[deck()].quad(sX, sY, mid, sY, mid, cY, sX, cY) // NW
colors[deck()].quad(mid, sY, cX, sY, cX, cY, mid, cY) // NW
colors[deck()].quad(sX, sY, mid, sY, mid, cY, sX, cY) // NW
colors[deck()].quad(mid, sY, cX, sY, cX, cY, mid, cY) // NW
} else if ((cX-sX) < (cY-sY)) { // tall
var mid = sY + (cY - sY)/2;
colors[deck()].quad(sX, sY, cX, sY, cX, mid, sX, mid) // NW
colors[deck()].quad(sX, mid, cX, mid, cX, cY, sX, cY) // NW
colors[deck()].quad(sX, sY, cX, sY, cX, mid, sX, mid) // NW
colors[deck()].quad(sX, mid, cX, mid, cX, cY, sX, cY) // NW
}
}
if ((cX- sX) < 80 && (eY-cY) < 80) {
//colors[1].fill(255);
colors[deck()].quad(sX, cY, cX, cY, cX, eY, sX, eY) // SW
colors[deck()].quad(sX, cY, cX, cY, cX, eY, sX, eY) // SW
} else if (flipCoin()) {
if ((cX- sX) > (eY-cY) ) { // wide
var offset = (cX - sX)*.33;
var slant1 = random(sX + offset, cX - offset);
var slant2 = random(sX + offset, cX - offset);
colors[deck()].quad(sX, cY, slant1, cY, slant2, eY, sX, eY) // SW
colors[deck()].quad(slant1, cY, cX, cY, cX, eY, slant2, eY) // SW
colors[deck()].quad(sX, cY, slant1, cY, slant2, eY, sX, eY) // SW
colors[deck()].quad(slant1, cY, cX, cY, cX, eY, slant2, eY) // SW
} else if ((cX- sX) < (eY-cY)) { // tall
var offset = (eY-cY)*.33;
var slant1 = random(cY + offset, eY - offset);
var slant2 = random(cY + offset, eY - offset);
colors[deck()].quad(sX, cY, cX, cY, cX, slant1, sX, slant2) // SW
colors[deck()].quad(sX, slant2, cX, slant1, cX, eY, sX, eY) // SW
colors[deck()].quad(sX, cY, cX, cY, cX, slant1, sX, slant2) // SW
colors[deck()].quad(sX, slant2, cX, slant1, cX, eY, sX, eY) // SW
}
} else { // straight
if ((cX- sX) > (eY-cY) ) { // wide
var mid = sX + (cX - sX)/2;
colors[deck()].quad(sX, cY, mid, cY, mid, eY, sX, eY) // SW
colors[deck()].quad(mid, cY, cX, cY, cX, eY, mid, eY) // SW
colors[deck()].quad(sX, cY, mid, cY, mid, eY, sX, eY) // SW
colors[deck()].quad(mid, cY, cX, cY, cX, eY, mid, eY) // SW
} else if ((cX- sX) < (eY-cY)) { // tall
var mid = cY + (eY-cY)/2;
colors[deck()].quad(sX, cY, cX, cY, cX, mid, sX, mid) // SW
colors[deck()].quad(sX, mid, cX, mid, cX, eY, sX, eY) // SW
colors[deck()].quad(sX, cY, cX, cY, cX, mid, sX, mid) // SW
colors[deck()].quad(sX, mid, cX, mid, cX, eY, sX, eY) // SW
}
}
if ((eX - cX) < 60 && (cY-sY) < 60) {
// colors[2].fill(255);
colors[deck()].quad(cX, sY, eX, sY, eX, cY, cX, cY) // NE
colors[deck()].quad(cX, sY, eX, sY, eX, cY, cX, cY) // NE
} else if (flipCoin()) {
if ((eX - cX) > (cY-sY)) { // wide
var offset = (eX - cX)*.33;
var slant1 = random(cX + offset, eX - offset);
var slant2 = random(cX + offset, eX - offset);
colors[deck()].quad(cX, sY, slant1, sY, slant2, cY, cX, cY) // NE
colors[deck()].quad(slant1, sY, eX, sY, eX, cY, slant2, cY) // NE
colors[deck()].quad(cX, sY, slant1, sY, slant2, cY, cX, cY) // NE
colors[deck()].quad(slant1, sY, eX, sY, eX, cY, slant2, cY) // NE
} else if ((eX - cX) < (cY-sY)) { // tall
var offset = (cY-sY)*.33;
var slant1 = random(sY + offset, cY - offset);
var slant2 = random(sY + offset, cY - offset);
colors[deck()].quad(cX, sY, eX, sY, eX, slant1, cX, slant2) // NE
colors[deck()].quad(cX, slant2, eX, slant1, eX, cY, cX, cY) // NE
colors[deck()].quad(cX, sY, eX, sY, eX, slant1, cX, slant2) // NE
colors[deck()].quad(cX, slant2, eX, slant1, eX, cY, cX, cY) // NE
}
} else { // straight
if ((eX - cX) > (cY-sY)) { // wide
var mid = cX + (eX - cX)/2;
colors[deck()].quad(cX, sY, mid, sY, mid, cY, cX, cY) // NE
colors[deck()].quad(mid, sY, eX, sY, eX, cY, mid, cY) // NE
colors[deck()].quad(cX, sY, mid, sY, mid, cY, cX, cY) // NE
colors[deck()].quad(mid, sY, eX, sY, eX, cY, mid, cY) // NE
} else if ((eX - cX) < (cY-sY)) { // tall
var mid = sY + (cY-sY)/2;
colors[deck()].quad(cX, sY, eX, sY, eX, mid, cX, mid) // NE
colors[deck()].quad(cX, mid, eX, mid, eX, cY, cX, cY) // NE
colors[deck()].quad(cX, sY, eX, sY, eX, mid, cX, mid) // NE
colors[deck()].quad(cX, mid, eX, mid, eX, cY, cX, cY) // NE
}
}
if ((eX-cX) < 60 && (eY-cY) < 60) {
// colors[3].fill(255);
colors[deck()].quad(cX, cY, eX, cY, eX, eY, cX, eY) // SE
colors[deck()].quad(cX, cY, eX, cY, eX, eY, cX, eY) // SE
} else if (flipCoin()) {
if ((eX-cX) > (eY-cY)) { // wide
var offset = (eX - cX)*.33;
var slant1 = random(cX + offset, eX - offset);
var slant2 = random(cX + offset, eX - offset);
colors[deck()].quad(cX, cY, slant1, cY, slant2, eY, cX, eY) // SE
colors[deck()].quad(slant1, cY, eX, cY, eX, eY, slant2, eY) // SE
colors[deck()].quad(cX, cY, slant1, cY, slant2, eY, cX, eY) // SE
colors[deck()].quad(slant1, cY, eX, cY, eX, eY, slant2, eY) // SE
} else if ((eX-cX) < (eY-cY)) { // tall
var offset = (eY-cY)*.33;
var slant1 = random(cY + offset, eY - offset);
var slant2 = random(cY + offset, eY - offset);
colors[deck()].quad(cX, cY, eX, cY, eX, slant1, cX, slant2) // SE
colors[deck()].quad(cX, slant2, eX, slant1, eX, eY, cX, eY) // SE
colors[deck()].quad(cX, cY, eX, cY, eX, slant1, cX, slant2) // SE
colors[deck()].quad(cX, slant2, eX, slant1, eX, eY, cX, eY) // SE
}
} else { // straight
if ((eX-cX) > (eY-cY)) { // wide
var mid = cX + (eX - cX)/2;
colors[deck()].quad(cX, cY, mid, cY, mid, eY, cX, eY) // SE
colors[deck()].quad(mid, cY, eX, cY, eX, eY, mid, eY) // SE
colors[deck()].quad(cX, cY, mid, cY, mid, eY, cX, eY) // SE
colors[deck()].quad(mid, cY, eX, cY, eX, eY, mid, eY) // SE
} else if ((eX-cX) < (eY-cY)) { // tall
var dist = (eY-cY)
var mid = cY + (eY-cY)/2;
colors[deck()].quad(cX, cY, eX, cY, eX, mid, cX, mid) // SE
colors[deck()].quad(cX, mid, eX, mid, eX, eY, cX, eY) // SE
colors[deck()].quad(cX, cY, eX, cY, eX, mid, cX, mid) // SE
colors[deck()].quad(cX, mid, eX, mid, eX, eY, cX, eY) // SE
}
}
/* test: basic 4 quadrants
quad(sX, sY, cX, sY, cX, cY, sX, cY) // NW
quad(sX, cY, cX, cY, cX, eY, sX, eY) // SW
quad(cX, cY, eX, cY, eX, eY, cX, eY) // SE
quad(cX, sY, eX, sY, eX, cY, cX, cY) // NE
*/
}
function deck() {
var randomno = round(random(0,1));
// console.log(options[randomno]);
return randomno;
}
function keyPressed() {
if (keyCode == 32) {
exportRiso();
var today = "_02-20_"
var h = hour();
var m = minute();
var s = second();
var filename = "BRIGHTRED".toLowerCase()
+ "-" + options[ink2].toLowerCase()
+ "-" + today + h + "-" + m + "-" + s;
saveCanvas(c, filename, 'png');
}
}
function flipCoin() {
var tails = round(random(0,1));
//console.log(tails)
if(tails == 0){
return true;
} else {
return false;
}
}