# 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()
2021-01-21