Turtle と一緒にお絵描きたぁぃむ
Pythonの良いところは、誰かが作った便利機能(モジュール)がインターネット上にたくさんあって、みんなで使い回すことができること。では、Turtle グラフィック・モジュールをインポート(import turtle)して「Python でお絵描きたぁぃむ」といきましょう。
Turtleモジュールにはたくさんの機能が搭載されていますが、 ここでは次の2つだけを使うことにします。
さて、いきなりですが、次のコードを実行すると何を描くでしょうか?
import turtle
for i in range(3):
turtle.forward(100)
turtle.left(60)
「距離100だけ前進して、左に60°回転する」を3回繰り返すわけですね。正三角形を描くでしょうか?
何はともあれ実行してみると、惜しいことに正三角形にはなりません。でも、実行結果を見れば、なるほど正三角形にならない理由、どうしてそんな図形になるのか、も分かると思います。 では、ここで【問題】です。
ぐるりと「左上 → 右上 → 右中 → 右下 → 左下 → 左中 → 中央」の順に、後ほど私が作ったコードを示しますが、使った構文は「turtle.foward(距離)」と「turtle.left(角度)」とそして for 文だけです。
右下のドーナツ形(?)の作り方は、右中の星形の作り方とほぼ同じで、線の数を増やしただけです。左下と左中の図形では、for 文の2重ループを使いました。中央の渦巻き形は、左上の正三角形・右上の正六角形の作り方をベースにしながら、辺の数を増やすと同時に辺の長さを少しずつ長くしました。
import turtle
for i in range(3):
turtle.forward(100)
turtle.left(120)
# 正三角形
import turtle
for i in range(6):
turtle.forward(50)
turtle.left(60)
# 正六角形
import turtle
for i in range(5):
turtle.forward(100)
turtle.left(144)
# 星形
import turtle
for i in range(40):
turtle.forward(100)
turtle.left(117)
# ドーナツ形?
import turtle
for i in range(3):
for j in range(4):
turtle.forward(50)
turtle.left(90)
turtle.left(120)
# 正方形3つ
import turtle
for i in range(9):
for j in range(3):
turtle.forward(50)
turtle.left(120)
turtle.left(40)
# 正三角形9個
import turtle
for i in range(200):
turtle.forward(i/20)
turtle.left(10)
# 渦巻き形
以上、「お絵描きたぁぃむ」でした。
◇ ◇ ◇
〜 Python Python でお絵描きたぁいむ 〜
▷ Python で文字図形を描く
▷ Turtle と一緒にお絵描きたぁぃむ
▷ シェルピンスキーのギャスケット