七夕前的爱心代码!

news2024/11/22 11:32:16

话不多说上代码!

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的事件循环,使窗口保持打开状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/903404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二、Kafka快速入门

目录 2.1 安装部署1、【单机部署】2、【集群部署】 2.2 Kafka命令行操作1、查看topic相关命令参数2、查看当前kafka服务器中的所有Topic3、创建 first topic4、查看 first 主题的详情5、修改分区数(注意:分区数只能增加,不能减少)…

msvcr120.dll丢失有哪些简单的恢复方法?

在日常使用计算机的过程中,我们可能会遇到各种问题,比如系统崩溃、程序无法运行等。最近,我在使用一些软件时遇到了一个问题:程序无法正常运行,提示找不到msvcr120.dll文件。经过一番查找和尝试,我终于找到…

查询投稿期刊的好用网址

网址 搞科研:查询SCI期刊的ISSN、期刊名称、大类分区、影响因子 http://www.gaokeyan.com/journal/index.php Letpub:查询期刊详细信息 https://www.letpub.com.cn/index.php?pagejournalapp 小木虫:查询期刊的评价 http://muchong.com/…

基于小程序的汽车俱乐部系统的设计与实现(论文+源码)_kaic

目录 前 言 1 系统概述 1.1 系统主要功能 1.2 开发及运行环境 2 系统分析和总体设计 2.1 需求分析 2.2 可行性分析 2.3 设计目标 2.4 项目规划 2.5 系统开发语言简介 2.6 系统功能模块图 3 系统数据库设计 3.1 数据库开发工具简介 3.2 数据库需求分析 3.3 数据库…

防火墙firewall

一、什么是防火墙 二、iptables 1、iptables介绍 2、实验 138的已经被拒绝,1可以 三、firewalld 1、firewalld简介 关闭iptables,开启firewalld,curl不能使用,远程连接ssh可以使用 添加80端口 这样写也可以:添加http…

[NLP] BERT模型参数量

一 BERT_Base 110M参数拆解 BERT_base模型的110M的参数具体是如何组成的呢,我们一起来计算一下: 刚好也能更深入地了解一下Transformer Encoder模型的架构细节。 借助transformers模块查看一下模型的架构: import torch from transformers …

Leetcode.118 杨辉三角

题目链接 Leetcode.118 杨辉三角 easy 题目描述 给定一个非负整数 n u m R o w s numRows numRows,生成「杨辉三角」的前 n u m R o w s numRows numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出:…

STM32--DMA

文章目录 DMA简介DMA特性 DMA框图DMA基本结构DMA请求数据宽度对齐DMA数据转运工程DMAADC多通道 DMA简介 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的…

Goland 注释时自动在注释符号后添加空格

不得不说 JetBrains 旗下的 IDE 都好用,而且对于注释这块,使用 Ctrl / 进行注释的时候,大多会在每个注释符号后统一添加一个空格,比如 PyCharm 和 RubeMine 等。 # PyCharm # print("hello world") # RubyMine # req…

基于web网上订餐系统的设计与实现(论文+源码)_kaic

目录 1绪论 1.1课题研究背景 1.2研究现状 1.3主要内容 1.4本文结构 2网上订餐系统需求分析 2.1系统业务流程分析 2.2消费者用户业务流程分析 2.3商户业务流程分析 2.4管理员用户流程分析消费者用户用例分析 2.5系统用例分析 3网上订餐系统设计 3.1功能概述 3.2订单管理模块概要…

MySQL安装、配置和启动关闭

1. 概述 本文主要内容: MySQL下载;MySQL的安装;配置环境变量;登录MySQL服务器;查询系统数据库;启动和关闭服务; 2. 安装、配置、启动与关闭服务 2.1. MySQL下载 在MySQL官网就可以下载。 …

aardio简单日历实例

import console; io.open()//aardio简单日历实例getMonthDays function(year,month){var startDate year"/"month"/""1"; //当月1日var endDate time(startDate).addmonth(1).addday(-1); //当月末return endDate.diffday(time(startDate))1…

数据结构 - 算法设计的基本要求

1、算法的描述: 自然语言:英语、中文流程图:传统流程图、NS流程图伪代码:类语言 - 类C语言程序代码:Java、C语言 2、算法的特性: 一个算法必须具备以下五个特性: 3、算法设计的要求 正确性可…

msvcp140.dll文件丢失的解决方法是什么?

在日常使用电脑的时候,有时候会遇到一些使用问题。比如,有一次遇到了这样一个问题。那就是,因为“msvcp140.dll”这个文件丢失,有些软件安装不了。今天把我在网上找了很久的解决方法分享给大家,希望也能帮到大家。 丢…

页面滑动到可视区域加载更多内容思维流程

页面滑动到可视区域加载更多内容思维流程

Slingshot | 细胞分化轨迹的这样做比较简单哦!~(二)

1写在前面 今天又值班了,你没有听错!! 🥲 又值班了!!!!😅 最近自己的确不太在状态,做事情有极强的拖延症,要振奋起来啦,man&#xff0…

编写Dockerfile制作自己的镜像并推送到私有仓库

说明:我将用到的私有仓库是Harbor,安装教程参考我的这一篇文章: 安装搭建私有仓库Harbor_Word_Smith_的博客-CSDN博客 一、案例1 1、要求 编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私…

Linux学习(一)虚拟机安装

1、简介 最近准备开始进行linux的学习,本文从头开始记录学习过程以及遇到困难处理办法,便于以后复习、指令复制等。 2、虚拟机安装 2.1 VMware虚拟机安装 安装包链接:ubuntu20.04 https://www.aliyundrive.com/s/ZN8kZFKvBRu 点击链接保存…

十一、Linux用户及用户组的权限信息如何查看?如何修改?什么是权限的数字序号?

目录: 1、认知权限信息 2、rwx? (1)总括: (2)r权限: (3)w权限: (4)x权限: 3、修改权限 (1&a…

电脑提示找不到d3dcompiler_47.dll的解决方案

在电脑上玩游戏或许工作中是我日常生活中的一大乐趣。然而,最近我遇到了一个问题,让我对我的游戏还有我的工作软件体验感到非常沮丧。这个问题就是d3dcompiler_47.dll文件的丢失。当我尝试启动一个新的游戏时,一个错误提示窗口出现在我的屏幕…