Python跳动的爱心(双爱心版)

目录

系列文章

前言

Turtle简介

Python跳动的爱心

尾声


系列文章

|--------|--------------|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 序号 | 文章目录 || 直达链接 |
| 表白系列 ||||
| 1 | 无法拒绝的表白界面 || https://want595.blog.csdn.net/article/details/134744894 |
| 2 | 满屏飘字表白代码 || https://want595.blog.csdn.net/article/details/135037388 |
| 3 | 无限弹窗表白代码 || https://want595.blog.csdn.net/article/details/134744711 |
| 4 | 李峋同款可写字版跳动的爱心 || https://want595.blog.csdn.net/article/details/134744191 |
| 5 | 流星雨 || https://want595.blog.csdn.net/article/details/134747408 |
| 6 | 漂浮爱心 || https://want595.blog.csdn.net/article/details/134744929 |
| 7 | 爱心光波 || https://want595.blog.csdn.net/article/details/134747365 |
| 8 | 玫瑰花 || https://want595.blog.csdn.net/article/details/134747447 |
| 节日系列 ||||
| 1 | 新春/跨年 | 烟花秀(2022) | https://want595.blog.csdn.net/article/details/128727394 |
| 1 | 新春/跨年 | 烟花秀(2023) | https://want595.blog.csdn.net/article/details/135042880 |
| 1 | 新春/跨年 | 粒子烟花 | https://want595.blog.csdn.net/article/details/136029420 |
| 2 | 圣诞节 | 圣诞礼物 | https://want595.blog.csdn.net/article/details/135336583 |
| 2 | 圣诞节 | 圣诞树(2022) | https://want595.blog.csdn.net/article/details/128428985 |
| 2 | 圣诞节 | 绿色圣诞树(2023) | https://want595.blog.csdn.net/article/details/135048607 |
| 2 | 圣诞节 | 粉色圣诞树(2023) | https://want595.blog.csdn.net/article/details/135043042 |
| 3 | 冬至 | 大雪纷飞 | https://want595.blog.csdn.net/article/details/128806017 |
| 4 | 生日 | 生日蛋糕 | https://want595.blog.csdn.net/article/details/128739755 |
| 5 | 儿童节 | 五彩气球 | https://want595.blog.csdn.net/article/details/128741043 |
| 6 | 国庆节 | 国庆祝福 | https://want595.blog.csdn.net/article/details/128740923 |
| 7 | 万圣节 | 万圣礼物 | https://want595.blog.csdn.net/article/details/128734395 |
| 8 | 愚人节 | 愚人代码 | https://want595.blog.csdn.net/article/details/128696990 |
| 9 | 中秋节 | 浪漫星空 | https://want595.blog.csdn.net/article/details/128737284 |
| 10 | 植树节 | 樱花树 | https://want595.blog.csdn.net/article/details/128700178 |
| 动漫系列 ||||
| 1 | 名侦探柯南系列 | 柯南 | https://want595.blog.csdn.net/article/details/134777613 |
| 2 | 喜羊羊与灰太狼系列 | 喜羊羊 | https://want595.blog.csdn.net/article/details/134778583 |
| 2 | 喜羊羊与灰太狼系列 | 懒羊羊 | https://want595.blog.csdn.net/article/details/134847642 |
| 2 | 喜羊羊与灰太狼系列 | 灰太狼 | https://want595.blog.csdn.net/article/details/135335303 |
| 2 | 喜羊羊与灰太狼系列 | 小灰灰 | https://want595.blog.csdn.net/article/details/135335445 |
| 2 | 喜羊羊与灰太狼系列 | 小香香 | https://want595.blog.csdn.net/article/details/135056783 |
| 3 | 海绵宝宝系列 | 海绵宝宝 | https://want595.blog.csdn.net/article/details/134847364 |
| 4 | 哆啦A梦系列 | 哆啦A梦 | https://want595.blog.csdn.net/article/details/135037884 |
| 5 | HelloKitty系列 | hellokitty | https://want595.blog.csdn.net/article/details/135337732 |
| 6 | Tom&Jerry系列 | Tom&Jerry | https://want595.blog.csdn.net/article/details/135337775 |
| 7 | 草莓熊系列 | 草莓熊 | https://want595.blog.csdn.net/article/details/135337832 |
| 8 | 皮卡丘系列 | 迷你皮卡丘 | https://want595.blog.csdn.net/article/details/135337911 |
| 8 | 皮卡丘系列 | 高级皮卡丘 | https://want595.blog.csdn.net/article/details/135337937 |
| 8 | 皮卡丘系列 | 豪华皮卡丘 | https://want595.blog.csdn.net/article/details/135337947 |
| 9 | 猪猪侠系列 | 猪猪侠 | https://want595.blog.csdn.net/article/details/136340111 |
| 10 | 超级英雄系列 | 蜘蛛侠 | https://want595.blog.csdn.net/article/details/129080659 |
| 炫酷系列 ||||
| 1 | 一闪一闪亮星星系列 | 张万森下雪了 | https://want595.blog.csdn.net/article/details/135336915 |
| 1 | 一闪一闪亮星星系列 | 一闪一闪亮星星 | https://want595.blog.csdn.net/article/details/135337049 |
| 2 | 代码雨 | https://want595.blog.csdn.net/article/details/135054341 ||
| 3 | 七彩花朵 | https://want595.blog.csdn.net/article/details/135056670 ||
| 4 | 3D星空 | https://want595.blog.csdn.net/article/details/135056516 ||
| 5 | 金榜题名 | https://want595.blog.csdn.net/article/details/135056150 ||
| 6 | 满天星 | https://want595.blog.csdn.net/article/details/135056305 ||
| ...... ||||

前言

今天博主给大家带来了有趣的跳动的爱心(双心版),一起来看看吧!

Turtle简介

Turtle 是 Python 标准库中的一个模块,用于绘制简单的图形和创建基本的图形用户界面。它借用了 Logo 编程语言中的概念,通过控制一个"海龟"在屏幕上的移动来绘制图形。这个模块非常适合初学者学习编程,因为它提供了一个直观且有趣的方式来理解基本的编程概念,如循环、函数和事件处理。

Turtle 的基本概念

Turtle 模块中的"海龟"其实是一个小箭头,它可以在屏幕上移动,并根据指令绘制路径。以下是一些基本的命令:

  • `forward(distance)`:让海龟向前移动指定距离。
  • `backward(distance)`:让海龟向后移动指定距离。
  • `right(angle)`:让海龟向右转动指定角度。
  • `left(angle)`:让海龟向左转动指定角度。
  • `penup()` 和 `pendown()`:抬起或放下笔,抬起笔时移动不会绘制线条。

简单示例

以下是一个使用 Turtle 模块绘制正方形的简单示例:

python 复制代码
import turtle
# 创建一个屏幕对象
wn = turtle.Screen()
wn.title("Turtle 示例")
# 创建一个海龟对象
t = turtle.Turtle()
# 绘制正方形
for _ in range(4):
    t.forward(100)
    t.right(90)
# 完成绘图
wn.mainloop()

这个示例代码展示了如何创建一个窗口和一个海龟对象,然后使用循环指令绘制一个正方形。`wn.mainloop()` 用于保持窗口打开状态,以便查看绘制结果。

高级功能

除了基本的移动和绘图命令,Turtle 模块还支持更高级的功能,如:

  • **颜色和填充**:使用 `color()` 设置绘图颜色,使用 `begin_fill()` 和 `end_fill()` 创建填充图形。
  • **形状**:海龟的形状可以更改为箭头、圆形、正方形等,使用 `shape()` 方法。
  • **速度**:通过 `speed()` 方法控制海龟的移动速度。
  • **事件处理**:Turtle 支持事件处理,如键盘和鼠标事件,可以使用 `onscreenclick()` 和 `onkey()` 方法进行绑定。

应用场景

Turtle 模块广泛应用于教育领域,尤其是编程入门和算法教学。它通过图形化的方式帮助学生理解抽象的编程概念,同时增加了学习的趣味性。此外,Turtle 也可以用于简单的图形设计和数据可视化,尽管功能较为基础,但它为进一步学习更复杂的图形编程打下了良好的基础。

总的来说,Turtle 模块是 Python 学习者不可多得的工具,它不仅易于上手,而且功能丰富,能够激发学习者的创造力和编程兴趣。通过不断尝试和练习,学习者可以掌握编程的基本技能,并为深入学习打下坚实的基础。

Python跳动的爱心

程序设计

python 复制代码
import random
from math import sin, cos, pi, log
from tkinter import *

# Constants
IMAGE_ENLARGE = 11
INNER_HEART_COLOR = "pink"
OUTER_HEART_COLOR = ""
SCATTER_BETA = 0.15
SHRINK_RATIO = 15
CURVE_RATIO = 10
FRAME_DELAY = 160
NUM_POINTS = 2000
NUM_HALO_POINTS = 3000
NUM_EDGE_DIFFUSION_POINTS = 3
HALO_RANDOM_FACTOR = 14

class HeartParameters:
    def __init__(self):
        self.points = set()
        self.edge_diffusion_points = set()
        self.center_diffusion_points = set()
        self.all_points = {}

# Heart Function
def heart_function(t, shrink_ratio=IMAGE_ENLARGE):
    x = 16 * (sin(t) ** 3)
    y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))
    x, y = x * shrink_ratio + CANVAS_CENTER_X, y * shrink_ratio + CANVAS_CENTER_Y
    return int(x), int(y)

# Scatter Points
def scatter_points(x, y, beta=SCATTER_BETA):
    ratio_x, ratio_y = -beta * log(random.random()), -beta * log(random.random())
    dx, dy = ratio_x * (x - CANVAS_CENTER_X), ratio_y * (y - CANVAS_CENTER_Y)
    return x - dx, y - dy

# Shrink Points
def shrink_points(x, y, ratio):
    force = -1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.6)
    dx, dy = ratio * force * (x - CANVAS_CENTER_X), ratio * force * (y - CANVAS_CENTER_Y)
    return x - dx, y - dy

# Curve Function
def curve(p):
    return 2 * (3 * sin(4 * p)) / (2 * pi)
......

运行效果

尾声

我是一只有趣的兔子,感谢你的喜欢!

相关推荐
让你三行代码QAQ几秒前
SpringSecurity初始化过程
java·开发语言
逆水寻舟23 分钟前
算法学习记录2
python·学习·算法
Mr_Richard32 分钟前
Java动态代理的实现方式
java·开发语言
B站计算机毕业设计超人1 小时前
计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js
大数据·python·深度学习·机器学习·数据分析·课程设计·推荐算法
码农超哥同学1 小时前
Python面试题:请解释 `lambda` 函数是什么,并举一个例子
开发语言·python·面试·编程
sssjjww1 小时前
python输出日志out.log相关问题(缓存机制)
java·python·缓存
Uluoyu1 小时前
python爬虫爬取中国国际招标有限公司
开发语言·爬虫·python
LL小蜗牛1 小时前
Java对象通用比对工具
java·开发语言
☆致夏☆2 小时前
Java-反射
java·开发语言
akthwyl2 小时前
2024年【安全员-C证】考试及安全员-C证免费试题
c语言·开发语言