0

J'essaye d'écrire du code Python pour dessiner un DFA. Je prévois d'utiliser la bibliothèque de tortues. Y a-t-il des substituts? Je peux dessiner les nœuds mais je ne sais pas comment insérer les noms d'état à l'intérieur des cercles. Quelqu'un peut-il me guider? Ci-dessous est mon code jusqu'à présent. Merci!Insérer du texte dans un cercle en Python

import turtle 

def draw_node(some_turtle): 
    myTurtle.circle(50) 
    turtle.getscreen().__root.mainloop() 


def draw_design(): 

    window = turtle.Screen() 
    window.bgcolor("teal") 

    myTurtle = turtle.Turtle() 
    myTurtle.color("white") 
    myTurtle.shape("turtle") 
    myTurtle.speed(5) 
    myTurtle.pensize(4) 

    draw_node(myTurtle) 

    window.exitonclick() 

draw_design() 

Répondre

0

Le problème avec votre code semble être une combinaison d'un manque de familiarité avec la bibliothèque des tortues dans la programmation particulière et Python général. Je ne voudrais pas nécessairement dire que la bibliothèque de tortue est le meilleur choix pour ce que vous voulez faire, mais il peut faire ce que votre programme aspire à atteindre:

from turtle import Turtle, Screen 

RADIUS = 50 

FONT_SIZE = 18 

FONT = ("Arial", FONT_SIZE, "normal") 

def draw_node(turtle, text, x, y): 
    turtle.up() 
    turtle.goto(x, y - RADIUS) 
    turtle.down() 
    turtle.circle(RADIUS) 
    turtle.up() 
    turtle.goto(x, y - FONT_SIZE // 2) 
    turtle.write(text, align="center", font=FONT) 

def draw_design(turtle): 

    turtle.color("white") 
    turtle.pensize(4) 

    draw_node(turtle, "S0", -100, 100) 

    draw_node(turtle, "S1", 100, 100) 

screen = Screen() 
screen.bgcolor("blue") 

yertle = Turtle(shape="turtle") 

draw_design(yertle) 

yertle.home() 

screen.exitonclick() 

SORTIE

enter image description here

+0

Oui , vous avez raison de dire que je suis nouveau sur python. Merci beaucoup pour votre code; Puis-je savoir si la tortue n'est pas le meilleur choix, quels sont les suppléants? –

+0

@Chica_Programmador, une alternative est d'utiliser le module tkinter sur lequel le module de tortue est construit. C'est plus compliqué que la tortue mais, tout comme la tortue, vous pouvez construire un ensemble de fonctions qui se rapportent à votre domaine de problème, puis travailler avec ceux de votre code. – cdlane

0

Je ne peux pas installer module tortue dans mon environnement, mais je pense que problème est en champs variables.

variables myTurtle ne définit pas une portée globale, donc myTurtle de draw_node est différent alors myTurtle de draw_design.

Dans d'autre part, la fonction draw_node est correctement appelé avec myTurtle comme paramètre d'entrée, mais en fait il n'y a pas l'utilisation de cette entrée à l'intérieur draw_node.

Essayez de changer cela:

def draw_node(some_turtle): 
    myTurtle.circle(50) 
    turtle.getscreen().__root.mainloop() 

que:

def draw_node(some_turtle): 
    some_turtle.circle(50) 
    turtle.getscreen().__root.mainloop()