ワタタク
今回の記事の目的はProcessingの「while
」を理解し、自分なりに使ってみること。
目次
【Processing】whileについて
whileについて
while
の英語の意味は「…する間に」- Processingで実行すると、同じことを何度も繰り返すことができます
- 円を5つ連続で描くみたいなこと
- 円を連続で5つ書くのも楽に書ける
ellipse()
関数を5回書かなくてよくなる
【Processing】whileの主な書き方
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まで横に増えていく
}
顔をつけて横に並べる
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はあまり使わないと思う。