まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

Processingで特定の数だけ+特定の色の中からランダムな色で線を描く

ランダムな数だけ+特定の色の中からランダムな色で図形を描く、というのは以前やりましたが、特定の数だけ必要になったのでメモです。
こちらですね。これを参考に少し書き換えました。
prince9.hatenablog.com


f:id:prince9:20180426001739p:plain

コードは下記です。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();
}

  }