python实现情人节的爱意表达

实现代码:

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

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值