|
var main_canvas; |
|
|
|
var canvasWidth = 960; |
|
var canvasHeight = 500; |
|
|
|
var canvasWidth = 960; |
|
var canvasHeight = 500; |
|
|
|
function setup () { |
|
// create the drawing canvas, save the canvas element |
|
main_canvas = createCanvas(canvasWidth, canvasHeight); |
|
|
|
// rotation in degrees (more slider friendly) |
|
angleMode(DEGREES); |
|
|
|
curRandomSeed = int(focusedRandom(0, 1000)); |
|
|
|
// position each element on the page |
|
main_canvas.parent('canvasContainer'); |
|
} |
|
|
|
function changeRandomSeed() { |
|
curRandomSeed = curRandomSeed + 1; |
|
} |
|
|
|
var colorFront = [151, 102, 52]; |
|
var colorBack = [225, 206, 187]; |
|
|
|
function drawFace(x, y, w, h, tilt_value, eye_value, mouth_value) { |
|
resetMatrix(); |
|
translate(x, y); |
|
rotate(tilt_value); |
|
|
|
var extent = 0; |
|
if(h < w) { |
|
extent = h / 2; |
|
} |
|
else { |
|
extent = w / 2; |
|
} |
|
var scale = extent / 220.0; |
|
|
|
fill(colorFront); |
|
ellipse(0, 0, 300 * scale, 400 * scale); |
|
|
|
// eyes |
|
if (eye_value === 1 || eye_value == 3) { |
|
fill(colorBack); |
|
ellipse( 0, -80 * scale, 50 * scale, 30 * scale); |
|
fill(colorFront); |
|
ellipse(-10 * scale, -80 * scale, 20 * scale, 20 * scale); |
|
} |
|
|
|
if (eye_value >= 2) { |
|
fill(colorBack); |
|
ellipse(-50 * scale, -80 * scale, 50 * scale, 30 * scale); |
|
ellipse( 50 * scale, -80 * scale, 50 * scale, 30 * scale); |
|
|
|
fill(colorFront); |
|
ellipse(-60 * scale, -80 * scale, 20 * scale, 20 * scale); |
|
ellipse( 40 * scale, -80 * scale, 20 * scale, 20 * scale); |
|
} |
|
|
|
// mouth |
|
fill(colorBack); |
|
ellipse(0 * scale, 70 * scale, 150 * scale, mouth_value * scale); |
|
} |
|
|
|
function getRandomNumberOfEyes() { |
|
random_result = focusedRandom(0, 100); |
|
if(random_result < 8) { |
|
return 1; |
|
} |
|
else if(random_result > 96) { |
|
return 3; |
|
} |
|
else { |
|
return 2; |
|
} |
|
} |
|
|
|
var lastSwapTime = 0; |
|
var millisPerSwap = 2000; |
|
|
|
function draw () { |
|
var millisNow = millis(); |
|
if(millisNow > lastSwapTime + millisPerSwap) { |
|
changeRandomSeed(); |
|
lastSwapTime = millisNow; |
|
} |
|
|
|
background(colorBack); |
|
fill(colorFront); |
|
stroke(95, 52, 8) |
|
|
|
resetFocusedRandom(curRandomSeed); |
|
|
|
var w = canvasWidth / 5; |
|
var h = canvasHeight / 3; |
|
for(var i=0; i<3; i++) { |
|
for(var j=0; j<5; j++) { |
|
var y = h/2 + h*i; |
|
var x = w/2 + w*j; |
|
tilt_value = focusedRandom(-70, 90, 12); |
|
eye_value = getRandomNumberOfEyes(); |
|
mouth_value = focusedRandom(0, 50, 4, 1); |
|
drawFace(x, y, w, h, tilt_value, eye_value, mouth_value); |
|
} |
|
} |
|
} |
|
|
|
function keyTyped() { |
|
if (key == '!') { |
|
saveBlocksImages(); |
|
} |
|
else if (key == '@') { |
|
saveBlocksImages(true); |
|
} |
|
} |