Maison  >  Article  >  développement back-end  >  Quelle est la fonction de Turtle.done()

Quelle est la fonction de Turtle.done()

青灯夜游
青灯夜游original
2021-02-03 15:53:1820269parcourir

En Python, la fonction de "turtle.done()" est de mettre le programme en pause et d'arrêter le dessin au pinceau, mais le formulaire de dessin ne se fermera pas tant que l'utilisateur n'aura pas fermé la fenêtre graphique de Python Turtle ; pour donner à l'utilisateur le temps de visualiser le graphique ; sans cela, la fenêtre graphique se fermerait dès que le programme serait terminé.

Quelle est la fonction de Turtle.done()

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Python 3, ordinateur Dell G3.

Le rôle de Turtle.done() : met le programme en pause et arrête le dessin au pinceau, mais la fenêtre de dessin ne se fermera pas tant que l'utilisateur n'aura pas fermé la fenêtre graphique Python Turtle.

La bibliothèque Turtle est une bibliothèque de fonctions très populaire pour dessiner des images en langage Python Imaginez une petite tortue, à l'origine d'un système de coordonnées avec l'axe horizontal comme x et l'axe vertical comme y. , (0,0 ), il se déplace dans ce système de coordonnées planes selon le contrôle d'un ensemble d'instructions de fonction, dessinant ainsi des graphiques sur le chemin qu'il parcourt.

Connaissances de base du dessin de tortue :

1. >

La toile est la tortue qui agrandit pour nous la zone de dessin, et nous pouvons définir sa taille et sa position initiale.

Définir la taille du canevas

Turtle.screensize(canvwidth=None, canvheight=None, bg=None), les paramètres sont la largeur de la toile (pixels unitaires), hauteur, couleur d'arrière-plan.

Par exemple : Turtle.screensize(800,600, "green")

Turtle.screensize() #Retour à la taille par défaut (400 , 300)

Turtle.setup(width=0.5, height=0.75, startx=None, starty=None), paramètres : width, height : Lorsque la largeur et la hauteur d'entrée height sont des nombres entiers, Représente les pixels ; lorsqu'il s'agit d'un nombre décimal, il représente la proportion de l'écran de l'ordinateur occupé, (startx, starty) : Cette coordonnée représente la position du coin supérieur gauche de la fenêtre rectangulaire. Si elle est vide, la. La fenêtre est située au centre de l'écran.

Par exemple : Turtle.setup(width=0.6,height=0.6)

Turtle.setup(width=800, hauteur =800, startx=100, starty=100)

2. > 2.1 Statut du pinceau

Sur la toile, il y a un axe de coordonnées dont l'origine des coordonnées est le centre de la toile par par défaut, et il y a une surface sur l'origine des coordonnées. La petite tortue fait face à la direction positive de l'axe des x. Ici, nous utilisons deux mots pour décrire la petite tortue : origine des coordonnées (position), face à la direction positive de l'axe des x (direction). Dans le dessin de la tortue, la position et la direction sont utilisées pour décrire l'état de la petite tortue (pinceau). ).

2.2 Attributs du pinceau

Pinceau (attributs du pinceau, couleur, largeur du dessin au trait, etc.) 1) Turtle.pensize() : Définit la largeur du pinceau

2) Turtle.pencolor() : Aucun Les paramètres sont transmis et la couleur actuelle du pinceau est renvoyée. Les paramètres transmis définissent la couleur du pinceau, qui peut être des chaînes telles que "vert", "rouge" ou 3 tuples RVB.

3) tortue.speed(speed) : Définissez la vitesse de mouvement du pinceau, la plage de vitesse de dessin du pinceau est [0,10] entier, plus le nombre est grand, plus vite.

2.3 Commandes de dessin

Il existe de nombreuses commandes pour manipuler le dessin des tortues. can Il est divisé en 3 types : l'un est la commande de mouvement, l'autre est la commande de contrôle du pinceau et l'autre est la commande de contrôle globale. (1) Commande de mouvement du pinceau

Commande

Description

tortue.avant (distance)

Déplacer la longueur du pixel de distance vers la direction actuelle du pinceau

turtle.backward(distance )

Déplacer la longueur du pixel de distance dans la direction opposée du pinceau actuel

turtle.right(degree)

Déplacer le degré° dans le sens des aiguilles d'une montre

turtle.left(degree)

Déplacer le degré° dans le sens inverse des aiguilles d'une montre

turtle.pendown()

Dessinez des graphiques lors du déplacement, et la valeur par défaut est de dessiner

turtle.goto(x,y)

Déplacez le pinceau vers les coordonnées Position x,y

turtle.penup()

Classé Le stylo bouge sans dessiner de graphiques. Il est utilisé pour dessiner

turtle.circle()

Dessinez un cercle avec un rayon positif (négatif), ce qui signifie que le centre du cercle est à gauche (à droite) du pinceau

<.>

setx()

Déplacer l'axe x actuel vers la position spécifiée

sety( )

Déplacer l'axe y actuel vers la position spécifiée

setheading(angle)

Définir le cap actuel vers l'angle

home()

Définissez la position actuelle du pinceau sur l’origine, face à l’est.

dot(r)

Dessinez un diamètre spécifié et points de couleur

(2) Commandes de contrôle du pinceau


命令

说明

turtle.fillcolor(colorstring)

绘制图形的填充颜色

turtle.color(color1, color2)

同时设置pencolor=color1, fillcolor=color2

turtle.filling()

返回当前是否在填充状态

turtle.begin_fill()

准备开始填充图形

turtle.end_fill()

填充完成

turtle.hideturtle()

隐藏画笔的turtle形状

turtle.showturtle()

显示画笔的turtle形状

CommandeDescriptionturtle.fillcolor(colorstring) La couleur de remplissage pour dessiner des graphiquesturtle.color(color1, color2)Définissez également pencolor=color1, fillcolor=color2turtle.filling()Renvoie si l'état de remplissage est actuellement turtle.begin_fill ()Prêt à commencer à remplir la forme tortue.end_fill()Remplissage terminétortue .hideturtle ()Masquer la forme de tortue du pinceau turtle .showturtle()Afficher la forme de tortue du pinceau

(3) Commande de contrôle global

tr>

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

命令

说明

turtle.clear()

清空turtle窗口,但是turtle的位置和状态不会改变

turtle.reset()

清空窗口,重置turtle状态为起始状态

turtle.undo()

撤销上一个turtle动作

turtle.isvisible()

返回当前turtle是否可见

stamp()

复制当前图形

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

写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

Commande

Description

命令

说明

turtle.mainloop()或turtle.done()

启动事件循环 -调用Tkintermainloop函数。

必须是乌龟图形程序中的最后一个语句。

turtle.mode(mode=None)

设置乌龟模式(“standard”“logo”“world”)并执行重置。如果没有给出模式,则返回当前模式。

模式初始龟标题正角度standard向右(东)逆时针logo向上(北)顺时针

turtle.delay(delay=None)

设置或返回以毫秒为单位的绘图延迟。

turtle.begin_poly()

开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

turtle.end_poly()

停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

turtle.get_poly()

返回最后记录的多边形。

turtle.clear()

Effacez la fenêtre de la tortue, mais la position et le statut de la tortue ne changeront pas

turtle.reset()

Effacez la fenêtre et réinitialisez l'état de la tortue à l'état de départ

tortue .undo ()

Annuler la dernière action de la tortue

turtle.isvisible()

Renvoie si la tortue actuelle est visible

stamp()

Copier le graphique actuel

Écrivez le texte, s est le contenu du texte, la police est le paramètre de la police, qui sont le nom de la police, sa taille et tapez respectivement ; la police est facultative, les paramètres de police sont également facultatifs

(4) Autres commandes

Commande

Description

turtle.mainloop() ou tortue.done()

Démarrer la boucle d'événement -AppelTkintermainloop fonction.

doit être le dernier de la tortue programme graphique une déclaration.

turtle.mode(mode=None)

Définir le mode tortue ( "standard", "logo"ou"world") et effectuez une réinitialisation. Si aucun mode n’est donné, renvoie le mode actuel.

Mode titre initial de la tortue angle positif standard droite (est) dans le sens inverse des aiguilles d'une montre logo vers le haut (nord) dans le sens des aiguilles d'une montre

turtle.delay(delay=None)

Définissez ou renvoyez le délai de dessin en millisecondes.

turtle.begin_poly()

Commencez à enregistrer les sommets du polygone. La position actuelle de la tortue est le premier sommet du polygone.

turtle.end_poly()

Arrêtez d'enregistrer les sommets du polygone. La position actuelle de la tortue est le dernier sommet du polygone. Sera connecté au premier sommet.

turtle.get_poly()

Renvoie le dernier polygone enregistré.

3. Détails de la commande

3.1 tortue.circle(radius, extend=None, steps=None)

Description : donner Tracez un cercle avec un rayon fixe

Paramètres :

Rayon : Le rayon est positif (négatif), ce qui signifie le centre du cercle est à gauche (à droite) du pinceau ) tracez un cercle

étendue (radians) (facultatif) ; ) Polygone régulier, le nombre de côtés du polygone est en pas).

Exemple :

cercle(50) # Cercle complet;

cercle(50, steps=3) # Triangle;

cercle(120, 180) # Demi-cercle

Exemple :

1. Tournesol

# 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. Pentacle

# 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. Programme d'horloge

# 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()

Pour plus de connaissances sur la programmation informatique, veuillez visiter : Vidéo de programmation
 ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn