PythonのTurtleグラフィックス入門!基本メソッド一覧と図形描画サンプルコード集
Turtle(タートル)はPythonに標準搭載された特殊な機能で、専用の描画ウィンドウ上に簡単に図形を描くことができるモジュールです。
使い方はとてもシンプルです。まずturtleモジュールをインポートし、次にウィンドウ(Screen)を作成、その後タートルオブジェクトを生成します。あとは各種メソッドを呼び出すだけで、キャンバス上に自由に描画できます。この記事では、よく使われるメソッドの一覧表と、正方形・星・六角形などの具体的な描画例をサンプルコード付きで解説します。
主なTurtleメソッド一覧
| メソッド | パラメータ | 説明 |
|---|---|---|
| Turtle() | なし | 新しいタートルオブジェクトを作成して返します |
| forward() | amount | 指定した距離だけタートルを前進させます |
| backward() | amount | 指定した距離だけタートルを後退させます |
| right() | angle | タートルを時計回りに回転させます |
| left() | angle | タートルを反時計回りに回転させます |
| penup() | なし | ペンを上げます(移動しても線が描かれなくなります) |
| pendown() | なし | ペンを下ろします(移動すると線が描かれます) |
| up() | なし | ペンを上げます(penup()と同じ動作) |
| down() | なし | ペンを下ろします(pendown()と同じ動作) |
| color() | 色名 | ペンの色を変更します |
| fillcolor() | 色名 | 多角形を塗りつぶす際の色を変更します |
| heading() | なし | 現在の進行方向(角度)を返します |
| position() | なし | 現在の位置を返します |
| goto() | x, y | 指定した座標(x, y)へタートルを移動させます |
| begin_fill() | なし | 塗りつぶす図形の開始点を記録します |
| end_fill() | なし | 図形を閉じ、現在の塗りつぶし色で塗りつぶします |
| dot() | なし | 現在位置に点を描きます |
| stamp() | なし | 現在位置にタートルの形のスタンプを残します |
| shape() | shapename | 「arrow」「classic」「turtle」「circle」のいずれかを指定できます |
基本的な描画例
最初の例では、青い背景のウィンドウを作成し、白い太い線で図形を描いています。
# turtleライブラリをインポート
import turtle
my_window = turtle.Screen()
my_window.bgcolor("blue") # グラフィックウィンドウを作成
my_pen = turtle.Turtle()
my_pen.forward(150)
my_pen.left(90)
my_pen.forward(75)
my_pen.color("white")
my_pen.pensize(12)
実行結果
正方形を描く
forループを使って「50ピクセル前進→90度右回転」を4回繰り返すことで、正方形を描画しています。
# turtleライブラリをインポート import turtle my_pen = turtle.Turtle() for i in range(4): my_pen.forward(50) my_pen.right(90) turtle.done()
実行結果
星を描く
144度ずつ右に回転しながら50回繰り返すことで、星形のパターンを描きます。
# turtleライブラリをインポート import turtle my_pen = turtle.Turtle() for i in range(50): my_pen.forward(50) my_pen.right(144) turtle.done()
実行結果
六角形を描く
辺の数を6、辺の長さを70とし、外角(360÷6=60度)ずつ回転しながら描画することで、きれいな六角形が完成します。
# turtleライブラリをインポート import turtle polygon = turtle.Turtle() my_num_sides = 6 my_side_length = 70 my_angle = 360.0 / my_num_sides for i in range(my_num_sides): polygon.forward(my_side_length) polygon.right(my_angle) turtle.done()
実行結果
入れ子になった正方形を描く
正方形を描く関数を定義し、サイズを少しずつ小さくしながら複数回呼び出すことで、入れ子状の正方形を描画します。
# turtleライブラリをインポート
import turtle
my_wn = turtle.Screen()
my_wn.bgcolor("light blue")
my_wn.title("Turtle")
my_pen = turtle.Turtle()
my_pen.color("black")
def my_sqrfunc(size):
for i in range(4):
my_pen.fd(size)
my_pen.left(90)
size = size - 5
my_sqrfunc(146)
my_sqrfunc(126)
my_sqrfunc(106)
my_sqrfunc(86)
my_sqrfunc(66)
my_sqrfunc(46)
my_sqrfunc(26)
実行結果
円を使った模様の描画
circle()メソッドで円を描きながら少しずつ左に回転することで、花のような美しい幾何学模様が生まれます。
# turtleライブラリをインポート import turtle my_wn = turtle.Screen() turtle.speed(2) for i in range(30): turtle.circle(5*i) turtle.circle(-5*i) turtle.left(i) turtle.exitonclick()
実行結果
カラフルなスパイラル模様の描画
色のリストを順番に切り替えながら、線の太さと進む距離を変化させていくことで、黒い背景に映えるカラフルな模様を描きます。
# turtleライブラリをインポート
import turtle
colors = [ "red","purple","blue","green","orange","yellow"]
my_pen = turtle.Pen()
turtle.bgcolor("black")
for x in range(360):
my_pen.pencolor(colors[x % 6])
my_pen.width(x/100 + 1)
my_pen.forward(x)
my_pen.left(59)
実行結果
-
Windowsで使えるPython開発用IDEおすすめ7選|PyCharmからAtomまで徹底解説
Windows環境でPythonの開発を始めるとき、最初に悩むのが「どのIDE(統合開発環境)を選ぶべきか」という問題です。IDEはコードの編集・実行・デバッグなどをひとつのアプリケーションで完結できる強力なツールであり、選択次第で開発効率が大きく変わります。 本記事では、Windowsで利用できる代表的なPython対応IDEを厳選し、それぞれの特徴やメリットをわかりやすく解説します。 PyCharm PyCharmはJetBrains社が開発する、Python開発で最も人気のあるIDEのひとつです。無料のコミュニティ版と有料のプロフェッショナル版が用意されており、初心者からプロフェッショ
-
Pythonで描く葉序(ようじょ)パターン ― フィボナッチ螺旋の美しさをコードで再現
葉序パターンとは? 植物学の授業や植物の世界でよく耳にする「葉序(ようじょ)」とは、植物の茎に花・葉・種子などがどのような順序で配置されるかを表す用語です。この配置は、いわゆる「フィボナッチ螺旋」と非常によく似たパターンを示します。 フィボナッチ螺旋は、パスカルの三角形にも似た規則性を持つ数列、すなわちフィボナッチ数列に基づいています。フィボナッチ数列は次のように続きます。 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 … この数列の特徴は、各項が直前の2つの数の和になっているという点です。自然界のあらゆる場所に潜む、シンプルながら奥深い数理構造と言えま