当前位置: 首页 > news >正文

画动态爱心(Python-matplotlib)

 介绍

氵而已

由于用的是 AI,注释得非常清楚,自己改改也可以用

代码

# -*- coding: utf-8 -*-
# Environment    PyCharm
# File_name   尝试1 |User    Pfolg
# 2024/11/05 22:45
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation# 定义心形的参数方程
color = "#F9A6FF"
t = np.linspace(0, 2 * np.pi, 1000)
x = 16 * np.sin(t) ** 3
y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
# 设置轴的标签
fig, ax = plt.subplots()
ax.set_aspect('equal')  # 设置x和y轴的比例相同
ax.set_xlabel('埃克斯', fontproperties="SimHei", fontsize=16)
ax.set_ylabel('歪', fontproperties="SimHei", fontsize=16)
ax.set_title('', fontproperties='SimHei', fontsize=16)
# # 关闭坐标轴
ax.axis('off')
# 绘制初始心形
line, = ax.plot(x, y, color=color)
# 设置轴的范围
ax.set_xlim(min(x) - 5, max(x) + 5)
ax.set_ylim(min(y) - 5, max(y) + 5)
# 设置爱心中间文本
ax.text(0, 0, 'heart'.upper(), fontsize=20, ha='center', va='center', color=color)# 定义一个缓动函数
def ease_in_out(t):return (np.sin(np.pi * t - np.pi / 2) + 1) / 2# 初始化函数
def init():line.set_data([], [])return line,# 动画函数
# def animate(i):
#     # 模拟跳动效果,通过改变心形的大小
#     scale = 1 + 0.3 * np.sin(2 * np.pi * i / 20)
#     line.set_data(x * scale, y * scale)
#     return line,
def animate(i):# 使用缓动函数来模拟更自然的跳动scale = 1 + 0.3 * ease_in_out(i / 20)line.set_data(x * scale, y * scale)return line,# 设置视频的时长和帧率
T = 10  # 视频时长为2秒
fps = 30  # 帧率为30帧每秒# 计算总帧数
frames = int(T * fps)
# 创建动画
ani = animation.FuncAnimation(fig, animate, init_func=init, frames=frames, interval=50, blit=True
)# 显示动画
plt.show()# 保存动画为GIF文件
# ani.save('sine_wave.gif', writer='imagemagick')# 如果你安装了FFmpeg,也可以保存为MP4文件
ani.save('sine_wave.mp4', writer='ffmpeg', fps=20)

FFmpegicon-default.png?t=O83Ahttps://ffmpeg.org/

效果


http://www.mrgr.cn/news/66929.html

相关文章:

  • 计算机网络八股文个人总结
  • Redis应用(6)接口限流
  • C++之vector 容器的使用
  • 软件测试学习笔记丨Vue常用指令-条件渲染(v-if)
  • App运行流程分析
  • 微服务中常用分布式锁原理及执行流程
  • Django的manage.py命令用法
  • element-plus table tableRowClassName 无效
  • 最新三维视觉下的扩散模型综述——Diffusion Models in 3D Vision: A Survey
  • windows10显示计算机设置,我的电脑,此电脑设置
  • 软媒市场自助发稿平台的优势解析
  • 怎样用云手机进行FB矩阵运营而不被封号?
  • 【Ag-Grid】 使用笔记 Vue3 + Vite(一)
  • Kafka自动生产消息软件(自动化测试Kafka)
  • gomarkdown漏洞CVE-2024-44337--手把手教你go-fuzz模糊测试引擎如何进行漏洞挖掘
  • Modbus解析流程全面升级:体验全新核心与终极优化!
  • SpringBoot中使用SpringTask实现定时任务
  • 设置Three.js响应式画布
  • Android RecyclerView ,使用ItemDecoration设置边距的大坑:左右边距不均匀/不同,已解决。
  • 【C++课程学习】:string的模拟实现
  • 防患于未然才是预警大屏的意义所在,看它是如何做的?
  • java-web-day14-项目属性配置和bean的管理
  • docker 常用方法
  • 编译cartographer和cartographer_ros 过程
  • 超好用的运维终端 NuShell
  • 《纺织报告》是什么级别的期刊?是正规期刊吗?能评职称吗?