Turtle.done() の機能は何ですか

青灯夜游
リリース: 2021-02-03 15:53:18
オリジナル
20266 人が閲覧しました

Python では、「turtle.done()」の機能はプログラムを一時停止してブラシ描画を停止することですが、ユーザーが Python Turtle グラフィカル ウィンドウを閉じるまで描画フォームは閉じません。その目的は次のとおりです。ユーザーにグラフを表示する時間を与えます。これがないと、プログラムが完了するとすぐにグラフ ウィンドウが閉じてしまいます。

Turtle.done() の機能は何ですか

#このチュートリアルの動作環境: Windows 7 システム、Python 3 バージョン、Dell G3 コンピューター。

turtle.done() の役割: プログラムを一時停止し、ブラシ描画を停止しますが、ユーザーが Python Turtle グラフィカル ウィンドウを閉じるまで描画フォームは閉じません。

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), パラメータ: width, height: 幅と高さを入力したとき整数です。ピクセルを表します。小数の場合は、コンピュータ画面が占める割合を表します。(startx, starty): この座標は、長方形のウィンドウの左上隅の位置を表します。空の場合、ウィンドウは画面の中央にあります。

#— = 800、startx = 100、starty = 100)

2。ブラシ

2.1 ブラシのステータス

キャンバス上で、デフォルトでキャンバスの中心を座標原点とする座標軸があり、その座標原点上に面があります。小さなカメは x 軸の正の方向を向いています。ここでは、小さなカメを説明するために 2 つの単語を使用します: 座標原点 (位置)、X 軸の正の方向を向いている (方向)。カメの描画では、位置と方向は小さなカメ (ブラシ) の状態を説明するために使用されます。 )。

2.2 ブラシプロパティ

ブラシ(ブラシプロパティ、色、線画幅)

1) Turtle.pensize(): ブラシの幅を設定します;

2) Turtle.pensize(): ブラシの幅を設定します。 pencolor(): なし パラメータが渡され、現在のブラシの色が返されます。渡されたパラメータは、「緑」、「赤」、または RGB 3 タプルなどの文字列でブラシの色を設定します。

3) Turtle.speed(speed): ブラシの移動速度を設定します。ブラシの描画速度の範囲は [0,10] の整数で、数値が大きいほど速くなります。

2.3 描画コマンド

タートルの描画を制御するコマンドは多数あります。モーションコマンド、ブラシ制御コマンド、グローバル制御コマンドの3種類に分かれます。

#(1) ブラシ移動コマンド

##コマンド

##説明##turtle.forward(距離)##turtle.penup() ファイルされましたペンはグラフィックスを描画せずに移動します。別の場所に描画するために使用されますturtle.circle()setx( )sety( )setHeading(angle)home()

#距離ピクセルの長さを現在のブラシの方向に移動します

#turtle.backward(距離)

現在のブラシの反対方向に距離ピクセル長を移動します

# #turtle.right(degree)

度を時計回りに移動

turtle.left(degree)

反時計回りに度°を移動

turtle.pendown()

移動時にグラフィックを描画し、デフォルトでも描画します

turtle.goto(x,y)

ブラシを x の座標に移動します、y 場所

#正 (負) の半径で円を描きます。これは、円の中心がブラシの左 (右) にあることを意味します

現在の X 軸を指定された位置に移動します

現在の Y 軸を指定された位置に移動します

現在の見出しを次のように設定します。角度 angle

現在の設定ブラシの位置を原点に合わせて東向きにします。

dot(r)

指定された直径を描画し、カラードット

(2) ブラシ制御コマンド


コマンド#記入完了

説明

turtle.fillcolor(colorstring)

##描画グラフィックスの塗りつぶしの色

turtle.color(color1, color2)

pencolor=color1、fillcolor=color2 も設定します

turtle.filling()

現在のフィルがイン・ザ・フィルであるかどうかを返します。 state

turtle.begin_fill()

準備をするグラフィックの塗りつぶしを開始

#turtle.end_fill()

turtle.hideturtle()

非表示ブラシのタートルの形状

turtle.showturtle()

ブラシの亀の形を表示

##

(3) グローバル制御コマンド

#turtle.reset()turtle.undo ()

##コマンド

説明

turtle.clear()

タートル ウィンドウをクリアしますが、タートルの位置とステータスは変わりません

#ウィンドウをクリアし、タートルの状態を開始状態にリセットします。

前のタートルのアクションを元に戻します

## タートル。 isvisible()

現在のタートルが表示されているかどうかを返します

stamp()

現在のグラフィックをコピー

## Turtle.write(s [,font=("font-name",font_size,"font_type")])

テキストを書き込みます。s はテキストの内容です、font はフォントのパラメータであり、それぞれフォント名、サイズ、タイプです。font はオプションであり、font パラメータもオプションです

##( 4) その他のコマンド

コマンド

# #説明イベント ループを開始しますTkinter## の "標準" 、"world ” ##turtle.end_poly()turtle.get_poly()最後に記録されたポリゴンを返します。

##turtle.mainloop() または Turtle.done()

-

mainloop 関数を呼び出します#。 # は、タートル グラフィックス プログラムの最後のステートメントでなければなりません。 #turtle.mode(mode=None)

##タートル モードを設定します (

"ロゴ" または

)し、リセットを実行します。モードが指定されていない場合は、現在のモードを返します。 #モード初期タートルタイトル正の角度標準右 (東) 反時計回りロゴ上 (北) 時計回り # #turtle.lay(lay=None)

描画遅延をミリ秒単位で設定または返します。

##turtle.begin_poly()

ポリゴンの頂点の記録を開始します。現在のタートルの位置は、ポリゴンの最初の頂点です。

ポリゴン頂点の記録を停止します。現在のタートルの位置は、ポリゴンの最後の頂点です。最初の頂点に接続されます。

3. コマンドの詳細

## 3.1 Turtle.circle(radius, extend=None,steps=None)

説明: 与えられた Draw a固定半径の円

パラメータ:

半径: 半径は正 (負) です。これは、円の中心が上にあることを意味します。ブラシの左 (右) ) 円を描く;

範囲(ラジアン) (オプション);

ステップ (オプション) (半径半径の内接円(正多角形、多角形の辺の数がステップ)を作成します。

例:

circle(50) #完全な円;

circle(50,ステップ = 3) #Triangle;

circle(120, 180) # Semicircle

例:

1. ひまわり

# coding=utf-8
import turtle
import time

# 同时设置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 *
 
# 抬起画笔,向前运动一段距离放下
def Skip(step):
    turtle.penup()
    turtle.forward(step)
    turtle.pendown()
 
def mkHand(name, length):
    # 注册Turtle形状,建立表针Turtle
    turtle.reset()
    Skip(-length * 0.1)
    # 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。
    turtle.begin_poly()
    turtle.forward(length * 1.1)
    # 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。
    turtle.end_poly()
    # 返回最后记录的多边形。
    handForm = turtle.get_poly()
    turtle.register_shape(name, handForm)
 
def Init():
    global secHand, minHand, hurHand, printer
    # 重置Turtle指向北
    turtle.mode("logo")
    # 建立三个表针Turtle并初始化
    mkHand("secHand", 135)
    mkHand("minHand", 125)
    mkHand("hurHand", 90)
    secHand = turtle.Turtle()
    secHand.shape("secHand")
    minHand = turtle.Turtle()
    minHand.shape("minHand")
    hurHand = turtle.Turtle()
    hurHand.shape("hurHand")
   
    for hand in secHand, minHand, hurHand:
        hand.shapesize(1, 1, 3)
        hand.speed(0)
   
    # 建立输出文字Turtle
    printer = turtle.Turtle()
    # 隐藏画笔的turtle形状
    printer.hideturtle()
    printer.penup()
    
def SetupClock(radius):
    # 建立表的外框
    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", font=("Courier", 14, "bold"))
                Skip(-25)
            elif (i == 25 or i == 35):
                Skip(20)
                turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
                Skip(-20)
            else:
                turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
            Skip(-radius - 20)
        else:
            turtle.dot(5)
            Skip(-radius)
        turtle.right(6)
        
def Week(t):   
    week = ["星期一", "星期二", "星期三",
            "星期四", "星期五", "星期六", "星期日"]
    return week[t.weekday()]
 
def Date(t):
    y = t.year
    m = t.month
    d = t.day
    return "%s %d%d" % (y, m, d)
 
def Tick():
    # 绘制表针的动态显示
    t = datetime.today()
    second = t.second + t.microsecond * 0.000001
    minute = t.minute + second / 60.0
    hour = t.hour + minute / 60.0
    secHand.setheading(6 * second)
    minHand.setheading(6 * minute)
    hurHand.setheading(30 * hour)
    
    turtle.tracer(False) 
    printer.forward(65)
    printer.write(Week(t), align="center",
                  font=("Courier", 14, "bold"))
    printer.back(130)
    printer.write(Date(t), align="center",
                  font=("Courier", 14, "bold"))
    printer.home()
    turtle.tracer(True)
 
    # 100ms后继续调用tick
    turtle.ontimer(Tick, 100)
 
def main():
    # 打开/关闭龟动画,并为更新图纸设置延迟。
    turtle.tracer(False)
    Init()
    SetupClock(160)
    turtle.tracer(True)
    Tick()
    turtle.mainloop()
 
if __name__ == "__main__":
    main()
ログイン後にコピー


コンピュータ プログラミングの詳細については、

プログラミング ビデオ

をご覧ください。 !

以上がTurtle.done() の機能は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート