【Phthon】タートルグラフィックスのforwardとleftを使って描画しよう
タートルグラフィックスは子供向けのプログラミングに入門でよく用いられます。 タートルグラフィックスは Wally Feurzeig, Seymour Papert, Cynthia Solomon が 1967に開発したオリジナルの Logo プログラミング言語の一部分です。このメソッドを利用して色々勉強してみましょう。小学校のプログラミング教育では、五角形をスクラッチで動かして実施する
にほんブログ村
タートルグラフィックスとは
タートルグラフィックスは子供向けのプログラミングに入門でよく用いられます。 タートルグラフィックスは Wally Feurzeig, Seymour Papert, Cynthia Solomon が 1967に開発したオリジナルの Logo プログラミング言語の一部分です。
詳しくはこちらのページより ーーー> ここをクリック
この記事で紹介するforwardとleftメソッドについて
forwardメソッド
記載方法:turtle.forward(distance)
パラメータ:distance -- 数 (整数または浮動小数点数)
タートルが頭を向けている方へ、タートルを距離 distance だけ前進させます。下の図からもわかるように、タートルの長さとなります。
leftメソッド
記載方法:turtle.left(angle)
パラメータ:angle -- 数 (整数または浮動小数点数)
タートルを angle 単位だけ左に回します。 (単位のデフォルトは度ですが、 degrees()
と radians()
関数を使って設定できます。)
forwardとleftメゾットを使ってn角形を描画しよう
では、今回学んだメソッドを利用してn角形を描いてみよう!!
三角形を描いてみよう
プログラム作成の考え方
正三角形は、1つの角度60度となります。どの頂点からスタートしても良いのですが、
1 同じ長さの辺が3つ必要
2 60度の角度が3つ必要
という条件で記載する必要があります
import turtle as Tu #Tuという名称へ変更してturtleをインポート
t = Tu.Turtle() #tへturtleオブジェクトを生成
t.screen.delay(100) #動画作成のため、描画速度を遅くしている プログラムから外しても問題無し
for i in range(3): #for文 3回繰り返す
t.forward(100) #100進む
t.left(120) #60度の角度 180-120 で計算
四角形を描いてみよう
プログラム作成の考え方
正方形は、1つの角度90度となります。どの頂点からスタートしても良いのですが、
1 同じ長さの辺が4つ必要
2 60度の角度が4つ必要
という条件で記載する必要があります
import turtle as Tu #Tuという名称へ変更してturtleをインポート
t = Tu.Turtle() #tへturtleオブジェクトを生成
t.screen.delay(100) #動画作成のため、描画速度を遅くしている プログラムから外しても問題無し
for i in range(4): #for文 4回繰り返す
t.forward(100) #100進む
t.left(90) #90度の角度
五角形を描いてみよう
プログラム作成の考え方
正5角形は、1つの角度108度となります。どの頂点からスタートしても良いのですが、
1 同じ長さの辺が5つ必要
2 108度の角度が5つ必要(内角が540°)
という条件で記載する必要があります
import turtle as Tu #Tuという名称へ変更してturtleをインポート
t = Tu.Turtle() #tへturtleオブジェクトを生成
t.screen.delay(100) #動画作成のため、描画速度を遅くしている プログラムから外しても問題無し
for i in range(5): #for文 5回繰り返す
t.forward(100) #100進む
t.left(72) #72度の角度 180-108
星形を描いてみよう
プログラム作成の考え方
前提として、星形5角形については、内角の和が180°になります。したがって、本来であれば内角が180°になれば、星形を描くことが可能です。しかし。今回のプログラムは、長さが全て規定値の100で描くため180÷5=36°で描いていく必要があります。
1 同じ長さの辺が5本必要
2 1つの角度が36°(180-36=144)
import turtle as Tu
t = Tu.Turtle()
t.screen.delay(100)
for i in range(5):
t.forward(100)
t.right(144)
動画
動画の一覧です。参考までにご一覧ください
まとめ
タートルを作ってPythonのプログラミングをしてみました。プログラミング学習の基礎として勉強してみてください