自由に動いてもらう
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]; color[]c2=new color[9]; int a=(int)random(1, 5); int b=(int)random(1, 5); int[]r=new int[9]; void setup() { size(500, 500); colorMode(HSB, 360, 100, 100); background(0, 0, 0); x[0] = 0; y[0] = (int)random(height); x[1] = width; y[1] = (int)random(height); x[2] = (int)random(width); y[2] = 0; x[3] = (int)random(width); y[3] = height; x[4] = 0; y[4] = (int)random(height); x[5] = width; y[5] = (int)random(height); x[6] = (int)random(width); y[6] = 0; x[7] = (int)random(width); y[7] = height; x[8] = width/2; y[8] = height/2; 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); c2[0]=color(0, 0, random(100)); c2[1]=color(0, 0, random(100)); c2[2]=color(0, 0, random(100)); c2[3]=color(0, 0, random(100)); c2[4]=color(0, 0, random(100)); c2[5]=color(0, 0, random(100)); c2[6]=color(0, 0, random(100)); c2[7]=color(0, 0, random(100)); c2[8]=color(0, 0, random(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); } fill(c[i]); stroke(c2[i]); ellipse(x[i], y[i], r[i], r[i]); } }
昨日の矢印の個性 - 記録よりもさらにばらばらになった。左方、上方、右方、下方それぞれから2つずつ、ランダムな場所からと、中央から1つ自由に動き回るようにした。さらにstrokeを黒⇔白でランダムに決定し、色付けている。