0

Я пытаюсь написать код Python для рисования DFA. Я планирую использовать библиотеку черепах. Есть ли альтернативы? Я могу нарисовать узлы, но я не уверен, как вставлять имена состояний внутри кругов. Может ли кто-нибудь направить меня? Ниже приведен мой код. Спасибо!Вставка текста внутри круга в 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() 

ответ

0

Проблема с кодом, кажется, сочетание недостаточного знакомства с библиотекой черепахи, в частности и Python программирования в Генеральная. Я бы не сказал, что библиотека черепаха является лучшим выбором для того, что вы хотите сделать, но это может сделать то, что ваша программа стремится достичь:

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

OUTPUT

enter image description here

+0

Да , вы правы, что я новичок в python. Большое спасибо за ваш код; Могу ли я, пожалуйста, знать, не является ли черепаха лучшим выбором, каковы альтернативы? –

+0

@Chica_Programmador, одна из альтернатив - использовать модуль tkinter, на котором построен модуль черепахи. Это сложнее, чем черепаха, но, как черепаха, вы можете создать набор функций, относящихся к вашей проблемной области, а затем работать с ними в вашем коде. – cdlane

0

Я не могу установить черепаха модуля в моем окружении, но я думаю, что проблема заключается в переменных областях.

myTurtle переменная не определена в глобальном масштабе, поэтому myTurtle от draw_node отличается, то myTurtle от draw_design.

В другой стороны, функция draw_node правильно вызывается с myTurtle в качестве входного параметра, но на самом деле нет использование этого входа внутри draw_node.

Попытка изменить что:

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

к тому, что:

def draw_node(some_turtle): 
    some_turtle.circle(50) 
    turtle.getscreen().__root.mainloop() 
Смежные вопросы