Learning Objectives
- 条件分岐の必要性について理解する * 条件分岐を使ってプログラムを書いてみる(if, else, else if, switch)
講義
Processingでゼロから学ぶビジュアル・アート 臨機応変にふるまう(if文)
- 現実世界は臨機応変 * もし〜なら:if文 * 条件式の書き方(if, else, else if)
演習1:マウスの右クリック、左クリックを判定する
参考:Processingでゼロから学ぶビジュアル・アート 臨機応変にふるまう(if文) (マウスのどのボタンが押されたか:mouseButton)
「マウスのどのボタンが押されたか」を読み、プログラムを少し変えてみる。例えば・・・
- 左クリックでは黒、右クリックでは青 * 左クリックでは黒、右クリックでは消しゴム
右クリックで消しゴムになるペン
// 最初に1回だけ実行されるブロック
void setup() {
size(600, 600);
background(255, 255, 255);
}
// マウスボタンをドラッグした時だけ時に実行されるブロック
void mouseDragged() {
// 左クリックが押された場合
if (mouseButton == LEFT) {
// カーソル位置に、青色(50, 67, 245)で線を引く
stroke(50, 67, 245);
line(pmouseX, pmouseY, mouseX, mouseY);
}
// 右クリックが押された場合
else if(mouseButton == RIGHT){
// 白い長方形(消しゴム)を書く
fill(255, 255, 255);
noStroke();
rect(mouseX, mouseY, 20, 40);
}
}
// mouseDragged()が動くためには draw()を書く必要がある
void draw() {
}
条件分岐をフローチャートで表すと・・?
フローチャート: 教科書 p.67
演習2: 秒数で色が切り替わるペンを作る
参考:Processingでゼロから学ぶビジュアル・アート 臨機応変にふるまう(if文) (現在の時刻・経過時間:hour(), minute(), second() )
Switch文について
if文(else if, else)だけでなく、条件分岐では"switch文"も使える。
// 最初に1回だけ実行されるブロック
void setup() {
size(600, 600);
background(255, 255, 255);
}
// 色を判断するための変数
int c = 0;
// マウスボタンをドラッグした時だけ時に実行されるブロック
void mouseDragged() {
// 秒を5で割り、余りを求める
c = second() % 5;
// cの値に応じて条件分岐する
switch(c) {
case 0: // cが0の場合
fill(5, 11, 250);
break; // break によりswitch文のブロックから抜ける
case 1:
fill(5, 250, 80);
break;
case 2:
fill(250, 250, 0);
break;
case 3:
fill(250, 132, 5);
break;
case 4:
fill(250, 5, 50);
break;
}
stroke(255,255,255);
ellipse(mouseX, mouseY, 100, 100);
}
// mouseDragged()が動くためには draw()を書く必要がある
void draw() {
}
秒ごとに色が切り替わる
演習3:「条件式千本ノック」
Processingでゼロから学ぶビジュアル・アート 臨機応変にふるまう(if文) **(条件式千本ノック)**を実際にプログラムを動かしながらやってみよう
当ユニット(unit07-3)のファイルの提出方法
演習1, 2, 3または学んだ内容を組み合わせ、“オリジナルのペンツール"に条件分岐を組み込んでみる
提出方法
- 以下の作成物(プログラムファイル、画像のスクリーンショット)を
Onedrive
に提出してください
-
Processingのプログラムファイル
-
実行結果(作ったペンで自分で描いた絵)の画像のスクリーンショット
- ファイルには、出席番号、氏名が分かるように名前をつける
-
28XX_XX太郎_unit7-2_pentool.pde (Processingのプログラムファイル)
-
28XX_XX太郎_unit7-2-drawing.png (実行結果の画像)
-
提出先
Onedrive
(学校のOffice 365ログインが必要です) -
Processingのプログラムは"Sketch"と言います。Sketchの配置場所は、“Processing” > “環境設定” > “Sketchの場所” に記載がありますので、その場所を見つけて、アップロードしてください。
-
スクリーンショットの撮り方
-
-
Windows の場合 : 実行結果の画面をアクティブにして、“Alt”+“Print Screen(PrtScn)"。コピーされた画像を、“Paint"ツールなどを使って保存する。
-
Macの場合: ”Command”+“Shift”+“4” で、範囲を選択(デスクトップにpng形式で画像が保存される)