Was ist die Funktion von Turtle.done()

青灯夜游
Freigeben: 2021-02-03 15:53:18
Original
20265 Leute haben es durchsucht

In Python besteht die Funktion von „turtle.done()“ darin, das Programm anzuhalten und das Zeichnen mit dem Pinsel zu stoppen. Das Zeichenfenster wird jedoch erst geschlossen, wenn der Benutzer das Python Turtle-Grafikfenster schließt Um die Grafiken anzuzeigen, wird das Grafikfenster ohne diese Funktion sofort geschlossen, wenn das Programm beendet ist.

Was ist die Funktion von Turtle.done()

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Python 3-Version, Dell G3-Computer.

Die Rolle von Turtle.done(): Halten Sie das Programm an und stoppen Sie das Zeichnen mit dem Pinsel, aber das Zeichenfenster wird erst geschlossen, wenn der Benutzer das Python Turtle-Grafikfenster schließt.

Turtle-Bibliothek ist eine sehr beliebte Funktionsbibliothek zum Zeichnen von Bildern in der Python-Sprache. Stellen Sie sich eine kleine Schildkröte vor, die am Ursprung eines Koordinatensystems mit x als horizontaler Achse und y als vertikaler Achse beginnt, (0,0). . Es beginnt an der Position (0,0). Die Steuerung einer Reihe von Funktionsanweisungen bewegt sich in diesem Ebenenkoordinatensystem und zeichnet dadurch Grafiken auf dem Pfad, den sie durchläuft.

Grundkenntnisse des Schildkrötenzeichnens:

1. Leinwand (Leinwand)

Die Leinwand ist die Schildkröte, die den Zeichenbereich für uns erweitert. Wir können ihre Größe und Initiale festlegen Position.

Legen Sie die Leinwandgröße fest

Turtle.screensize(canvwidth=None, canvheight=None, bg=None), die Parameter sind die Breite (Einheitspixel), Höhe und Hintergrundfarbe der Leinwand. Le: Turtle.scrensize (800,600, „Green“)

Turtle.scrensize ()#Zurück zur Standardgröße (400, 300) Turtle.setup (width = 0.5, height = 0.75555 , startx=None, starty =Keine), Parameter: Breite, Höhe: Wenn die Eingabebreite und -höhe ganze Zahlen sind, stellen sie Pixel dar; wenn sie Dezimalzahlen sind, stellen sie die Proportionen des Computerbildschirms dar (startx, starty): Diese Koordinate stellt ein rechteckiges Fenster dar Position des oberen linken Eckpunkts. Wenn leer, befindet sich das Fenster in der Mitte des Bildschirms.

Zum Beispiel: Turtle.setup (Breite = 0,6, Höhe = 0,6)

An Auf der Leinwand gibt es eine Koordinatenachse, deren Ursprung standardmäßig in der Mitte der Leinwand liegt, und auf dem Koordinatenursprung befindet sich eine kleine Schildkröte, die in die positive Richtung der x-Achse zeigt. Hier verwenden wir zwei Wörter, um die kleine Schildkröte zu beschreiben: Koordinatenursprung (Position), in positiver Richtung der x-Achse (Richtung) zeigend, werden Position und Richtung verwendet, um den Zustand der kleinen Schildkröte (Pinsel) zu beschreiben ).属 2.2 Die Attribute des Pinsels

Pinsel (die Attribute des Pinsels, die Breite der Farbe, die Breite der Bildlinie usw.)

1) Turtle.pensize (): Set die Breite des Pinsels; 2) Turtle.pencolor(): Es werden keine Parameter übergeben und die aktuelle Pinselfarbe wird zurückgegeben. Die übergebenen Parameter legen die Pinselfarbe fest, bei der es sich um Zeichenfolgen wie „grün“ handeln kann. , „rot“ oder RGB-3-Tupel.

3) Turtle.speed (Geschwindigkeit): Stellen Sie die Pinselbewegungsgeschwindigkeit ein. Der Bereich für die Pinselzeichnung beträgt [0,10], je größer die Zahl, desto schneller.

2.3 Zeichenbefehle

Es gibt viele Befehle zum Steuern des Schildkrötenzeichnens. Diese Befehle können in drei Typen unterteilt werden: einer ist der Bewegungsbefehl, einer ist der Pinselsteuerbefehl und der andere ist globale Kontrolle. (1) Pinselbewegungsbefehl

Befehl

Erklärung

schildkröte tance)

Verschieben Sie die Pixellänge des Abstands in die Richtung des aktuellen Pinsels ??

Grad° gegen den Uhrzeigersinn bewegen ??

Bewegen Bewegen Sie den Pinsel zur Koordinate x, der Position von y

turtle.penup()

Heben Sie den Stift an und bewegen Sie ihn, ohne Grafiken zu zeichnen. Er wird zum Zeichnen an einer anderen Stelle verwendet

turtle.circle( )

Zeichnen Sie einen Kreis mit einem positiven (negativen) Radius, was bedeutet, dass sich der Mittelpunkt des Kreises links (rechts) vom Pinsel befindet. Zeichnen Sie einen Kreis

setx( )

Bewegen Sie die aktuelle Verschieben Sie die aktuelle Y-Achse auf die angegebene Position

setheading(angle)

Setzen Sie den aktuellen Kurs auf den Winkel angle

home()

legt die aktuelle Pinselposition fest als der Ursprung, nach Osten ausgerichtet.

?

Befehl

Beschreibung

turtle.fillcolor(colorstring)

Die Füllfarbe der Zeichnung

turtle.color(color1, color2 )

Setzen Sie gleichzeitig Stiftfarbe = Farbe1 und Füllfarbe = Farbe2

turtle .begin_fill()

Bereit zum Füllen der Grafiken

turtle.end_fill()

Füllen abgeschlossen

Schildkröte. hideturtle()

Schildkrötenform des Pinsels ausblenden

turtle.showturtle()

Schildkrötenform des Pinsels anzeigen


(3) Globaler Steuerbefehl

Befehl

Beschreibung

turtle.clear()

Mach das Schildkrötenfenster frei, aber das Schildkröte Die Position und der Status ändern sich nicht ()

Die letzte Schildkrötenaktion rückgängig machen

turtle.isvisible()

Zurückgeben, ob die aktuelle Schildkröte sichtbar ist

Stempel()

Kopieren Sie die aktuelle Grafik

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

Text schreiben , s ist der Textinhalt, Schriftart ist der Parameter der Schriftart, also der Name, die Größe und der Typ der Schriftart. Die Schriftart ist optional, und der Schriftartparameter ist ebenfalls optional. (4) Andere Befehle

Befehle

Anweisungen

turtle.mainloop() oder. Turtle.done()

Starten Sie die Ereignisschleife -

Aufruf Tkinter Funktion. muss die letzte Anweisung im Turtle-Grafikprogramm sein.

der mainloop

turtle.mode(mode=None)

Schildkrötenmodus einstellen ( „Standard“ , „Logo“ . oder "Welt"

) und führen Sie einen Reset durch. Wenn kein Modus angegeben ist, wird der aktuelle Modus zurückgegeben. Modus anfänglicher Schildkrötentitel positiver Winkel Standard rechts (Osten) gegen den Uhrzeigersinn Logo nach oben (Norden) im Uhrzeigersinn

turtle.delay(Verzögerung=Keine)

Zeichnungsverzögerung einstellen oder zurückgeben Millisekunden. turtle.begin_poly()

Beginnen Sie mit der Aufzeichnung der Eckpunkte des Polygons. Die aktuelle Schildkrötenposition ist der erste Scheitelpunkt des Polygons.

turtle.end_poly()

Stoppen Sie die Aufzeichnung der Eckpunkte eines Polygons. Die aktuelle Schildkrötenposition ist der letzte Scheitelpunkt des Polygons. Wird mit dem ersten Scheitelpunkt verbunden.

turtle.get_poly()

Gibt das zuletzt aufgezeichnete Polygon zurück.

3. Befehlsdetails Der Radius ist positiv (negativ), was bedeutet, dass sich der Mittelpunkt des Kreises links (rechts) vom Pinsel befindet, um einen Kreis zu zeichnen.


                                                                                                                                       Regelmäßiges Polygon, die Zahl (die Anzahl der Seiten des Polygons beträgt Schritte).

Beispiel:

Kreis(50) # Vollkreis;

Kreis(50, Schritte=3) # Dreieck;

Kreis(120, 180) # Halbkreis

Beispiele :

1, Sonnenblume

# 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()
Nach dem Login kopieren

2, fünfzackiger Stern

# 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()
Nach dem Login kopieren

3. Uhrprogramm

# 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()
Nach dem Login kopieren

Weitere Kenntnisse zum Thema Computerprogrammierung finden Sie unter:

Programmiervideos! !

Das obige ist der detaillierte Inhalt vonWas ist die Funktion von Turtle.done(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage