如何在每个点之间创建一条线?

时间:2019-02-10 19:22:22

标签: p5.js

我想创建一个与photoshop / illustrator中的pentool类似的工具,但只能使用直线。如何在每个点之间创建一条线?我的第一个本能是将它们推入数组,但是我在这里,接下来该怎么办?

代码:https://editor.p5js.org/AlexArek/sketches/4TZ1Y-6y0

1 个答案:

答案 0 :(得分:2)

如果我的理解正确,您会因为在push()循环内使用for而陷入困境,该循环受您要插入的数组长度的限制,该数组的长度为空。换句话说,for循环内的代码永远不会执行。我不熟悉 pentool ,但我假设您想在一系列点之间画一条直线,在这种情况下,这可能会有所帮助:

let points = [];

function setup() {
  createCanvas(800, 600);
  background(35);
}

function draw() {}

function mousePressed() {
  stroke(255);
  strokeWeight(10);
  point(mouseX, mouseY);
  points.push({x:mouseX, y:mouseY});
  if(points.length > 1)
    line(points[points.length-1].x, points[points.length-1].y, points[points.length-2].x, points[points.length-2].y);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.min.js"></script>