Processingで特定の数だけ+特定の色の中からランダムな色で線を描く
ランダムな数だけ+特定の色の中からランダムな色で図形を描く、というのは以前やりましたが、特定の数だけ必要になったのでメモです。
こちらですね。これを参考に少し書き換えました。
prince9.hatenablog.com
コードは下記です。PDF書き出しも入れてあります。
//PDF書き出し用ライブラリ import processing.pdf.*; int count;//ファイル名用変数 //最大個数分の配列を用意する int[] col1 = new int[20];//線の数 //ランダムな位置 int linexr,lineyt1,lineyt2,sweightr; //使う色の配列 color[] colarray = { #9de22d,#fed631,#fb7f37,#d52bbd,#35ddf3,#7a2cd6 }; void setup() { background(255); size(600,600); noLoop(); } void draw() { background(255); //色の種類ぶんランダムな数値をつくる for(int c = 0; c < col1.length; c++){ //色の乱数生成 col1[c] = int(random(colarray.length)); } //cは線の個数 for(int c = 0; c < 20; c++){ //位置をランダムに linexr = int(random(200)); lineyt1 = int(random(500)); lineyt2 = int(random(500)); //線の太さをランダムに sweightr = int(random(15)); for (int d = 0; d<c; d++) { //太さをランダムに strokeWeight( sweightr ); //線の形状を四角に strokeCap(SQUARE); //色の配列からランダムな番地を取り出す stroke(colarray[col1[d]]); line(linexr, lineyt1, linexr, lineyt2); } } } void mousePressed() { beginRecord(PDF,"pattern"+count+".pdf"); redraw();// ボタンが押されたときだけ再描画 } //スペースキーでPDF書き出し void keyPressed() { if ( key == ' ' ) { count++; endRecord(); } if (key == 'q'){ exit(); } }