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

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

Processingで特定の個数をランダムな位置に描く

Processingでほとんど使わなかった機能のことがすっかり頭から抜けていて、しばらく格闘してしまったのでメモ。

円や四角などの図形を特定の個数ぶんだけ、ランダムな位置に描きます。
noLoop();の存在をすっかり忘れていた・・・

マウスボタンを押すと再描画されます。

float x,y;

void setup() {
  size(600,600);
background(255); 
}

void draw() {
    background(255);
  drawX();
noLoop();
}


void drawX() {
 for (int i = 0; i < 10; i++) {
 x = random(60, 300);
  y = random(10, 90);
    ellipse(x,y,50,50);
}

}

void mousePressed() {
      redraw();// ボタンが押されたときだけ実行
}

別に再描画必要ないしー、という場合はこちらもあり。

float x,y;

void setup() {
  size(600,600);
 drawX();
}

void drawX() {
 for (int i = 0; i < 10; i++) {
 x = random(60, 300);
  y = random(10, 90);
    ellipse(x,y,50,50);
}

}

箱で描いてみました。
こんな感じ。


f:id:prince9:20170701202701p:plain

float x1,y1;

void setup() {
  size(600,600);
    background(255); 
}

void draw() {
    background(255);
  drawBox1();
noLoop();
}


void drawBox1() {
 for (int i = 0; i < 10; i++) {
 x1 = random(60, 300);
  y1 = random(10, 90);
   quad(x1, y1, x1, y1+50, x1+40,y1+70, x1+40, y1+20);
quad(x1+40, y1+20, x1+40, y1+70, x1+80,y1+50, x1+80, y1);
quad(x1+40, y1-20, x1, y1, x1+40,y1+20, x1+80, y1);
}

}

void mousePressed() {
      redraw();// ボタンが押されたときだけ実行
}