# Python はじめました!Turtle で入門勉強
turtle(タートル)はウミガメの意味で、プログラミング言語 LOGO を元に画面に図形を描画するライブラリです。
1960 年代に開発され、プログラムの結果を視覚ですぐに確認できることから、子供向けのプログラミング入門でよく使われます。
python turtle モジュールはデフォルトで実装され、入門でよく用いられます。。
# turtle メソッド
| メソッド | 略 | 説明 |
|---|---|---|
| forward() | fd() | 指定した距離を前進 |
| backward() | bk() | back() | 指定した距離を後退 |
| right() | rt() | 右に回す角度 |
| left() | lt() | 左に回す角度 |
| goto() | setpos() | setposition() | 座標位置に移動 |
| setx() | x 座標指定 | |
| sety() | y 座標指定 | |
| home() | 原点座標 (0, 0)に移動 | |
| circle() | 指定半径の円を描く | |
| dot() | 指定直径と色で丸い点描く | |
| stamp() | タートルのアイコンをスタンプ | |
| clearstamp() | 指定の stampid スタンプ消す | |
| undo() | タートルの動きを取り消し | |
| position() | pos() | タートルの現在位置 |
| towards() | 指定した座標までの直線角度 | |
| xcor() | タートルの x 座標 | |
| ycor() | タートルの y 座標 | |
| heading() | タートルの頭の現在の向き | |
| distance() | 座標までの距離 | |
| pendown() | pd() | down() | ペンを下ろす |
| penup() | pu() | up() | ペンを上げる |
| pensize() | width() | ペン線の太さ |
| isdown() | ペンが下ろしたがどうか | |
| speed() | タートルの移動スピード指定 | |
| pencolor() | ペンの色指定 | |
| fillcolor() | 塗りつぶしの色指定 | |
| filling() | 塗りつぶし | |
| begin_fill() | 塗りつぶし開始 | |
| end_fill() | 塗りつぶし終わり | |
| reset() | 描いた図形クリア、初期にリセット | |
| clear() | 描いた図形クリア | |
| showturtle() | st() | タートルが見えるように |
| hideturtle() | ht() | タートルが隠すように |
| shape() | タートルの姿アイコン指定 | |
| onclick() | クリックイベント | |
| onrelease() | マウスボタンリリースイベント | |
| ondrag() | ドラッグイベント |
# speed() 動くスピード指定
パラメータには 0 ~ 10 までの整数またはスピードを表わす文字列を指定できます。
1 から 10 まで動くスピードがだんだん速くなりますが、0 を指定した場合、アニメーションを無くなります。
文字列と整数の対照表
| 文字列 | 整数 |
|---|---|
| slowest | 1 |
| slow | 3 |
| normal | 6 |
| fast | 10 |
| fastest | 0 |
# shape() タートルの姿アイコンの名前リスト
以下の名前を指定すれば、タートルの姿アイコンが変わります。
| 値 | 図形 |
|---|---|
| arrow | 矢印 |
| turtle | 亀 |
| circle | 丸点 |
| square | 正方形 |
| triangle | 三角形 |
| classic | カーソルポインター |
# 図形を描く
シンプルに正方形を描いて見ます。turtle.shape('turtle')の指定がなければ、デフォルトの三角アイコンになります。
正方形を描く
import turtle
# アイコンを亀に指定
turtle.shape('turtle')
# 100ピクセル描く
turtle.forward(100)
# 頭90度回転
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
# 画面停止
turtle.mainloop()
while 文
import turtle
turtle.shape('turtle')
turtle.speed(0)
while True:
turtle.forward(200)
turtle.right(90)
turtle.circle(50)
turtle.right(125)
if abs(turtle.pos()) < 1:
break
turtle.mainloop()