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é.
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.
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形状 |
(3) Commande de contrôle global
|
Description
|
||||||||||||||||||||||||||||
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 | tr> ||||||||||||||||||||||||||||
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 |
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!