正方形や正五角形を描こう
次は、正三角形以外の多角形を描画してみましょう。
といっても、その方法は簡単です。正三角形を描くプログラムを改造すればいいからです。
まずは正方形について考えましょう。
正方形は内角の大きさは90度です。そして外角も90度です。つまり、このはちゃんを回す角度は90度です。そして正方形は角が4つありますから、繰り返しは4回にします。
といっても、その方法は簡単です。正三角形を描くプログラムを改造すればいいからです。
まずは正方形について考えましょう。
正方形は内角の大きさは90度です。そして外角も90度です。つまり、このはちゃんを回す角度は90度です。そして正方形は角が4つありますから、繰り返しは4回にします。

正方形が描けました
つぎは正五角形にチャレンジしてみましょう。
正五角形の内角は108度で、外角は72度です。ですので、このはちゃんを回す角度は72度です。そして五角形は角が5つありますから、繰り返しは5回にします。
正五角形の内角は108度で、外角は72度です。ですので、このはちゃんを回す角度は72度です。そして五角形は角が5つありますから、繰り返しは5回にします。

五角形が描けました
星印も描いてみよう
このはちゃんが描いた星印のような図形は「星型正五角形」と呼ばれています。これは五角形の仲間です。ですから、先ほどチャレンジした正五角形を描くプログラムを改造すれば、星印も描けるのです。
ただ、ここで問題になるのは、星の内角と外角の大きさです。このはちゃんは、何度回ればよいのでしょうか。
星形正五角形の内角の大きさを見つける方法は、いくつかありますが、今回は代表的な方法を紹介します。小学校5年生の算数で習う内容を使います。
次のような星形正五角形で考えます。
ただ、ここで問題になるのは、星の内角と外角の大きさです。このはちゃんは、何度回ればよいのでしょうか。
星形正五角形の内角の大きさを見つける方法は、いくつかありますが、今回は代表的な方法を紹介します。小学校5年生の算数で習う内容を使います。
次のような星形正五角形で考えます。

この星形正五角形の、内角の大きさは?
この星型正五角形には、よく見ると三角形がいくつか隠れています。例えば、次のような三角形を見つけられます。

星印には、三角形が隠れている
ところで、1つの三角形の内角は3つありますね。そして三角形の内角を3つ全部足すと、必ず180度になります。
この「三角形の内角の和は180度」の決まりをヒントに、星形正五角形の「b」と「d」の角度を計算してみましょう。
今回のオレンジ色の三角形で考えると、内角bと内角d以外の、もう1つの内角の大きさは、「三角形の内角の和である180度から、『b』と『d』の角の大きさを引いた数」です。
この「三角形の内角の和は180度」の決まりをヒントに、星形正五角形の「b」と「d」の角度を計算してみましょう。
今回のオレンジ色の三角形で考えると、内角bと内角d以外の、もう1つの内角の大きさは、「三角形の内角の和である180度から、『b』と『d』の角の大きさを引いた数」です。

「三角形の内角の和は180度」をヒントにしよう
そして外角は「b+d」です。

外角の大きさは「b+d」と書くことができます
同じような考え方で、次の三角形の外角は「c+e」と書くことができます。

外角の大きさは「c+e」と書くことができます
最後に、星形正五角形の一番上の三角形に注目してみましょう。

星形正五角形の一番上の三角形を見てみると?
この赤い三角形の内角は「a」と「b+d」と「c+e」ですね。そして「三角形の内角の和は180度」であることを思い出してください。これらを組み合わせて考えると、「a+b+c+d+e=180」と書くことができます。a、b、c、d、eは……そう、星形正五角形の内角です!
つまり、星型正五角形に5つある内角のうち、1つの内角の大きさは「180÷5=36」です。そして、その外角にあたる144度をこのはちゃんの回転する角度として指定すれば、星形正五角形を描くことができます。
つまり、星型正五角形に5つある内角のうち、1つの内角の大きさは「180÷5=36」です。そして、その外角にあたる144度をこのはちゃんの回転する角度として指定すれば、星形正五角形を描くことができます。

星形正五角形が描けました
次回予告「プログラミングのキホンがどこで使われているかを確認しよう」
これまで私たちは、プログラミングの3つの基本「順次」「分岐」「繰り返し」を学んできました。
ここまで読んでくれた皆さんは、もう立派なプログラマーの卵です。次回は、皆さんが学んだプログラミングの基本が、世の中でどのように使われているのかを見ていきましょう。
ここまで読んでくれた皆さんは、もう立派なプログラマーの卵です。次回は、皆さんが学んだプログラミングの基本が、世の中でどのように使われているのかを見ていきましょう。

成瀬 允宣
【GMOインターネットグループ デベロッパーエキスパート / GMOインターネットグループ アプリケーション開発本部 所属】
テックリードとしてWebアプリケーションプロダクト開発に従事するほか、大学講師やKids VALLEY プロジェクトにおける小学校プログラミング教育に携わる。また、カンファレンスなどでソフトウェア開発・設計を主軸に講演活動を行っている。
著書『ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本』
X:@nrslibi