見出し画像

とりあえず100 #7

float ang = 0;
float angStep = 0.01;
float n_Period = 400;//カーブの周期数
float n_Rot = 12;
float startCol = random(100);//カーブの最初の色
float endCol = random(100);//カーブの最後の色

void setup() {
 println(startCol, endCol);
 size(800, 800);
 blendMode(SCREEN);
 colorMode(HSB, 100, 100, 100);
 background(0);
 noStroke();
 translate(width/2, height/2);

 for (float ang = 0; ang <= TWO_PI * n_Period; ang += angStep) {
   rotate(angStep / n_Period * n_Rot);
   float rad = sin(map(ang, 0, TWO_PI * n_Period, 0, TWO_PI*400)) * width/3;

   float x = tan(ang) * rad/400;
   float y = map(ang, 0, TWO_PI * n_Period, 0, height/2);
   y -= tan(ang) * rad/100;

   float col = map(ang, 0, TWO_PI * n_Period, startCol, endCol);
   float alph =  0 + (sin(map(ang, 0, TWO_PI * n_Period, 0, PI))*100);

   fill(col, 80, 50, alph);
   float esize =  0 + (sin(map(ang, 0, TWO_PI * n_Period, 0, PI))*4);
   ellipse(x, y, esize, esize);
 }
}

だいぶ前に作ったもので、仕組みはよく覚えていません、すみません。
なんかいろいろいじくると下記のようなバリエーションができるらしいです。過去の自分にどうやってやったか聞いてみたいところです。


この記事が気に入ったらサポートをしてみませんか?