Python描画タートルライブラリ解説
Turtleライブラリは、Python言語で画像を描画するためのライブラリとして人気があります。横軸をx、縦軸をyとする座標系の原点(0,0)からスタートした小さな亀が、関数命令群の制御によりこの平面座標系を移動し、這うようにグラフを描くと想像してください。
<スパン カメの描き方の基本。
<スパン 1.キャンバス
<スパン キャンバスは、タートルが描画のために広げてくれる領域で、その大きさや初期位置を設定することができます。
<スパン キャンバスサイズの設定
turtle.screensize(canvwidth=None, canvheight=None, bg=None) に、それぞれキャンバスの幅(ピクセル単位)、高さ、背景色をパラメータとして指定します。
例:turtle.screensize(800,600, "green")。
turtle.screensize() # デフォルトサイズ(400, 300)を返す。
turtle.setup(width=0.5, height=0.75, startx=None, starty=None), parameters: width, height: 幅と高さを整数(ピクセル)で入力、小数はコンピュータ画面の比率、(startx, starty): この座標は(startx, starty)を表します。この座標は、長方形のウィンドウの左上隅の位置、または空の場合はウィンドウの中心を表す。
例)turtle.setup(width=0.6,height=0.6)
turtle.setup(width=800,height=800, startx=100, starty=100)
<スパン 2. ブラシ
<スパン 2.1 ブラシの状態
<スパン キャンバス上には、デフォルトでキャンバスの中心を原点とする軸があり、原点で正のX軸を向いているタートルがあります。ここでは、原点(位置)と x 軸に対して正の面(方向)という 2 つの単語でカメを表現し、カメの描画では位置と方向を使ってカメの状態(ブラシ)を表現しています。
<スパン 2.2 ブラシの特性
<スパン ブラシ(ブラシのプロパティ、色、線の太さなど)
1) turtle.pensize():ブラシの幅を設定します。
2) turtle.pencolor():引数なし、現在のブラシ色を返す、ブラシ色を設定するには、"green", "red" といった文字列、または RGB 3 タプルとして、引数を渡します。
3) turtle.speed(speed):ブラシの速度を設定します。ブラシの描画速度は [0,10] の整数値で、数値が大きいほど速くなります。
2.3 描画コマンド
タートル図法を操作するためのコマンドは多数あり、モーションコマンド、ブラシコントロールコマンド、グローバルコントロールコマンドの3種類に分けられる。
<スパン (1)ブラシモーションコマンド
コマンド
説明
turtle.forward(距離)
現在のブラシの方向に距離ピクセル長を移動する
turtle.backward(距離)
現在のブラシと反対方向に距離ピクセル分移動する
turtle.right(度)
時計回りに度数を移動
turtle.left(度)
移動角度:反時計回り
turtle.pendown()
グラフを移動しながら描画し、デフォルトではさらに
亀.goto(x,y)
ブラシをx,y座標に移動させる
亀.penup()
<スパン 図を描くのではなく、別の場所を描くために、ペンを持ち上げて移動する
タートル.サークル()
円の中心がブラシの左(右)にあることを示す、正の(負の)半径を持つ円を描画します。
setx( )
現在のX軸を指定された位置に移動する
sety( )
現在のY軸を指定された位置に移動する
setheading(角度)
現在の向きを角度∠に設定
ホーム()
現在のブラシの位置を原点に設定し、東向きにします。
<スパン ドット(r)
指定された直径と色でドットを描画する
(2) ブラシコントロールコマンド
コマンド
説明
turtle.fillcolor(カラーストリング)
グラフの塗りつぶし色を描画します
turtle.color(色1, 色2)
また、pencolor=color1, fillcolor=color2 を設定します。
タートル.フィリング()
現在の状態が充填中であるか否かを返す
turtle.begin_fill()
グラフの塗りつぶしを開始する準備ができている
turtle.end_fill()
塗りつぶし完了
turtle.hideturtle()
<スパン ブラシのタートルシェイプを隠す
turtle.showturtle()
ブラシのタートルシェイプを表示する
(3) グローバル制御コマンド
コマンド
説明
タートル.クリア()
タートルウィンドウをクリアしても、タートルの位置と状態は変わりません
タートル.リセット()
ウィンドウをクリアして、タートル状態をスタート状態に戻す
タートル.アンドゥ()
直前のタートルアクションを元に戻す
turtle.isvisible()
現在のタートルが表示されているかどうかを返します
スタンプ
現在のグラフをコピーする
turtle.write(s [,font=("font-name",font_size,"font_type")])
テキストを書く、sはテキストの内容、fontはフォントのパラメータ、それぞれ、フォント名、サイズ、タイプ; fontはオプション、fontパラメータもオプションです
(4) その他のコマンド
コマンド
説明
turtle.mainloop()またはturtle.done()
イベントループの開始 - 呼び出し Tkinter の メインループ 関数を使用します。
タートルグラフィックスプログラムの最後のステートメントでなければなりません。
turtle.mode(mode=None)です。
<スパン タートルモードを設定する( スタンダード&クォート は、その "ロゴ" または "world"。 ) を行い、リセットを実行します。パターンが与えられない場合、現在のパターンが返されます。
<スパン パターン
<スパン 初期タートルタイトル
<スパン 正角度
<スパン 標準
<スパン 右(東)へ
<スパン 反時計回り
<スパン ロゴ
<スパン 上(北)
<スパン 時計回り
turtle.delay(delay=None)です。
描画遅延をミリ秒単位で設定または返します。
turtle.begin_poly()
<スパン ポリゴンの頂点の記録を開始します。カメの現在位置は、ポリゴンの最初の頂点である。
turtle.end_poly()
<スパン ポリゴンの頂点の記録を停止します。現在のカメの位置は、ポリゴンの最後の頂点です。最初の頂点に接続されます。
turtle.get_poly()
最後に記録されたポリゴンを返します。
3. コマンドの詳細
3.1 turtle.circle(radius, extent=None, steps=None)
説明 指定された半径の円を描画します。
<スパン パラメータ
radius(半径):円の中心がブラシの左(右)に描かれることを示す正の(負の)半径です。
extent (半径) (オプション)。
steps (オプション) (半径radiusの円の内接正方形多角形を作り、多角形の辺の数はsteps)。
例
circle(50) # 円形です。
circle(50,steps=3) # 三角形になります。
circle(120, 180) # 半円
例
1. ひまわり
<スパン
# coding=utf-8
import turtle
import time
# Also set pencolor=color1, fillcolor=color2
turtle.color("red", "yellow")
turtle.begin_fill()
for _ in range(50):
turtle.forward(200)
turtle.left(170)
turtle.end_fill()
turtle.mainloop()
<スパン 2. 五芒星
# coding=utf-8
import turtle
import time
turtle.pensize(5)
turtle.pencolor("yellow")
turtle.fillcolor("red")
turtle.begin_fill()
for _ in range(5):
turtle.forward(200)
turtle.right(144)
turtle.end_fill()
time.sleep(2)
turtle.penup()
turtle.goto(-150,-120)
turtle.color("violet")
turtle.write("Done", font=('Arial', 40, 'normal'))
turtle.mainloop()
<スパン 3. 時計プログラム
# coding=utf-8
import turtle
from datetime import *
# Lift the brush, move it forward a distance and drop it
def Skip(step):
turtle.penup()
turtle.forward(step)
turtle.pendown()
def mkHand(name, length):
# Register the Turtle shape and create the table pin Turtle
turtle.reset()
Skip(-length * 0.1)
# Start recording the vertices of the polygon. The current turtle position is the first vertex of the polygon.
turtle.begin_poly()
turtle.forward(length * 1.1)
# Stop recording the vertices of the polygon. The current turtle position is the last vertex of the polygon. It will be connected to the first vertex.
turtle.end_poly()
# Return the last polygon recorded.
handForm = turtle.get_poly()
turtle.register_shape(name, handForm)
def Init():
global secHand, minHand, hurHand, printer
# Reset Turtle to point north
turtle.mode("logo")
# Create three table pin Turtle and initialize
mkHand("secHand", 135)
mkHand("minHand", 125)
mkHand("hurHand", 90)
secHand = turtle.
secHand.shape("secHand")
minHand = turtle.
minHand.shape("minHand")
hurHand = turtle.
hurHand.shape("hurHand")
for hand in secHand, minHand, hurHand:
hand.shapesize(1, 1, 3)
hand.speed(0)
# Create output text Turtle
printer = turtle.
# Hide the turtle shape of the brush
printer.hideturtle()
printer.penup()
def SetupClock(radius):
# Create the outer frame of the table
turtle.reset()
turtle.pensize(7)
for i in range(60):
Skip(radius)
if i % 5 == 0:
turtle.forward(20)
Skip(-radius - 20)
Skip(radius + 20)
if i == 0:
turtle.write(int(12), align="center", font=("Courier", 14, "bold"))
elif i == 30:
Skip(25)
turtle.write(int(i/5), align="center", fon
<イグ
関連
-
SyntaxError: 構文が無効です。
-
ImportError: torchvision という名前のモジュールがありません。
-
python3 のモジュール "importlib._bootstrap" に "SourceFileLoader" という属性がない問題を解決する。
-
Ubuntu pip AttributeError: 'module' オブジェクトに '_main' 属性がない。
-
PyQt5演習:matplotlibでプロットする
-
import urllib.parse ImportError: parse という名前のモジュールがありません
-
Pythonを学んだ後、このまとめを整理するために夜更かしすることに...。
-
Pythonでフォルダをトラバースして大きなファイルを探す
-
TypeError: バイトライクオブジェクトで文字列パターンを使用できない
-
プログラム実行中にPythonの例外が発生しました。TypeError: 'NoneType' オブジェクトは呼び出し可能ではありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
TensorFlowのエラー:ハッシュ化できない型:'numpy.ndarray'エラー
-
Python は '' で '__main__' モジュールを見つけることができません。
-
ERROR: 要件ファイルを開くことができませんでした。[Errno 2] そのようなファイルまたはディレクトリがありません: 'requirements.txt'.
-
ImportError: scipy'という名前のモジュールがありません。
-
TypeError: 'dict_keys' オブジェクトはインデックス作成をサポートしていません。
-
python error TypeError: 'range' object does not support item assignment, solution
-
TypeError: 'str' と 'int' のインスタンスの間で '<' はサポートされていません。
-
Anaconda 詳細インストールおよび使用チュートリアル(画像付き)
-
Python2.7のエンコード問題:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position... 解決方法
-
pygalマッピング "AttributeError: 'NoneType' オブジェクトには 'decode' という属性がありません"