lerpColor()を使ってみる。
この関数は2色の色をブレンドしてくれるフェーダーみたいなもの。
画面のY座標を使って、線と面の2色をブレンドした。
まだ使ったことない関数ありそうだから全部使っていきたい。
int num = 250;
float[] x = new float[num];
float[] y = new float[num];
float[] p = new float[num];
color a = color(250,20,80);
color b = color(0,50,300);
color c = color(100,50,300);
color d = color(0,0,0);
void setup(){
size(500,500);
background(0);
for(int i = 0 ; i < num ; i++){
x[i] = random(width);
y[i] = random(height);
p[i] = random(0.1,3);
}
}
void draw(){
background(0);
for(int i = 0 ; i < num ; i++){
float r = 3 + 20*abs(p[i]);
strokeWeight(2);
stroke( lerpColor(a,b,map(y[i],0,height,0,1)));
fill( lerpColor(c,d,map(y[i],0,height,0,1)));
ellipse(x[i],y[i],r,r);
x[i] += p[i];
if(x[i] > width || x[i] < 0 ){
p[i] *= -1 ; }
y[i] = height/2 + 250*sin(radians(frameCount+ i*2));
}
}