xxxxxxxxxx
69
function setup() {
createCanvas(800, 800, SVG);
}
// version 3
const array = [];
const array2 = [];
var lastP = {
x : -1,
y : -1
};
var lastP2 = {
x : -1,
y : -1
};
var recording = true;
function draw() {
// background(255, 200, 200);
var p = {
x : mouseX,
y : mouseY
};
var dx = (p.x - lastP.x);
var dy = (p.y - lastP.y);
var lineLen = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));
var ratio = 100/Math.pow(lineLen, 2);
var newDx = dy*ratio;
var newDy = -dx*ratio;
var p2 = {
x : p.x + newDx,
y : p.y + newDy
}
if (lastP != p) {
array.push(p);
array2.push(p2);
}
lastP = p;
lastP2 = p2;
if (array.length > 200) {
if (recording) {
saveSVG("random_lines.svg");
recording = false;
}
array.shift();
array2.shift();
}
for (var i = 0; i < array.length - 1; i++) {
fill(0);
quad(array[i].x, array[i].y, array[i+1].x, array[i+1].y,
array2[i+1].x, array2[i+1].y, array2[i].x, array2[i].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");
}