目录
系列文章
前言
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 |
烟花秀(2023) | https://want595.blog.csdn.net/article/details/135042880 | ||
粒子烟花 | https://want595.blog.csdn.net/article/details/136029420 | ||
2 | 圣诞节 | 圣诞礼物 | https://want595.blog.csdn.net/article/details/135336583 |
圣诞树(2022) | https://want595.blog.csdn.net/article/details/128428985 | ||
绿色圣诞树(2023) | https://want595.blog.csdn.net/article/details/135048607 | ||
粉色圣诞树(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 |
懒羊羊 | https://want595.blog.csdn.net/article/details/134847642 | ||
灰太狼 | https://want595.blog.csdn.net/article/details/135335303 | ||
小灰灰 | https://want595.blog.csdn.net/article/details/135335445 | ||
小香香 | 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 |
高级皮卡丘 | https://want595.blog.csdn.net/article/details/135337937 | ||
豪华皮卡丘 | 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 |
一闪一闪亮星星 | 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 模块绘制正方形的简单示例:
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跳动的爱心
程序设计
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)
……
运行效果
尾声
我是一只有趣的兔子,感谢你的喜欢!