【Processing】whileの使い方【図形をたくさん書くのが楽になる】

【Processing】whileの使い方【図形をたくさん書くのが楽になる】
  • URLをコピーしました!
ワタタク

今回の記事の目的はProcessingの「while」を理解し、自分なりに使ってみること。

記事内のProcessingのバージョンは4.3。

動きのある画像は、コードではなく、GIF画像編集で無限再生されるようにしています。

目次

【Processing】whileについて

whileについて
  • whileの英語の意味は「…する間に」
  • Processingで実行すると、同じことを何度も繰り返すことができます
    • 円を5つ連続で描くみたいなこと
  • 円を連続で5つ書くのも楽に書ける
    • ellipse()関数を5回書かなくてよくなる

【Processing】whileの主な書き方

while (条件式) {
コード
}

【Processing】whileの使い方【画像とコード】

円を横に並べるパターンと、笑顔のマークを横に並べるパターン。

円を横に並べる

Processing while 円を横に並べる
size(500, 500);
background(255);
int i = 0;
while (i < 550) { //iが550よりも小さいとき
  ellipse(i, 250 , 50, 50); //円を描く
  i = i + 50; //iは繰り返すごとに50,100, 150, 200と550まで横に増えていく
}

顔をつけて横に並べる

Processing while 顔をつけて横に並べる
size(500, 500);
background(255);
int i = 0;
while (i < 550) {
  // 円の顔(水色)
  fill(173, 216, 230); // 水色
  ellipse(i, 250 , 50, 50);
  
  // 左目(黒)
  fill(0);
  ellipse(i - 10, 240, 10, 10);
  
  // 右目(黒)
  ellipse(i + 10, 240, 10, 10);
  
  // 口(黒)
  noFill();
  arc(i, 260, 20, 20, 0, PI);
  
  i = i + 50;
}

【Processing】whileは連続で書くことができるのか

Xで教えていただいたことをきっかけに、whileは連続で書くことができるのかを追記致します。

結論としてwhileは2個以上使って書くことができました。(画像とコードは少し先)

whileを4つ使って、4辺の端っこに沿うように円を描く。

void setup() {
  size(500, 500);
  background(255);
  fill(173, 216, 230); // 水色
  noStroke();
  
  int diameter = 50; // 円の直径 diameterは英語の直径という意味
  int x = 0;
  int y = 0;
  
  // 上端に円を並べる
  while (x <= width - diameter) {
    ellipse(x + diameter / 2, diameter / 2, diameter, diameter);
    x += diameter;
  }
  
  x = 0;
  
  // 下端に円を並べる
  while (x <= width - diameter) {
    ellipse(x + diameter / 2, height - diameter / 2, diameter, diameter);
    x += diameter;
  }
  
  y = 0;
  
  // 左端に円を並べる
  while (y <= height - diameter) {
    ellipse(diameter / 2, y + diameter / 2, diameter, diameter);
    y += diameter;
  }
  
  y = 0;
  
  // 右端に円を並べる
  while (y <= height - diameter) {
    ellipse(width - diameter / 2, y + diameter / 2, diameter, diameter);
    y += diameter;
  }
}

【Processing】whileの中で使われている変数「i」の意味

ループの中で繰り返し処理を行う際に、カウンターとして使われる変数名として便利だから以下の2つの英語を省略して「i」が使用されている。

  • index
    • プログラミングでの意味:位置や順序を示すために使われる
    • 英語の意味:索引
  • iterator
    • プログラミングでの意味:繰り返し処理を行うためのカウンターとして使われる
    • 英語の意味:反復子(繰り返し処理のこと)

変数の「i」がどちらの意味が適しているかは、プログラムによると思います。

「i」と出てきたらindexかiteratorのどちらかだとまずは考えるといいですね。

【Processing】whileはどんな表現で使えそうか

連続して、図形を並べるときに使用できますね。

【Processing】whileを使ってみた感想

forという構文を使ってwhileと同じことができるので、 whileはあまり使わないと思う。

ワタタク(Watataku)
クリエイティブコーダー/アーティスト
AIと共に、「人の心に寄り添う、機能するアート」を探究しています。

ここは、その思索と創造の全記録を記す、思考の実験室(アトリエ)です。

僕の創作の源泉は、人生経験そのものです。
不当な出来事や、精神的な支配の中で、私の心は何度も粉々に砕け散りました。しかし、その一つ一つの破片をどのようにすれば鮮やかな絵の具にできるかを考え、ゆっくり心のパレットに色を整えていきました。その、長い、長い、自身との対話の果てに「人の役に立つアートを作りたい」という考え方にたどり着きました。

かつて、僕の武器は、アコースティックギター弾き語りと、カメラでした。
オリジナルソングの演奏でお客様投票1位となった「物語の力」。
世界20カ国の旅で培った、多様な「視点」。

今、僕は、それら全ての経験を、「コード」という、新しい言語で、世界に問いかけています。

このブログでは、作品の制作過程や、日々の発見、そして、僕自身の上達の軌跡を記録していきます。

僕の旅が、あなたの日常を、ほんの少しでも豊かにするための、光になることを願って。

クリエイティブコーディングロード運営者 ワタタク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次