見出し画像

【AI探求コース】六芒星を描こう✡️

10月のAI探求コースでは、
六芒星の外周を描くプログラムを作ってみました🌟

六芒星(ろくぼうせい、りくぼうせい)とは、星型多角形の一種で、六本の線分が交差する図形である。六角形の各辺を延長することでできる。六角星、六線星、星型六角形、ヘキサグラム (hexagram) ともいう。また、六芒星中にある六角形を抜いた形を六光星と呼ぶ。

六芒星 - Wikipedia

上記からすると、
六芒星の外周とは六光星ということです!


Scratchで描く

さあ、これをScratchで描くためにはどうしたらよいでしょう!

まずは角度を調べなければいけません。
六光星は、
二つの正三角形を重ね合わせた図形なので、
鋭角(とがっているところ)の角度は60度です。
さらに、
鈍角(へこんでいるところ)の角度は240度であることがわかります。

しかしこれだけでは、描くことができません。
次は、先ほどの角度を参考に、
進行方向をどちらに何度回転させるかを考えます。
これを考えると、以下のように
右回りに120度回転するところと、
左回りに60度回転するところの組み合わせであることがわかります。

次に各辺の長さですが、これはすべて同じです。
そしてその長さは好きに設定して問題ありません。

このことから、歩く歩数を30歩とすると、
六光星を描くプログラムは以下のように書くことができます。

①30歩進む
②右回りに120度回転する
③30歩進む
④左回りに60度回転する
①〜④を6回繰り返す

実際にScratchで書いてみるとこんな感じです。

※先ほど定義したもの以外のブロックは、初期位置の設定と線を描くために必要なブロックです。

こんな感じで、六光星を描くことができました🙌


ロボホンで描く

次は、これをロボホンでやってみます。
ロボホンがこの図形通りに歩くようにするには
Scratchのブロックから変換しなければいけないところがあります。

それは、角度の部分です。
ロボホンのプログラミングをする
ロブリックでは、
角度を書くのではなく、
何歩回るかを書きます。

したがって、
ロボホンの「1歩回る」は何度回転するのかを調べなければいけません。
これを測ったところ、
完全に正確ではないのですが、
1歩は30度でした。

そうすると、以下のように書くことができます。
(ロボホンで30歩行くと、とてつもなくでかい六光星になってしまうので、5歩くらいにしておきます。)

①5歩、前へ歩く
②4歩、右に回る
③5歩、前へ歩く
④2歩、左に回る
①〜④を6回繰り返す

このように書くと、
(角度が正確ではないので、完全に元の位置に戻るわけではないですが、)
だいたい六光星を歩くロボホンを
プログラムすることができます!


このように、
同じ動きをさせようと思っても、
環境による書き方の違いや
現実世界の制限などによって
一筋縄でいかないこともあります。

このとき、
どのようにすればうまくいくのか、
どこをどう変えたらいいのか、
このようなことを考えることが力になります💪

それがプログラミングを学ぶことの
大きな意味だと思います。
これからもこのような論理的思考力を身につけることに
取り組んでいきたいと思います!

いいなと思ったら応援しよう!