リバースエンジニアリング
OpenProcessingでフィーチャーされている作品で実行されている画面だけを見て、コードを見ないで書いてみた。ブレンドモードを効かせたかったのでp5.jsで書いた。
答え合わせでコードを比較すると、ちょっとずつ大きくするときに一定の値を半径に加えるのじゃなくて、乗算で比率を変えていくやり方だった。
コード
var r = 0; // setup関数 : 初回1度だけ実行される function setup() { createCanvas(windowWidth, windowHeight); colorMode(HSB, 360, 100, 100); // HSBでの色指定にする blendMode(ADD); background(0, 0, 0); } // draw関数 : setup関数実行後繰り返し実行される function draw() { background(0, 0, 0); translate(width/2, height/2); rotate(r*0.001); stroke((frameCount*0.5)%360, 80, 100, 100); beginShape(); for (var angle = 0; angle < 360; angle += 1) { var theta = radians(angle); var r1 = noise(theta, r*0.002, frameCount*0.01); r1 = map(r1, 0, 1, 0, r); vertex(cos(theta)*r1, sin(theta)*r1); } r += 5; noFill(); endShape(CLOSE); if (r > windowWidth*1.5) { r = 0; blendMode(NORMAL); background(0, 0, 0); blendMode(ADD); } }