七夕前的爱心代码!

话不多说上代码!

import turtle as tu
import random as ra

tu.setup(1.0, 1.0)
tu.screensize(1.0, 1.0)
tu.bgcolor('black')
t = tu.Pen()
t.ht()
colors = ['pink', 'hotpink', 'deeppink', 'lightpink', 'red', 'purple', 'violet', 'magenta']

def draw_star(x, y, size, color):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.color(color)
    t.begin_fill()
    for _ in range(5):
        t.forward(size)
        t.right(144)
    t.end_fill()

class Love:
    def __init__(self, r):
        self.r = r
        self.x = 0
        self.y = -200
        self.color = ra.choice(colors)
        self.outline = 2
        self.counter = 0

    def draw(self):
        t.pensize(self.outline)
        t.penup()
        t.color(self.color)
        t.goto(self.x, self.y)
        t.pendown()
        t.setheading(140)
        t.begin_fill()
        t.forward(224)
        for _ in range(200):
            t.right(1)
            t.forward(2)
        t.left(120)
        for _ in range(200):
            t.right(1)
            t.forward(2)
        t.forward(224)
        t.end_fill()

    def change(self):
        self.counter += 1
        if self.counter % 100 == 0:
            self.color = ra.choice(colors)

Loves = [Love(100) for _ in range(1)]

for _ in range(10000):
    tu.tracer(0)
    t.clear()
    for love in Loves:
        love.draw()
        love.change()
    # 绘制星星
    for _ in range(20):
        x = ra.randint(-300, 300)
        y = ra.randint(-200, 200)
        size = ra.randint(5, 20)
        color = ra.choice(colors)
        draw_star(x, y, size, color)
    tu.update()

tu.mainloop()

效果图! 

 代码解释

  • 1. `import turtle as tu` 和 `import random as ra`: 导入turtle和random库,分别用于绘图和生成随机数。
  • 2. `tu.setup(1.0, 1.0)` 和 `tu.screensize(1.0, 1.0)`: 设置画布和屏幕大小。
  • 3. `tu.bgcolor('black')`: 设置画布背景颜色为黑色。
  • 4. `t = tu.Pen()`: 创建一个画笔对象。
  • 5. `t.ht()`: 隐藏画笔。
  • 6. `colors = [...]`: 定义一个颜色列表,用于爱心和星星的颜色。
  • 7. `draw_star(x, y, size, color)`: 定义一个函数,用于绘制星星。
  • 8. `class Love:`: 定义一个爱心类。
  • 9. `__init__(self, r)`: 初始化方法,设置爱心的半径、位置、颜色等属性。
  • 10. `draw(self)`: 定义一个方法,用于绘制心形。
  • 11. `change(self)`: 定义一个方法,用于改变心形的颜色。
  • 12. `Loves = [Love(100) for _ in range(1)]`: 创建一个爱心对象列表。
  • 13. `while True:`: 主循环,用于不断绘制爱心和星星。
  • 14. `tu.tracer(0)`: 关闭屏幕更新,以便一次性绘制所有图形。
  • 15. `t.clear()`: 清除画布上的所有图形。
  • 16. `for love in Loves:`: 循环遍历爱心列表,绘制每个爱心。
  • 17. `for _ in range(20):`: 循环绘制星星。
  • 18. `x = ra.randint(-300, 300)` 等: 生成星星的随机位置、大小和颜色。
  • 19. `draw_star(x, y, size, color)`: 调用函数绘制星星。
  • 20. `tu.update()`: 更新屏幕,显示所有图形。
  • 21. `tu.mainloop()`: 进入turtle的事件循环,使窗口保持打开状态。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值