Processingでスライムを描画してみた
Hello New Year !! (挨拶)
新年一回目の更新です!
今回は, 先日投稿したツイートが思いのほかいいねがあったのでソースコードを紹介しておきたいと思います!
ジェネラティブすらいむ#Processing #creativecoding #generativeart pic.twitter.com/vhBHEbJCDM
— Yuz (@Eddie_Le_Garden) 2020年1月7日
ソースコード
float verNoise; float vertex = 8; //最大頂点数 float viscosity = 30; //粘度 color col = #03B9FF; void setup() { size(500, 500); noStroke(); } void draw() { background(255); slime((int)(1*vertex-1)+1, abs(sin(frameCount*0.1)-0.5)*viscosity); verNoise+=.005; } void slime(int ver, float vis) { //ver頂点数 vis粘度 pushMatrix(); translate(width/2, height/2); rotate(frameCount*.01); fill(col); beginShape(); for (int theta=0; theta<360; theta++) { float r = 150+sin(radians(theta*ver))*vis; vertex(cos(radians(theta))*r, sin(radians(theta))*r); } endShape(CLOSE); popMatrix(); }
主にはslime関数により描画処理が行われており, グローバル変数の値を変えることでスライムの描画を調節します.
変数vertexはスライムが伸びた際の最大頂点数を示し, 変数viscosityの値を大きくすると伸び具合 (粘度)が設定できます.
↑viscosity=60の場合
割と単純なソースコードですが, プロパティを変えるだけで色々な描画結果になるのでぜひお試しください~!!