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