import turtle
t = turtle.Turtle()
def heart(x):
t.penup()
t.goto(x, -100)
t.pendown()
t.color('black','red')
t.begin_fill()
t.left(45)
t.forward(100)
t.circle(50, 180)
t.right(90)
t.circle(50, 180)
t.forward(100)
t.end_fill()
for i in range(3):
if i==1:
x=-250
heart(x)
elif i==2:
#continue
x=0
heart(x)
else:
#continue
x=250
heart(x)
t.hideturtle()
turtle.done()
这个程序应该将三颗心画成一条直线 我制作了一个循环来设置心脏的初始位置。它应该将心脏绘制在一个位置并移动到下一个位置。当指针移动到下一个位置时,心形出现倾斜。
您的
heart
函数假设海龟的航向为 0,但在绘制心形的过程中,由于 left
/right
调用,航向发生变化。
一种解决方案是在函数开始时使用
t.setheading(0)
重置标题。
此外,你的循环/
if
组合过于复杂。我建议删除 if
或同时删除循环和 if
并使用 3 个单独的 heart
调用。这是一个简化版本:
from turtle import Screen, Turtle
def heart(x):
t.penup()
t.goto(x, -100)
t.pendown()
t.color("black", "red")
t.setheading(0)
t.begin_fill()
t.left(45)
t.forward(100)
t.circle(50, 180)
t.right(90)
t.circle(50, 180)
t.forward(100)
t.end_fill()
t = Turtle()
t.hideturtle()
for x in range(-250, 251, 250):
heart(x)
Screen().exitonclick()
考虑为
size
以及可选的 y
创建 heart
和 t
值参数。事实上,它有点硬编码。