xxxxxxxxxx
61
function setup() {
createCanvas(800, 800, SVG);
// noLoop();
}
// version 3
const array = [];
var lastP = {
x : -1,
y : -1
};
function draw() {
noFill();
background(255, 200, 200);
var p = {
x : mouseX,
y : mouseY
};
if (lastP != p) {
array.push(p);
}
lastP = p;
if (array.length > 100) {
array.shift();
}
// for (var k = 0; k < 100; k++) {
// const p = {
// x:100+k*5,
// y:100+k*5
// }
// array.push(p);
// }
for (var i = 0; i < array.length - 1; i++) {
var dx = array[i+1].x - array[i].x;
var dy = array[i+1].y - array[i].y;
var lineLen = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));
var lastX = array[i].x;
var lastY = array[i].y;
for (var j = 0; j < lineLen; j++) {
var x = array[i].x + j*dx/lineLen + random(-5,5);
var y = array[i].y + j*dy/lineLen + random(-5,5);
line(lastX, lastY, x, y);
lastX = x;
lastY = y;
}
line(lastX, lastY, array[i+1].x, array[i+1].y);
}
}
// credit to Golan's template code
function keyPressed() {
var now = nf(hour(),2) + nf(minute(),2) + nf(second(),2);
saveSVG("random_lines_" + now + ".svg");
}