はじめに
やあ、こんにちは。今日は『タートルグラフィック』を用いてグラフを描いてみよう。
はい!よろしくお願いします。
タートルは『亀』を意味する英単語だ。命令に忠実に従う亀に、いろいろな動きの指示を出し、その通りに亀が動いたときに残る軌跡を用いて図形を描くのだ。
そんなこともできるのですね!とても楽しみです!
さっそくビットアローを準備して始めていこう。今回はfile21に書いていくから準備してくれ。はじめに『タートルグラフィック』を使うためには第1行目に『import turtle』を書く必要がある。
ランダム関数を使うときと同様ですね!
うむ、何はともあれ下の例を見てほしい。
具体例
1行目はタートルグラフィックを呼び出すための文だ。
3行目は『前に(forward)100進め』という命令文を表している。
そして、4行目は『左回りに(left)90度回れ』という命令文だ。さてここでヒロトに問題だ。この3行目と4行目をfor文を用いて4回繰り返すとき亀の動いた軌跡はどのような図形になるでしょうか?
ちょっと待ってくださいね!
うん、なるほど。はい、答えは『正方形』です。
答え合わせは自分で書いて、実行して確認してごらん。
はい!for文の回数を4回にすればいいので・・・
できました!ちゃんと正方形が描かれました!
階段
うむ、正解だ!これからもっと工夫を凝らしてより複雑な図形を描いてみよう。まずは手始めに『階段』を描いてみよう。段数はそうだな、5段にしておこうか。さあ、これは自分で考えてやってごらん。
階段か・・・ちょっとノートに書いてから考えてみます。
なるほど、同じ命令を5回繰り返せば良さそうだぞ!
新しくfile22を作成して書いていきます。
出来ました!しっかり、5段の階段が描かれました!
予想どおりの図形ができると気持ちいいですね。
\(\star\) 星形 \(\star\)
うむ、完璧だ!次はもう少し難しいものに挑戦してみよう。では、定番中の定番、『星形』を描いてみよう。
星形というと次の図形ですね!
うーん、これは難しそうだぞ。ちょっと待てよ、ここの角度 \(x\) が分かれば、これも5回同じことを繰返せばいいんじゃないかな?
よし、方針が立ったぞ!まず、角 \(x\) の大きさを求めます。
鍵となる角度
よし、これで角度 \(x\) がわかったから後はfor文で5回繰り返せばいいはず・・・
できました!
『まっすぐ進んで右回りに \(144^{\circ}\) だけ回転』
を5回繰り返せば星形が書けることに気づきました。
うむ素晴らしく完璧だ!
この調子で練習問題をやって今回は終わりにしよう。
はい、頑張ります!
練習問題
問題
以下の図をタートルグラフィックを用いて描いてみよう!
※新しくfile24、file25を作成してそれぞれに解答しよう!
(1)正五角形
(2)正六角形(ただし、下図のように正三角形を6枚張り合わせて描くこと)
解答
(1)
(1)は正五角形ですね。これは、星形のときのようにある一つの角度が分かれば解決しそうです!
できました!正五角形の一つの内角の大きさ \(108^{\circ}\) を求めるのが鍵でした。
うむ、星形ができたのだから特に問題ないようだな!その調子で(2)もやってみよう!
はい!(2)は正三角形を6枚並べて正六角形を描くのだから、for文を使ってエレガントに書きたいですね。さて、どうしようかな・・・
まあまあ長い格闘の末・・・
やったー!できました!
for文を2回使いました!3行目のfor文は回数を6回にして、その中で正三角形を作る文と、左回りに60度回るという文を書きました。4行目のfor文は正三角形を作るためのfor文です。
うむ、完璧だ!
少し難しかったと思うが、よく自力で頑張ったな!図形から、どのようなプログラムを描くのかイメージし、その通りに実行されたときは本当にうれしいものだ!ぜひ、いろいろ遊んでみて自分だけの美しい図形を見つけてほしい。では、今日はここまでにしよう。次回も楽しみにしててくれ。では、お疲れさん。
はい!とても楽しかったです。
今日もありがとうございました!
コメント