实现代码:
import turtle
import random
turtle.title('情人节快乐!')
def love(x,y):#在(x,y)处画爱心
love=turtle.Turtle()
love.hideturtle()
love.up()
love.goto(x,y)#定位到(x,y)
def curvemove():#画圆弧
for i in range(20):
love.right(10)
love.forward(2)
love.color('red','pink')
love.speed(1000)
love.pensize(1)
#开始画爱心lalala
love.down()
love.begin_fill()
love.left(140)
love.forward(22)
curvemove()
love.left(120)
curvemove()
love.forward(22)
love.write("lover",font=("Arial",12,"normal"),align="center")#用您爱人的名字替代"lover"
love.left(140)#画完复位
love.end_fill()
def tree(branchLen,t):
if branchLen > 5:#剩余树枝太少要结束递归
if branchLen<20:
t.color("green")
t.pensize(random.uniform((branchLen + 5) / 4 - 2, (branchLen + 6) / 4 + 5))
t.down()
t.forward(branchLen)
love(t.xcor(),t.ycor())#传输现在turtle的坐标
t.up()
t.backward(branchLen)
t.color("brown")
return
t.pensize(random.uniform((branchLen+5)/4-2,(branchLen+6)/4+5))
t.down()
t.forward(branchLen)
# 以下递归
ang=random.uniform(15,45)
t.right(ang)
tree(branchLen-random.uniform(12,16),t)#随机决定减小长度
t.left(2*ang)
tree(branchLen-random.uniform(12,16),t)#随机决定减小长度
t.right(ang)
t.up()
t.backward(branchLen)
myWin = turtle.Screen()
t = turtle.Turtle()
t.hideturtle()
t.speed(10)
t.left(90)
t.up()
t.backward(200)
t.down()
t.color("brown")
t.pensize(32)
t.forward(60)
tree(100,t)
turtle.penup()
turtle.goto(150,-100)
turtle.pencolor("black")
turtle.write("XX于2022-02-14",font=("Arial",12,"normal")) #签名
turtle.done()