xxxxxxxxxx
48
let path = [];
const stepsize = 25;
let currentstepsize = stepsize;
let anglerange;
let showthing=true;
function setup() {
createCanvas(600, 600);
//generate path here all at once
path = [[0,height/2]] //sample code
anglerange = 0.5*PI;;
}
function draw() {
background(255);
if(showthing){
text('hold left mouse button to draw', width/2, height/2)
if(mouseIsPressed){
showthing=false;
}
}
if(pmouseX!=mouseX||pmouseY!=mouseY){
currentstepsize=stepsize;
}
if(mouseIsPressed){
if(pmouseX==mouseX && pmouseY==mouseY){
currentstepsize = 1.01 * currentstepsize;
}
let direction = atan((mouseY-path[path.length-1][1])/(mouseX-path[path.length-1][0])) + (PI/2)*Math.sign(mouseX-path[path.length-1][0]) - PI/2;
direction += (random(anglerange) - anglerange/2);
let step = random(currentstepsize/2,currentstepsize);
path.push([path[path.length-1][0] + cos(direction)*step, path[path.length-1][1] + sin(direction)*step]);
}
drawPath(); //draws the path
}
function drawPath(){
stroke(0);
for(let i=1;i<path.length;i++){
line(path[i-1][0],path[i-1][1],path[i][0],path[i][1]);
}
}