Personal tools

Pythonのゆるかわほっこり系モジュール - turtle

by ats posted at 2008-02-25 14:11 last modified 2008-02-25 17:41

Pythonにはturtleというモジュールが標準でついてきます。このモジュールは「タートルグラフィックス」を手軽に利用できるモジュールで,ノコノコと進む「カーソル」 と呼ばれるペンを使って,線をひきながら図形を書くことができます。

タートルグラフィックスはプログラミングの教育用に考案されたものです。タートルグラフィックスを使うと,命令や関数,条件分岐やループのようなプログラムの動きを目で確認しながらプログラムを作れます。画面に「Hello python」と表示するより図形を書く方が数倍ファンシーだし,楽しいので学習意欲も維持できそうです。

turtleモジュールはWindowsからLinuxのGUI環境,Mac OS Xなどほぼすべての環境で利用できます。Tkに依存しています。Windowsで利用する場合,IDLEを使うとちゃんと動かないことがあるようです。Winな人は「Python(Command Line)」から使うと良いでしょう。

使い方は簡単です。モジュールをインポートするだけ。「前に進む(forward)」「右に曲がる(right)」のような関数を呼ぶと,線が引けます。

 

from turtle import *

 clear() # タートルグラフィックス用のウインドウが現れます

forward(100)

right(30)

forward(100)

left(90) 

hexagon.png

forループを使って六角形を書きましょう。

clear()

for i in range(6):
    forward(100)
    right(60)

raw_input("Type to finish:")


hexagon.png

右に曲がる角度を144度にして,繰り返しの回数を5回にすると星が書けます:-)。


hexagon.png

関数定義をしてもうすこし複雑な図形を書いてみましょう。花びらのような図形を書きます。

clear()

def draw_piece():
    for i in range(10):
        forward(20)
        left(4)
    left(140)
    for i in range(10):
        forward(20)
        left(4)

for i in range(16):
    draw_piece()

raw_input("Type to finish:")


TIPS:「tracer(False)」とすると,アニメーションを抑制して描画が早くなります。

hexagon.png

 いわゆる「ドラゴン曲線」を描いてみます。ドラゴン曲線を描くためには関数の再起呼び出しをする必要があります。

tracer(False)

def dragon_right(n):
    if n > 0:
        dragon_left(n-1)
        forward(5)
        right(90)
        dragon_right(n-1)

def dragon_left(n):
    if n > 0:
        dragon_left(n-1)
        forward(5)
        left(90)
        dragon_right(n-1)

reset()
dragon_right(12)

raw_input("Type to finish:")

 多くの実用的なモジュールだけでなく,こういう「ほっこり系」のモジュールがひっそりインストールされるところがPythonのおもしろさかもしれません:-)。

 

 

The URL to Trackback this entry is:
http://coreblog.org/ats/turtle-python-standard-module/tbping

Re:Pythonのゆるかわほっこり系モジュール - turtle

Posted by ミミー at 2008-02-26 00:25
ピンク指定してかわいいお花が書けました!動くと嬉しいです。ウフ。
コピペさせて頂いただけですが・・(^^;
ほっこりは焼き芋系ではなく、ノコノコかめ系ですね。

Re:Pythonのゆるかわほっこり系モジュール - turtle

Posted by ats at 2008-02-26 08:15
>ミミーさん
おめでとうございます。今日から立派なPython使いですね! ウフ。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
コメントスパム避けのための認証文字列です

Captcha Image

Pythonな求人
r = urlopen("http://www.webcore.co.jp/recruit")
About this blog
■Author
atsこと柴田淳です。この記事を読んでいただくと,技術者としての人となりを分かってもらえるかも。
Webcore株式会社 代表取締役
Plone上で動く,オープンソースのBlog Product - COREBlog2を使って運用しています。

最近書いた原稿
最終回 Python 3.0座談会(動画つき) 2009-07-16
Python 3.0 Hacks 第6回 Pythonicな文字列フォーマットforamat()メソッド 2009-03-30
言語としての一貫性を重視したPython 3の進化 2009-02-20
Python 3が後方互換性を捨てても求めたもの 2009-02-02
Python 3.0 Hacks : 第0回 Pythonの2008-2009 2009-01-01
 
最近書いた本,Mook
みんなのPython 改訂版
Python使いはもちろん,プログラミングの初心者から,他言語からの移行組までご好評いただいているPythonの定番入門書の第2版です。Python 3.0を含む最新の情報について加筆を行い,より読みやすいように構成を大幅に見直しました。第一版をお持ちの方にもお役立ていただける内容になっています。
みんなのPython Webアプリ編
Pythonの基礎から,Webアプリやフレームワークの仕組みまで,つまることなく一気に学べる書籍です。「みんなのPython」と一緒に読んでください:-)。
 

Powered by Plone, the Open Source Content Management System