Scratch(多角形をえがく)

Scratch-Polygon_Titleプログラム

微分・積分放物線など前回は高校数学物理の話して、小学生向けの算数Scratchも書けといわれそうなので、今回はScratchを使って多角形を描こうというお題です。

できあがったものがこちら

中身をみたい場合はこちら

https://scratch.mit.edu/projects/563336639

多角形プログラムを作るにあたっての前提知識

今回はScratchを使って多角形(多角形というのは三角形や四角形、五角形などの頂点が3つ以上ある図形のこと)を書くプログラムをつくりますが、書くコードは至ってシンプルです。でも、そのシンプルなコードを書くにあたってのもととなる算数の知識が必要。それはこの図です。

Scratch-Polygon002_1

小学校でならってますよね?図形の中の角度を内角、その角度に隣う角度を外角。そして、この内角と外角には図にも書いているとおり次の特徴があります。

1)内角と外角を足すといつも180°になる
2)外角を全て足すといつも360°になる。
3)内角と外角は頂点の数だけある。

 

今回、多角形プログラムを作る上ではこの2)と3)の知識が必要になります。

これをもとにScratchキャットに図形を書かせるとこういうアルゴリズムになります。ここで描く多角形の各辺の長さを600としましょう。ここは正直なんでもよいです。大きな図形を描きたい場合は600よりおおきくしてもらえばいいし、逆に小さな図形をえがきたければ小さくしてください。

ということでアルゴリズムは

①決めた長さ(600)を頂点の数で割った数まで動かす
②360°を頂点の数で割って出た角度で回転する

これを頂点の数だけ繰り返すというだけです。図にするとこうなります。

Scratch-Polygon003

ここで、①については動く距離を頂点の数で割らずに固定的に決めるということもできますが、そうすると三角形や五角形のような頂点の数が少ない図形なら問題ないものの、二十角形などの頂点が多い図形を描くときに動く距離(つまり1辺の長さ)がそのまま固定だと画面の外にでてしまい、正しい図形がかけません。そのため、各辺の合計をあらかじめ600という数字で決めておいて、それを頂点の数でわることで一辺の長さを調整しているのです。

プログラムの説明

プログラムのアルゴリズムについては先ほど説明しました。ではプログラムの作り方について説明しますね。用意する変数は自由に〇角形をつくれるように、頂点の数というものを1つ用意します。あとはスプライトの説明になります。

Scratch-cat

プログラムの中身自体はいたってシンプルです。Scratchキャットの初期位置と角度、それから前に書いた線を消す、再びペンを下すという部分以外は、さきほど説明したアルゴリズムのみです。たったこれだけで、何角形でもつくれちゃいます。感動!

Scratch-Polygon001

 

では、最後に少し遊びごごろを加えたバージョンもつくっちゃいましょう


中身はこちら

https://scratch.mit.edu/projects/563086768

 

まとめ

今回の多角形を描くプログラムは図形の基本的なルールがわかっていたら実にシンプルに作れるというものでした。この記事より前にScratchの基本として関数について述べた回がありましたが、そこではギターねこくんとドラネコくんが一生懸命三角形をかく関数をつくっていました。実はあそこでもこの多角形プログラムを使ってあげたら、三角形だけじゃなく、四角形も五角形も何個でもつくれたということになります。今から教えてあげたいですね。

 

 

コメント

タイトルとURLをコピーしました