在 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_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()
您的代码的问题似乎是对 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()
输出
我正在尝试编写 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_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()
您的代码的问题似乎是对 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()
输出