2016年6月6日月曜日

Scratchでコンピュータグラフィックス・繰り返しと乱数

Scratchでコンピュータグラフィックス

・前回までの内容
 ・第1回
 ・第2回

繰り返しと乱数
昔話から始めますが、その昔、初めて買ったパソコンは国産機のMSX1パソコンでした。
MSXパソコンにはMSX BASICというプログラム言語が今でいうOSのような役割を持っており、パソコンを使うという事はBASIC言語を覚えるという事に他なりませんでした。
そんな時によく遊びでやっていたのが「POINT文で星空を描く」という単純なブログラムでした。
単純なのですが、乱数で描かれるドットが意外にもきれいで、更に毎回結果が異なるのも面白かったです。


Scratchにはドットを打つという構文は無いのですが、色々工夫して同じようなグラフィックを作ってみようと思います。




まず、以下のようにブロックを作ります。
新しいブロックとしては「スクリプト」の「制御」にある「・・・回繰り返す」です。
これは指定した回数その内側に入れ子になったブロックの内容を繰り返すというものです。
今回は500回繰り返した後、全てのプログラムを停止するように指定しました。


さらに繰り返しの中身を作っていきます。
いきなり今まで見たこともいないようなブロックがありますが、構造は簡単です。
先ず、前回使ったxとyの座標を指定するブロックを繰り返しの内側にはめ込みます。
そして前回は座標として直接数字を入れていたのですが、今回は「スクリプト」の「演算」の項目から「・・・から・・・までの乱数」をそれぞれx,yの項目にはめ込みます。
これは、指定した範囲の乱数、ある意味不連続なでたらめな並びの数を発生させるブロックです。
今回はxを-240~240に、yを-180~180にしています。
これはステージが中心から上下左右に増減して、端までの座標を範囲で示しているものです。
(例えば左上はx=-240,y=180となる訳です)


このスクリプトを実行するとキャラクタがステージ上の様々な位置に500回表示されて止まります。


キャラクタの位置を指定出来たら、描画の準備をします。
いつも通りペンを下して太さを指定しますが、ここにも新しいブロックを追加しています。
「ペンの色を・・・ずつ変える」です。
これは実行するたびにペンの色が変化していきます。値を大きくすると変化の幅が大きくなります。


では、描画をするブロックを追加します。
ここで変わっているのは、最初に使った「・・・歩動かす」の値を1にしているところです。
1歩動くとすると1ドットの点を描画してくれるのです。


ここまでの構造をおさらいすると、
・プログラム開始
・ある内容を500回繰り返す
 ・内容はまず乱数でキャラクタの位置を指定する
 ・描画の準備をしてペンを下す
 ・1歩だけ動かして点を描く
 ・ペンを上げて描画をやめる
・500回繰り返しが終われば全てを停止する
...という風になります。


では、最後にせっかくなので背景を黒にして夜空にしましょう。
中央の「スクリプト」のタブの隣にある「背景」をクリックすると、背景画像の描画になります。
左側の道具の中から「バケツ」を選んで、画面下側のカラーパレットから黒を選んでステージをクリックすると黒で塗りつぶされます。
これで背景色の指定が出来ました。


では、実行してみましょう。


目まぐるしくキャラクタが画面上を動き回り、その後に無数の色とりどりのドットが描かれるはずです。


今回は、座標を演算を繰り返す形で指定しました。

プログラムによる描画では様々な演算を用いて思いもよらない画像を作る事が出来るのです。

0 件のコメント:

コメントを投稿