//James Katungyi
//Section A 0900
//jkatungy@andrew.cmu.edu
//Assignment-Project-09
var me;
//declare first point of hatchline
var xLoc;
var yLoc;
//declare brushtip size
var brushtip;
//preload image
function preload(){
me = loadImage("http://i.imgur.com/o3DFass.jpg");
}
function setup(){
createCanvas(400, 400);
background(135, 206, 250);//sky blue background
//scale the image to fit canvas width; maintain aspect ratio
me.loadPixels(); //load image pixels
}
function draw(){
//image(me, 0, 0);
var brushLength = random(10, 30);//hatch length
//second point of hatch line
var x2Loc = xLoc + brushLength;
var y2Loc = yLoc + brushLength;
//locate middle of hatch
var midXLoc = (xLoc + x2Loc) / 2;
var midYLoc = (yLoc + y2Loc) / 2;
//pick image pixel at middle of hatch
var pickCol = me.get(midXLoc, midYLoc);
//use picked pixel color for hatch
stroke(pickCol);
strokeWeight(brushtip);
//draw hatch
line(xLoc, yLoc, x2Loc, y2Loc);
line(x2Loc, yLoc, xLoc, y2Loc);
//touch up the painting with the mouse
//when mouse is in the canvas, detail image aspects
if ((mouseX > 0) & (mouseX < width) &&
(mouseY > 0) && (mouseY < height)){
xLoc = mouseX;
yLoc = mouseY;
brushtip = 2; //smaller brushtip for fine finishing
} else {//when mouse is outside canvas draw faster with larger strokes
xLoc = random(width);
yLoc = random(height);
brushtip = 5; //larger brushtip to fill up canvas
}
}
The canvas quickly fills up with color and form except when the artist focuses the drawing pencil on one aspect or other.