見出し画像

Turtle と一緒にお絵描きたぁぃむ

 Pythonの良いところは、誰かが作った便利機能(モジュール)がインターネット上にたくさんあって、みんなで使い回すことができること。では、Turtle グラフィック・モジュールをインポート(import turtle)して「Python でお絵描きたぁぃむ」といきましょう。
 Turtleモジュールにはたくさんの機能が搭載されていますが、 ここでは次の2つだけを使うことにします。

turtle.foward(距離)   ← forward:前
turtle.left(角度)    ← left:左(角度の単位は度°)

※ forward(前)があるなら backward(後)もあるわけで、left(左)があるなら right(右)もあるわけで、それらを使っても構わないのですが、最初のうちは使えるものを絞った方が使いやすかったり、むしろその方が楽しめたりということもあるでしょうから、ここでは forward と left だけでやってみましょう。他に for 文とか使うとして。

 さて、いきなりですが、次のコードを実行すると何を描くでしょうか?

import turtle
for i in range(3):
    turtle.forward(100)
    turtle.left(60)

「距離100だけ前進して、左に60°回転する」を3回繰り返すわけですね。正三角形を描くでしょうか?
 何はともあれ実行してみると、惜しいことに正三角形にはなりません。でも、実行結果を見れば、なるほど正三角形にならない理由、どうしてそんな図形になるのか、も分かると思います。 では、ここで【問題】です。

(1) 上のコードの4行目の数値を変えて「正三角形」を描いてください。
(2) 上のコードの2行目の数値を変えて「正三角形でない他の正多角形」を描いてください。
(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 と一緒にお絵描きたぁぃむ
▷ シェルピンスキーのギャスケット

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