プログラミング初心者のためのScratch(スクラッチ)入門-ペン編(7)

プログラミング初心者の子供に何を教えたらいいの?とお悩みの保護者のためのScratch(スクラッチ)の入門講座。Scratchで猫の動かし方はわかったけど・・・次にどんなことをしたらいいの?という疑問にお答えするシリーズです。
今回は「ペン」をつかった応用作品についてお届けします。

対象は小学校高学年のお子さん向けになっています。小学校低学年のお子さんは、保護者がまず作り、お子さんがプログラムを改造するという方法がおすすめです。

今回は、ペンで描く「生物」編をお届けします。

目次

1. 関数で描く生物

1-1. どんな生物が描けるの?

今回は関数で描く生物っぽい曲線を描いてみます。生物といっても動物だけじゃありません。植物や生き物に関連するものも含めると生物の名前がついた曲線はいろいろあります。

・ちょうちょ=バタフライカーブ
・さかな=フィッシュカーブ
・豆=ビーンカーブ
・卵=エッグカーブ
・ピーナッツ=ピーナッツカーブ
・スカラベ(虫)=スカラベカーブ

など。今回はこの中からバタフライカーブ、フィッシュカーブ、エッグカーブに挑戦してみます!

2. 卵を描こう エッグカーブ(Egg Curve)

2-1. エッグカーブ(Egg Curve)の式

卵の曲線を表す式はこちらの方が研究されているようでして、以下のホームページを参考にさせていただきました。
実際の卵と比較してほとんど同じであることを確認されています。

上記ページによれば、エッグカーブの式は

となります。このうちa=1, b=0.72, c=0.1が現実の卵に近いそうです。

2-2. エッグカーブ(Egg Curve)の式をScratchで作ろう

上記の式をa=1, b=0.72, c=0.1という値にしてスクラッチで作ると次のようになります。

上がxの式、下がyの式です。

2-3. エッグカーブをペンで描こう

式ができたら、ペンで描くプログラムを作ります。絵のないスプライトを用意して、次のようなプログラムを作成しましょう。
上記の式そのままでは図が小さすぎるので、100倍の大きさで描くようにしました。

このプログラムを実行すると、卵型が描けました!

ここまでできたら次の修正を加えます。
・余計な線や前回書いた線を消す
・変数シータを最初は0にする。
・変数シータが360になったら(一周描いたら)プログラムが終わるようにする

はい!綺麗なたまごが描けました。

サンプルプログラムはこちらです。
https://scratch.mit.edu/projects/218529922/

3. 魚を描こう フィッシュカーブ(Fish Curve)

3-1. フィッシュカーブ(Fish Curve)の式

魚の形の曲線、フィッシュカーブは次の式で表されます。

3-2. フィッシュカーブ(Fish Curve)の式をScratchで作ろう

上記の式をスクラッチで作ると次のようになります。
上がxの式、下がyの式です。

√2はScratchでは「平方根」というブロックを使いますよ。

3-3. フィッシュカーブをペンで描こう

式ができたら、ペンで描くプログラムを作ります。絵のないスプライトを用意して、次のようなプログラムを作成しましょう。
この式では変数aで大きさがきまります。まずは変数aを100にして、プログラムを実行してみます。

お魚が描けました!

先ほどのエッグカーブと同様に次の修正を加えます。
・前回書いた線を消す
・変数シータを最初は0にする。
・変数シータが360になったら(一周描いたら)プログラムが終わるようにする。

3-4. フィッシュカーブを重ねよう

フィッシュカーブは変数aで大きさを変えられるので、変数aの値を変化させて、フィッシュカーブを重ねて描いていきたいと思います。
合わせて色や濃さも変えてみましょう。

こちらのプログラムを実行すると・・・大きさの違う魚の形を重ねることができました。

サンプルプログラムはこちらです
https://scratch.mit.edu/projects/218541516/

4. 蝶を描こう バタフライカーブ(Butterfly Curve)

4-1. バタフライカーブ(Butterfly Curve)の式

蝶の形の曲線、バタフライカーブは次の式で表されます。

4-2. バタフライカーブ(Butterfly Curve)の式をScratchで作ろう

上記の式をスクラッチで作りたいのですが・・・やっかいなのが「sinの5乗」。これを一体どうしたらいいでしょうか?もちろん5回掛け算をすればいいのですが、はっきり言って面倒です。

そこで繰り返しを使って掛け算を行うことにします。

▼sin^5(t/12)を計算する方法

上の手順で使った「計算結果」という変数を使って式を作りました。上がxの式、下がyの式です。

4-3. バタフライカーブをペンで描こう

式ができたら、ペンで描くプログラムを作ります。絵のないスプライトを用意して、次のようなプログラムを作成しましょう。
そのままだと図が小さすぎるので、50倍の大きさになるようにしています。

このプログラムを実行すると・・・こうなりました。

羽の上の部分が画面端にぶつかってしまっているので、y座標をすこし下げましょう。その他、以下の修正を加えます。
・前回書いた線を消す
・変数tが2160(=12π)になったら(一周描いたら)プログラムが終わるようにする。
・ペンの色を調整
・背景色を設定

このプログラムで作成した絵がこちらです。

金色の蝶が完成しました!

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

ペン編(7)まとめ

今回は生物をテーマに、関数を使って模様を描いてみました。

今回のポイントは累乗をどうするか?です。
入れ子にするのも限界がありますので、うまく繰り返しなどを使ってみてください。

このほかの以下の曲線にもぜひチャレンジしてみてくださいね。

・豆=ビーンカーブ
・ピーナッツ=ピーナッツカーブ
・スカラベ(虫)=スカラベカーブ

この記事を書いた人

目次