Python独学ならTech-Joho TOP > いろいろやってみた > Turtleを使ってpythonで絵を描く
Turtleモジュール
Pythonで絵を描く、となればまずはTurtleモジュールです。
より高度なPygameやKivyを使った方法も別ページ紹介しています。
Turtleモジュールは、ペンを持った亀を操って絵を描くことのできるタートルグラフィックスのPython版です。
参考
タートルグラフィックス (公式ドキュメント)
https://docs.python.jp/3/library/turtle.html
このページでは、下の黒い欄で、実際にPythonコードを実行できます。
この後の説明の通り、自分でも絵を書いてみましょう。
まず、下のリンクをクリックして、お絵かきウインドウを別に開いて下さい。
お絵かきウインドウを開く
お絵かきウインドウは、このようになっています。
左の方に黒い欄があります。
ここに、Pythonコードを書いていきます。
黒い欄の使い方はこちら
右に白いスペースが開いていますが、ここに絵が出力されます。
まず円を描いてみよう
さっそくですが、まず円を描いてみましょう。
下のコードを、お絵かきウインドウの黒い欄に1行ずつコピー&ペーストして、エンターを押していってください。
>>> import turtle >>> t=turtle.Turtle() >>> t.circle(100) >>> turtle._Screen().end()
こんな風に、円が描かれたはずです。
Turtleモジュールではこのようにコードを入力することで絵を描くことができます。
上のコードを1行ずつ解説していきます。
>>> t=turtle.Turtle()
この行では、turtleモジュールを読み込んでいます。
turtleモジュールには、絵を描くための様々なクラスや関数が入っています。
これを利用できるように読み込んでいます。
>>> import turtle
この行では、 先程読み込んだturtleモジュールの中に入っているTurtleというクラスのインスタンスを作っています。
筆を持った亀を一匹呼び出すイメージです。
この亀は、変数tに代入しています。
変数tに入っている、亀(Turtleクラスのインスタンス)の様々なメソッドを実行することで、この後絵を書いていきます。
>>> t=turtle.Turtle()
この行では、変数tに入っている、亀(Turtleクラスのインスタンス)に、半径100の円をかけ、と命令しています。
円を書く命令なので、circleという名前のメソッドを実行しています。
また、cicrleメソッドの引数は半径です。半径100なので、カッコの中に100と書いてあります。
>>> t.circle(100)
この行では、今まで入力した命令を、実行しろ、という命令をだしています。
そのため、この行を実行すると、円が描かれます。
ただし、この行は、通常のPythonでは必要がありません。
このサイトのように、ブラウザ上で動かすPython(Brython)の場合だけ、必要な内容です。
>>> turtle._Screen().end()
Turtleモジュールのいろいろな使い方
まず、お絵かきウインドウをリロードして下さい。
今までの内容が全て消えます。
次に、下の内容を全てコピーして、お絵かきウインドウの黒い欄にペーストし、エンターを押してください。
このように、1行ずつでなく、一気に複数行を実行することができます。
import turtle t=turtle.Turtle() t.shape("turtle") t.color("red") t.forward(100) t.penup() t.left(90) t.forward(100) t.right(90) t.pendown() t.width(5) t.color("blue") t.forward(100) turtle._Screen().end()
このように、線が2本表示されたと思います。
一番最初の”t=turtle.Turtle()”と、一番最後の”turtle._Screen().end()” の部分は前と同じです。
それ以外のところはだいぶ違いますね。
ここでは、新しいテクニックを5つ(とおまけ1つ)使っています。
真っ直ぐ進む
タートルグラフィックスでは、亀のアイコンが常に筆を持って移動しているイメージです。
亀が移動すると、そのあとには線が引かれます。
forwardというメソッドを使うと、亀が真っ直ぐ進み、線を引きます。
引数の数値のぶんだけ進みます。
下では、100進んでいます。
t.forward(100)
向きを変える
right、leftというメソッドで、右左に向きを変えられます。
引数には、曲がる角度をしてします。
下の例では、90度右に曲がっています。
t.right(90)
線の色を変える
colorメソッドを使います。
引数に英語で色の名前を指定します。
下の例では赤色にしています。
t.color("red")
ペンを上げて移動する
今まで、亀が移動すると必ず線が引かれていましたが、penup関数を使うと、その後は線が引かれなくなります。
線を引かずに移動だけするのに便利です。
また、pendown関数を使うとまた、線が引かれるようになります。
t.penup() t.pendown()
ペンの太さを変える
width関数を使うと、先の太さを変えられます。
引数は太さの数値です。
t.width(5)
おまけ:アイコン亀にする
線を引いているときの、アイコンが矢印ではなく亀になっていたのに気づきましたか?
これは、3行のshapeメソッドで変えています。
import turtle t=turtle.Turtle() t.shape("turtle") # 亀にしている
このようなテクニックを使えば、いろいろな絵がかけるはずです。
タートルグラフィックスで描いた例
下の絵は、PythonをPC内にインストールした時についてくる、タートルグラフィックスのサンプルです。
詳しくはこちらに説明があります。
このような絵を、このページにあるテクニックで描くことができます。
みなさんも、ぜひ、好きな絵をかいていみてください。
実際に動く時計です。
実物はくるくるとアニメーションします。