今回は、スクラッチを使って四角形の面積を求めるプログラムを作成したので説明します。以下の動画でも解説しているので、よかったら見てみてください。
皆さんご存知のとおり、四角形の面積は「底辺」と「高さ」がわかれば計算することが出来ます。
四角形の面積 = 底辺 × 高さ
では、Scratchでステージ上に配置した四角形の面積を求めるにはどうしたらよいでしょうか?
底辺と高さがわかれば上の計算式で面積を求めることができるのですから、辺の長さを知ることができれば面積を求められます。しかしながら、Scratchには「辺の長さを測る」というブロックは存在しません。ですので、辺の長さを測る仕組みを考え、作成する必要があります。
辺の長さを測る仕組み
今回は、辺の長さを求める仕組みとして、下の図に示した青色のバーを使います。青いバーは「新しいスプライトを描く」から追加しました。(できるだけ左端に線を描く)
この青いバーを右に1ずつ(x座標を1ずつ)どんどん動かしていきます。ある程度進むと、オレンジの四角形まで到達し、さらに進むと四角形を通り過ぎ画面の端まで動きます。このとき、オレンジの四角に触れてから触れ終わるまでに動いた青いバーの座標を数えれば、底辺がわかります。
この仕組みを実現するために今回は以下のようなプログラムを作成しました。
比較的シンプルな中身になっています。上から順に説明していきます。
まずは、青いバーの「座標(位置)」と、「変数:ていへん」を初期化します。
次に、繰り返しブロック「ずっと」を使って、x座標を1ずつ変えます。これで、青いバーが徐々に右に動かすことができます。そして、図形(オレンジの四角)に触れたら、触れ終わるまで(プログラム上では「図形に触れたではないまで」)x座標を1ずつ変えるとともに「ていへん」を1ずつ増やしていきます。
これによって、図形に触れている間に動いた座標を求めることができます。
実行してみると、青いバーが右に動き、底辺の長さが増えていくことが確認できました。底辺を測るプログラムが完成したので、次は高さを測るプログラムを作っていきます。考え方は全く同じです。
先ほどと同じように、青いバーの「位置」と「変数:たかさ」を初期化します。そして、今度は、青いバーを画面下から上に動かしていくので、y座標を1ずつ変えていきます。図形に触れたら、y座標を1ずつ変えるとともに「たかさ」を1ずつ変えることで、高さを求めることができます。
面積を計算する
底辺と高さがわかったらあとは面積を計算するだけです。「変数:めんせき」を用意して、初期化します。そして、「めんせき」の値を
「ていへん × たかさ」にすることで、先ほどの青いバーで求めた底辺と高さに応じて面積を求めることがでできます。
これで面積を求めるプログラムの完成です!
まとめ
今回のプログラムのポイントは四角形の辺の長さを求める仕組み作りです。どのようにしたら、辺の長さを測ることができるか考えプログラムに実装する過程で多くの学びがあります。今回紹介した方法以外にも様々なやり方があると思いますので、是非考えてみてください。