Как мне создать линию, которая отступает по мере того, как вы рисуете больше p5.js?

#p5.js

Вопрос:

В настоящее время работаю над сайтом, на котором при наведении курсора отображается какой-то линейный рисунок. Как я могу сделать так, чтобы линия отступала естественным образом, когда вы рисуете больше? Прямо сейчас я понял, как провести непрерывную линию.

 var canvas;
var button;

function windowResized() {
    console.log('resized');
    resizeCanvas(windowWidth, windowHeight);
}

function setup () {
    canvas = createCanvas(windowWidth, windowHeight);
    canvas.position(0,0);
    canvas.style('z-index', '-1')
    background(175);
    // button = createButton("Start Your Walk");
}

function draw () {
    strokeWeight(4);
    console.log('button')
    line(pmouseX, pmouseY, mouseX, mouseY)
}
 

Ответ №1:

Вы можете сохранить значения положения мыши в массиве, а затем нарисовать точки массива по порядку. Когда массив будет обновлен, если он заполнен, вам придется стереть последнюю точку массива, переместить все точки на одну позицию назад и добавить новую точку. Ниже приведен пример кода. Я рекомендую вам ознакомиться с этой страницей для получения документации, а также со ссылкой на p5.

 var mousePositions = [];

function setup() {
  createCanvas(400, 400);
}


function draw() {
  background(220);
  v = createVector(mouseX, mouseY);
  mousePositions.push(v);
  noFill();
  beginShape();
  for(var i = 0; i < mousePositions.length; i  ){
    vertex(mousePositions[i].x, mousePositions[i].y);
  }
  endShape();
  if(mousePositions.length > 25){
    mousePositions.shift();
  }
}