array_ellipse01

int NUM = 100; //配列の数
//位置のベクトルの配列
PVector[] location = new PVector[NUM];
//速度のベクトルの配列
PVector[] velocity = new PVector[NUM];

void setup() {
  size(500, 500); //800x600pixelの画面を生成
  colorMode(HSB, 360, 100, 100, 100);
  frameRate(60); //フレームレート
  noStroke(); //枠線なし
  smooth();

  for (int i = 0; i < NUM; i++) { //配列の数だけ繰り返し
    //位置のベクトルの初期設定
    location[i] = new PVector(0, 0);
    //速度のベクトルの初期設定
    velocity[i] = new PVector(sin(frameCount), cos(frameCount));
  }
}

void draw() {
  background(0, 0, 99, 90); //背景を描画
   
  for (int i = 0; i < NUM; i++) { //配列の数だけ繰り返し
    fill(frameCount%360, random(100), random(100));
    //指定した位置に円を描画
    ellipse(location[i].x+i*5, location[i].y, mouseX, mouseY);
    //位置のベクトルに速度のベクトルを加算、次の位置になる
    location[i].add(velocity[i]);

    //もし画面の左端、または右端に到達したら
    if ((location[i].x > width) || (location[i].x < 0)) {
      velocity[i].x *= -1; //X方向のスピードを反転
    }
    //もし画面の下端、または上端に到達したら
    if ((location[i].y > height) || (location[i].y < 0)) {
      velocity[i].y *= -1; //Y方向のスピードを反転
    }
  }
}

配列の勉強をするために田所さんの 第5回 Processing実習 1 : 動きを生みだす – アニメーションとベクトル | yoppa orgをコピーして,いじる.でも,まだ全然わからない.PVectorもわからないから,ふたつわからないことがあって,全くわからない状態になっていて,スケッチを1日1スケッチ書き始めたときのように,右も左も分からない状態になっている.困った…