在Python中在圆内插入文本
我正在尝试编写用于绘制DFA的Python代码。我计划使用海龟图书馆。有替代品吗?我可以画节点,但不确定如何在圆圈内插入状态名称。 谁能给我指路吗?下面是到目前为止我的代码。 谢谢 我无法在我的环境中安装turtle模块,但我认为问题出在可变范围内 myTurtle变量未在全局范围内定义,因此来自draw\u节点的myTurtle与来自draw\u设计的myTurtle不同 另一方面,函数draw_节点是以myTurtle作为输入参数正确调用的,但实际上在draw_节点中没有使用该输入 尝试改变这一点:在Python中在圆内插入文本,python,graphics,turtle-graphics,finite-automata,state-machine,Python,Graphics,Turtle Graphics,Finite Automata,State Machine,我正在尝试编写用于绘制DFA的Python代码。我计划使用海龟图书馆。有替代品吗?我可以画节点,但不确定如何在圆圈内插入状态名称。 谁能给我指路吗?下面是到目前为止我的代码。 谢谢 我无法在我的环境中安装turtle模块,但我认为问题出在可变范围内 myTurtle变量未在全局范围内定义,因此来自draw\u节点的myTurtle与来自draw\u设计的myTurtle不同 另一方面,函数draw_节点是以myTurtle作为输入参数正确调用的,但实际上在draw_节点中没有使用该输入 尝试改变
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 library是您想要做的事情的最佳选择,但它可以实现您的程序所希望实现的目标:
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()
输出
是的,你说得对,我是python新手。非常感谢您的代码;请告诉我,如果turtle不是最佳选择,有哪些替代方案?@Chica_Programmador,一种替代方案是使用tkinter模块,turtle模块是基于该模块构建的。它比turtle更复杂,但就像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()