| 第10回 |
| 乱数、マウスの操作 |
| 1 乱数 |
| ・ 乱数とは 乱数は規則性のない数のことで、random() 関数を呼び出すごとにいろいろな数を創り出します。 int x = random(0,1); のようにプログラムを書くと、変数 x に何の数値が代入されるかはその時になるまでわかりません(数値の範囲は 0.0~1.0未満)。 また、この random() は呼び出される毎に毎回異なる数値を発生させます。 乱数は、この性質を利用して自然現象のシミュレーションやゲームなど、幅広くいろいろなプログラムで使用されています。 ・ Processingで乱数を使う 乱数は、ほぼ全てのプログラミング言語で使用できます。 (C言語:rand()関数、Python:random.random()など、Java:RandomクラスのnextInt()など、Excel:RAND()関数、‥‥ ) Processingでは、下記の書式で使用します。 float r = random( 0, 1 ); // 0.0~1.0未満 の乱数を r に代入する(小数を含む) float r = random( 0, 10 ); // 0.0~10.0未満 の・・・ float r = random( 3, 8 ); // 3.0~8.0未満 の・・・ float r = random( -5, 3 ); // -5.0~3.0未満 の・・・ int x = (int)random( 0, 5 ); // 0, 1, 2, 3, 4 のいずれかの整数値が x に代入される int x = (int)random( 0, 2 ); // 0, 1 のいずれかの整数値が x に代入される int x = (int)random( -2, 2 ); // -2, -1, 0, 1 のいずれかの整数値が x に代入される <例:乱数を表示してみる>
<実行結果(数値は毎回変わるハズ)> ![]() <例:0~9の乱数(整数値)を15個表示する>
<実行結果(数値は毎回変わるハズ)> ![]() <演習1> 以下は、400個の〇を描画するプログラムである。これを乱数を使ってバラバラの(ランダムな)位置に描画するように修正しなさい。
![]() 下図↓のようにランダムな位置になるように上記のソースを修正しなさい。 解答例 |
| 2 マウスの操作 |
| Processingは、マウス操作が簡単にできます。 ・ マウスポインターの位置 マウスポインタ―の座標は mouseX, mouseY に格納されている mouseX:マウスポインタ―の水平位置(ヨコ方向) mouseY:マウスポインタ―の垂直位置(タテ方向) <例:mouseX,mouseY の値をコンソールに表示する、その位置に〇を描画する>
<例:マウスポインタ―が左半分にあれば画面全体を黒色、右半分にあれば白色にする>
<演習2> マウスポインタ―が画面の上半分にあるときは上半分を青色に、下半分にあるときは下半分を青色になるようにしなさい。 青色領域の描画は fill(0,0,255); rect(‥); を使用すること。 <実行例 左図:マウスが上半分にある、 右図:マウスが下半分にある> ![]() 解答例 ・ マウスボタンの処理 マウスボタンが押された時の処理も簡単に実装できます。 Processingではマウスボタンが押されると void mousePressed() 関数 が呼び出されます。 <例:マウスボタンを押したところに〇を描画する>
![]() <演習3> 以下は、マウスボタンをクリックしたところに、波紋のように〇が広がるアニメーションのプログラムである。 /* 空欄 */ を埋めて完成させなさい。 <マウスボタンがクリックされたところから〇が波紋のように広がるプログラム>
<実行例の動画> 解答例 |