Processingで曼荼羅(マンダラ)塗り絵

f:id:karaage:20190219020345j:plain:w640

Processingで曼荼羅(マンダラ)塗り絵にチャレンジ

 以下の記事に書いた通り、Processing熱がにわかに再燃しています。

 そんな中、妻から「娘(3歳)のために曼荼羅(マンダラ)塗り絵を作れない?」というリクエストが。

 これはProcessingを作ってサクッと作って、父親としての威厳を見せつけるしかない!と思い、早速チャレンジしてみました。

Processingで曼荼羅(マンダラ)塗り絵にチャレンジ

 「マンダラ描くくらい楽勝でしょ!」と思い、画面とにらめっこすること5分…

 「な、何から初めて良いかわからない…」

 あまりにProcessingを触っていない期間が長すぎました。というわけで、初心に立ち返り、@reona396さんの入門者用スライドを熟読することにします。

 10分後

 「そうことね、完全にProcessing理解した」状態になったので、プログラミングスタート。

 苦節30分、できました!!いえい!

曼荼羅(マンダラ)塗り絵ソースコード

 ソースコピーしちゃうぜ!コピペして使ってね。

void setup() {
  size(400, 400); 
  noFill();
}

void draw() {
  background(255, 255, 255);
  
  pushMatrix();
  translate(width/2, height/2);
  
  int num = 0;
  int d = 20;
  for (int r = 10; r < 170; r += 20){
    num += 10;
    d += 5;
    for (int i = 0; i < num; i += 1){
      float x = r * cos(radians(i * 360) / num);
      float y = r * sin(radians(i * 360) / num);
      ellipse(x, y, d, d);
    }
  }
  
  popMatrix();
}

 Processingで実行すると以下のような模様が!

f:id:karaage:20190214014912p:plain:w480

 ま、まあ最初だからこんなもんで勘弁してやるか!

娘に曼荼羅(マンダラ)塗り絵プレゼントしてみた

 早速プリンターでプリントして娘にプレゼントしてみました。

f:id:karaage:20190219020345j:plain:w640

 娘の塗り絵の結果は以下!

f:id:karaage:20190219020359j:plain:w640

 …何故か裏に描く娘。娘曰く

「表の模様はパパのだから、私は裏に描くの!」

 だそうです。親の心子知らず。

まとめ

 Processingで娘のために曼荼羅(マンダラ)塗り絵を作って見たけど、イマイチ娘には理解してもらえなかったという話でした。なかなか難しいですね。

 懲りずにProcessingに何か役に立つもの、面白いものを作って見たいなと思います。

関連記事