微分・積分や放物線など前回は高校数学物理の話して、小学生向けの算数Scratchも書けといわれそうなので、今回はScratchを使って多角形を描こうというお題です。
できあがったものがこちら
中身をみたい場合はこちら
多角形プログラムを作るにあたっての前提知識
今回はScratchを使って多角形(多角形というのは三角形や四角形、五角形などの頂点が3つ以上ある図形のこと)を書くプログラムをつくりますが、書くコードは至ってシンプルです。でも、そのシンプルなコードを書くにあたってのもととなる算数の知識が必要。それはこの図です。
小学校でならってますよね?図形の中の角度を内角、その角度に隣う角度を外角。そして、この内角と外角には図にも書いているとおり次の特徴があります。
2)外角を全て足すといつも360°になる。
3)内角と外角は頂点の数だけある。
今回、多角形プログラムを作る上ではこの2)と3)の知識が必要になります。
これをもとにScratchキャットに図形を書かせるとこういうアルゴリズムになります。ここで描く多角形の各辺の長さを600としましょう。ここは正直なんでもよいです。大きな図形を描きたい場合は600よりおおきくしてもらえばいいし、逆に小さな図形をえがきたければ小さくしてください。
ということでアルゴリズムは
これを頂点の数だけ繰り返すというだけです。図にするとこうなります。
ここで、①については動く距離を頂点の数で割らずに固定的に決めるということもできますが、そうすると三角形や五角形のような頂点の数が少ない図形なら問題ないものの、二十角形などの頂点が多い図形を描くときに動く距離(つまり1辺の長さ)がそのまま固定だと画面の外にでてしまい、正しい図形がかけません。そのため、各辺の合計をあらかじめ600という数字で決めておいて、それを頂点の数でわることで一辺の長さを調整しているのです。
プログラムの説明
プログラムのアルゴリズムについては先ほど説明しました。ではプログラムの作り方について説明しますね。用意する変数は自由に〇角形をつくれるように、頂点の数というものを1つ用意します。あとはスプライトの説明になります。
プログラムの中身自体はいたってシンプルです。Scratchキャットの初期位置と角度、それから前に書いた線を消す、再びペンを下すという部分以外は、さきほど説明したアルゴリズムのみです。たったこれだけで、何角形でもつくれちゃいます。感動!
では、最後に少し遊びごごろを加えたバージョンもつくっちゃいましょう
中身はこちら
まとめ
今回の多角形を描くプログラムは図形の基本的なルールがわかっていたら実にシンプルに作れるというものでした。この記事より前にScratchの基本として関数について述べた回がありましたが、そこではギターねこくんとドラネコくんが一生懸命三角形をかく関数をつくっていました。実はあそこでもこの多角形プログラムを使ってあげたら、三角形だけじゃなく、四角形も五角形も何個でもつくれたということになります。今から教えてあげたいですね。
コメント