объект цикла над canvas JS P5

#javascript #p5.js

#javascript #p5.js

Вопрос:

Я использую JS P5. Я создал функцию, которая создает эллипс. Я хочу зациклить этот эллипс по всему холсту с некоторым расстоянием между каждым эллипсом.

Я не использовал обычный эллипс, потому что позже я хочу поместить другую функцию в каждый эллипс. Итак, мой вопрос, как использовать цикл for и вложенный цикл для объекта, который я создаю.

Это мой код, здесь у меня есть случайный путь, но я хочу, чтобы это было точное расстояние, например, сетка по всей странице.

Как в этом примере

 let shapes = [];

function setup() {
  createCanvas(600, 600);
  for (let i = 0; i < 500; i  ){
    let x = random(width);
    let y = random(height);

    shapes[i] = new shape(x,y,20);
  }
}

function draw() {
  background(220);

  for (let i = 0; i < shapes.length; i  ){
    shapes[i].display();
  }
}


function shape(tx, ty, ts) {
  this.x = tx;
  this.y = ty;
  this.size = ts;
  this.angle = 0;

  this.update = function(mx, my) {
    this.angle = atan2(my - this.y, mx - this.x);
  };

  this.display = function() {
    push();
    fill(153, 204, 0);
    ellipse(this.x, this.y, this.size, this.size);
    pop();
  };
}  

Ответ №1:

Отредактированный ответ:

 let shapes = [];

function setup() {
    createCanvas(600, 600);
    for(var x=0;x<width;x =30){
        for(var y=0;y<height;y =30){
            shapes.push(new shape(x,y,20));
        }
    }
}

function draw() {
    background(220);

    for (let i = 0; i < shapes.length; i  ){
        shapes[i].display();
    }
}


function shape(tx, ty, ts) {
    this.x = tx;
    this.y = ty;
    this.size = ts;
    this.angle = 0;

    this.update = function(mx, my) {
        this.angle = atan2(my - this.y, mx - this.x);
    };

    this.display = function() {
        push();
        fill(153, 204, 0);
        ellipse(this.x, this.y, this.size, this.size);
        pop();
    };
}
  

Комментарии:

1. Спасибо, но мне нужно поместить этот вложенный цикл в мой объект.. Я не хочу пропускать объект и просто рисовать обычный эллипс.

2. Хорошо. Можете ли вы объяснить, что именно вы хотите сделать? Спасибо.

3. Я имею в виду поместить вложенный цикл в объект shapes, чтобы создать этот отказ.

4. Формы — это функция, которая создает эллипс, и я хочу использовать вложенный цикл в нем…

5. Если вы видите мой пример кода, вы можете видеть, что я сделал это, но со случайными позициями…. я хочу отредактировать его, чтобы получить resault, который вы показали.