У меня есть массив, содержащий 6 наборов случайных координат x, y. Я могу нарисовать линии, соединяющие точки, например:
Но у меня возникают проблемы с выяснением, как рисовать повторяющиеся квадраты ( для достижения эффекта пунктирной линии), где линии. Прямо сейчас я могу получить это, но я хочу рисовать только квадраты вдоль линии:
Я понимаю, что я делать неправильно теоретически, но на самом деле борется с математикой здесь. Как мне go включить только квадраты, которые появляются вдоль линий? ТИА.
Это мой код прямо сейчас:
let w = 500;
let h = 500;
let riverArr = [];
let distanceArr = [];
function setup() {
createCanvas(w, h);
}
function draw() {
background(240);
generatePoints();
for (i = 1; i < riverArr.length; i++) {
let x1 = parseInt(riverArr[i][0]);
let y1 = parseInt(riverArr[i][1]);
let x2 = parseInt(riverArr[i - 1][0]);
let y2 = parseInt(riverArr[i - 1][1]);
line(x1, y1, x2, y2);
let d = int(dist(x1, y1, x2, y2));
ellipse(x1, y1, 5);
for (j = 0; j <= x1; j++) {
for (k = 0; k <= y1; k++){
rect(j, k, 1);
}
}
distanceArr.push(d);
}
noLoop();
}
function generatePoints() {
let finished;
riverArr.push([0, random(h)]);
for (i = 0; i < 4; i++) {
finished == false;
riverArr.push([random(w), random(h)]);
if (i > 0 && riverArr[i][0] <= riverArr[i - 1][0]) {
console.log(riverArr[i][0], riverArr[i - 1][0]);
console.log('Bad path');
}
finished == true;
}
riverArr.push([w, random(h)]);
}