Turtle
前回、PySimpleGUIでタイムアウト(timeout)を使って一定時間毎に処理を行う方法を紹介しました。
今回は趣向を変えて、PythonのグラフィックスライブラリであるTurtleの使い方を紹介していきます。
ちなみにこのTurtleを使うとこんなことができちゃいます。
もちろんPythonのライブラリなので、この図形はPythonのプログラムにより描かれています。
絵心がない私でもプログラムで描けるのなら、色々遊べるかなと思ってちょっと手を出してみたというのが発端です。
まず今回はTurtleの基本動作を見ていきましょう。
Turtlenの基本的な使い方
まずは最低限必要な部分を見ていきます。
Turtleを使うには最低3つのコマンドが必要になります。
import turtle
t = turtle.Turtle()
#Turtleの動作
turtle.done()
一番最初はTurtleのインポートです(import turtle)。
2番目はTurtleのオブジェクトの生成です(t = turtle.Turtle())。
その後、Turtleの動作のプログラムを書いていき、最後にプログラムの終了を示す「turtle.done()」を書きます。
これを書かないとずっとTurtleが動き続けていると認識されてしまうようです。
Turtleを使うために最低限のプログラムであるこちらのプログラムを動かしてみましょう。
import turtle
t = turtle.Turtle()
turtle.done()
すると「Python Turtle Graphics」というウインドウが現れ、真っ白な画面の中心に矢印が出てきます。
この矢印がTurtle(実際に亀にすることもできます)で、この矢印の動きをプログラムして絵を描かせるというものです。
重要なのはこの矢印には向きがあり、上の状態では右を向いています。
そのため次に紹介する前進の場合は右に、後退の場合は左に矢印が動きます。
前進(forward)、後退(backward)
まずは亀さんを前進、後退させてみます。
前進の場合は「t.forward(進む距離)」を用います。
import turtle
t = turtle.Turtle()
t.forward(100)
turtle.done()
また後退の場合は「t.backward(後退する距離)」を用います。
import turtle
t = turtle.Turtle()
t.backward(100)
turtle.done()
右に回転(right)、左に回転(left)
右に曲がる、左に曲がるなどの動作の場合は、前進し、右もしくは左に回転し、また前進するという流れになります。
そして右に回転するには「t.right(角度)」、左に回転するには「t.left(角度)」を用います。
この際角度はラジアンではなく、360度を1周とする度数です。
import turtle
t = turtle.Turtle()
t.forward(100)
t.right(90)
t.forward(50)
t.left(45)
t.forward(150)
turtle.done()
ペンを上げる(penup)、ペンを下げる(pendown)
Turtleの場合、亀さんが動いた軌跡を使って図を描いていくのですが、線を引きたくない場所も出てきます。
その場合はペンを上げる「t.penup()」を使います。
そして再度線を引く場合は「t.pendown()」を使います。
import turtle
t = turtle.Turtle()
t.forward(100)
t.right(90)
t.penup()
t.forward(50)
t.right(90)
t.pendown()
t.forward(100)
turtle.done()
原点に戻る(home)、指定位置に移動する(setposition)
亀さんを原点に戻し、さらに角度も初期化するには「t.home()」を用います。
import turtle
t = turtle.Turtle()
t.right(90)
t.forward(100)
t.home()
turtle.done()
亀さんを任意の場所に移動させるには「t.setposition(Xの座標, Yの座標)」を用います。
import turtle
t = turtle.Turtle()
t.right(90)
t.forward(100)
t.setposition(75, 100)
turtle.done()
描いた図形を削除する(clear)、初期化する(reset)
描いた図形を削除するには「t.clear()」を用います。
import turtle
t = turtle.Turtle()
t.forward(250)
t.clear()
turtle.done()
描いた画像を消すだけでなく、亀さんの位置、角度を初期値に戻すには「t.reset()」を用います。
import turtle
t = turtle.Turtle()
t.forward(250)
t.reset()
turtle.done()
この「t.clear()」と「t.reset()」ですが、「t.clear()」の場合はあくまでも描いた図形が消えるだけで、亀さんの位置や角度はそのままであることに注意してください。
次回はペンの太さや移動の速度の変え方、ペンの色や塗りつぶしを紹介していきます。
ではでは今回はこんな感じで。
コメント