More Related Content
Similar to 論理指向とプログラミング2010年度秋学期第9回 (14)
More from Noritada Shimizu (20)
論理指向とプログラミング2010年度秋学期第9回
- 1. 論理思考とプログラミング #09 N. Shimizu chiko@sfc.keio.ac.jp 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 1
- 2. 繰り返しの繰り返し まず横1列を描く 正方形を一つ描く 正方形の1辺の長さに1を足した分だけ右に移動したところで正方形を描く これを繰り返す それを繰り返す 2010.11.25 論理試行とプログラミング N.Shimizu <chiko at sfc.keio.ac.jp> 2
- 4. else if if(A){ B }else if(D){ E }else { C } AならばB それ以外のとき DならばE それ以外ならばC 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 4
- 7. TIPS: 描いた画像を保存しよう save(“ファイル名”); 実行された時点の画面が保存されます プログラムがあるフォルダに保存されます 保存できる形式 tiff, TARGA, jpg, png ファイル名の拡張子で決まる aaa.png / aaa.jpg / aaa.tif 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 7
- 8. 問題その2 黒地に円400個を描く 塗りはなし 上3分の1は赤の円 次の3分の1は緑の円 最後の3分の1は青の円 円の位置はランダム 大きさは20から40の間でランダム 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 8
- 9. 問題その3 黒地に円を書く 塗りはなし 円の大きさ、位置はランダム 画面を9分割し、その位置に応じて色を違えること 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 9
- 12. 問題その4 ランダムに図形を描く 正方形もしくは円 50%の確率 大きさ:20×20 ウィンドウサイズは400×400 色はランダムに決まる 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 12
- 14. インタラクション 二つのものがお互いに影響しあうこと 相互作用 interaction 人間とコンピュータプログラム 人間の操作がプログラムの動きを変える プログラムが人間の操作を変える 2010.11.25 論理試行とプログラミング N.Shimizu <chiko at sfc.keio.ac.jp> 14
- 20. プログラムの例 float x, y; void setup(){ size(400, 400); background(0, 0, 0); noStroke(); x = 0; y = 0; } void draw(){ x = x + 0.5; y = y + 0.5; fill(255, 0, 0); ellipse(x, y, 20, 20); } 2010.11.25 論理試行とプログラミング N.Shimizu <chiko at sfc.keio.ac.jp> 20
- 23. さっきのプログラムでは void setup(){ size(400, 400); background(0, 0, 0, 100); noStroke(); x = 0; y = 0; } 2010.11.25 論理試行とプログラミング N.Shimizu <chiko at sfc.keio.ac.jp> 23 この範囲に対してsetupという名前をつけた
- 26. draw: 一定間隔で実行される部分 void draw(){ x = x + 0.5; y = y + 0.5; fill(100, 0, 0, 100); ellipse(x, y, 20, 20); } 2010.11.25 論理試行とプログラミング N.Shimizu <chiko at sfc.keio.ac.jp> 26
- 27. どうなるかやってみよう void draw(){ background(0, 0, 0, 100); x = x + 0.5; y = y + 0.5; fill(100, 0, 0, 100); ellipse(x, y, 20, 20); } 2010.11.25 論理試行とプログラミング N.Shimizu <chiko at sfc.keio.ac.jp> 27 backgroundを足す
- 28. フレームレート drawメソッドを呼び出す間隔 正確には画面の描画回数 FPS (Frame Per Second) frameRate(<フレームレート>) <フレームレート>には正の実数を書く E.g. frameRate(30); と書くと秒間30回実行する 2010.11.25 論理試行とプログラミング N.Shimizu <chiko at sfc.keio.ac.jp> 28
- 29. 問題その5 ウィンドウサイズは400x400 背景は黒 2000本の線がランダムに引かれている 線の色はランダム drawが呼び出される度に描き直すようにしてください 2010.11.25 論理試行とプログラミング N.Shimizu <chiko at sfc.keio.ac.jp> 29
- 46. このプログラムで描ける void setup(){ size(400, 400); background(0, 0, 0); smooth(); noStroke(); fill(255, 255, 255); } void draw(){ } void mouseClicked(){ ellipse(mouseX, mouseY, 20, 20); } 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 46
- 52. 押されたキーによって条件分岐したい void keyPressed(){ if(key == ‘b’){ background(0, 0, 255); }else{ background(0, 0, 0); } } 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 52 keyに押されたキーが文字として入っている
- 53. 文字同士の比較 key == ‘a’ keyの値がaと等しいかどうか 等しいならtrue, そうでないならfalse key != ‘a’ keyの値がaと等しくないかどうか 等しくないならtrue, 等しいならfalse 文字はシングルクオートで囲もう 2010.12.2 論理思考とプログラミング N.Shimizu <chiko@sfc.keio.ac.jp> 53