在 Python 中的圆圈内插入文本

Inserting text inside a circle in Python

我正在尝试编写 Python 代码来绘制 DFA。我打算使用海龟库。有替代品吗?我可以绘制节点,但不确定如何在圆圈内插入州名称。 谁能指导我吗?到目前为止,下面是我的代码。 谢谢!

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

我无法在我的环境中安装 turtle 模块,但我认为问题出在变量范围内。

myTurtle 变量未在全局范围内定义,因此 myTurtle 来自 draw_node 不同于 myTurtle 来自 draw_design.

另一方面,函数 draw_nodemyTurtle 作为输入参数被正确调用,但实际上有在 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()

您的代码的问题似乎是对 turtle 库特别不熟悉和 Python 一般编程的结合。我不一定会说 turtle 库是你想做的事情的最佳选择,但它可以做你的程序渴望实现的事情:

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

输出