記録

勉強したことに関するのノート。見返して分かるようにしてます。

矢印の個性

int[] x = new int[9];
int[] y = new int[9];
float[]speedX = new float[9];
float[]speedY = new float[9];
color[]c=new color[9];
int a=(int)random(1, 5);
int b=(int)random(1, 5);
int[]r=new int[9];

void setup()
{
  size(800, 800);
  colorMode(HSB, 360, 100, 100);
  background(0, 0, 0);
  x[0] = 0; 
  y[0] = 0;
  x[1] = 20; 
  y[1] = 20;
  x[2] = 40; 
  y[2] = 40;
  x[3] = 60; 
  y[3] = 60;
  x[4] = 80; 
  y[4] = 80;
  x[5] = 60; 
  y[5] = 80;
  x[6] = 40; 
  y[6] = 80;
  x[7] = 80; 
  y[7] = 60;
  x[8] = 80; 
  y[8] = 40;
  speedX[0]=a;
  speedY[0]=b;
  speedX[1]=a;
  speedY[1]=b;
  speedX[2]=a;
  speedY[2]=b;
  speedX[3]=a;
  speedY[3]=b;
  speedX[4]=a;
  speedY[4]=b;
  speedX[5]=a;
  speedY[5]=b;
  speedX[6]=a;
  speedY[6]=b;
  speedX[7]=a;
  speedY[7]=b;
  speedX[8]=a;
  speedY[8]=b;
  c[0]=color(random(360), 100, 100);
  c[1]=color(random(360), 100, 100);
  c[2]=color(random(360), 100, 100);
  c[3]=color(random(360), 100, 100);
  c[4]=color(random(360), 100, 100);
  c[5]=color(random(360), 100, 100);
  c[6]=color(random(360), 100, 100);
  c[7]=color(random(360), 100, 100);
  c[8]=color(random(360), 100, 100);
  stroke(0, 0, 100);
  r[0]=(int)random(1, 20);
  r[1]=(int)random(1, 20);
  r[2]=(int)random(1, 20);
  r[3]=(int)random(1, 20);
  r[4]=(int)random(1, 20);
  r[5]=(int)random(1, 20);
  r[6]=(int)random(1, 20);
  r[7]=(int)random(1, 20);
  r[8]=(int)random(1, 20);
}
void draw() 
{ 
  int i;
  //background(0, 0, 0);
  //fill(0, 0, 0, 50);
  //rect(0, 0, width, height);

  for (i = 0; i < 9; ++i) {
    x[i] += speedX[i]; 
    y[i] += speedY[i];

    if (x[i] <= 0 || x[i] >= width) {
      speedX[i] *= -1;
      //speedX[i] *= random(0.3, 1.1);
      speedX[i]=random(-5, 5);
      //speedY[i] *= speedY[i]+random(0.9, 1);
    }

    if (y[i] <= 0 || y[i] >= height) {
      speedY[i] *= -1;
      //speedX[i] =speedX[i]+random(0.9, 1);
      speedY[i]=random(-5, 5);
      //speedY[i]*=random(0.3, 1.1);
    }

    //if (x[i] > width) {
    //  x[i]=width;
    //  speedX[i]=speedX[i]+1;
    //}
    //if (x[i] <0) {
    //  x[i]=0;
    //  speedY[i]=speedY[i]+1;
    //}
    //if (y[i] > height) {
    //  y[i]=height;
    //  speedX[i]=speedX[i]+1;
    //}
    //if (y[i] < 0) {
    //  y[i]=0;
    //  speedX[i]=speedX[i]+1;
    //}


    fill(c[i]);
    ellipse(x[i], y[i], r[i], r[i]);
  }
}

さらなるバラバラ感を出したくて。もはや矢印だとわからない時もあるが、強弱があるので矢印がバラバラに - 記録よりは面白いものにはなったかなと。小さいものが速いと可愛いと思う。できるかなー。