画动态爱心(Python-matplotlib)

news/2024/11/7 8:05:53/

 介绍

氵而已

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

代码

python"># -*- 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.ppmy.cn/news/1545010.html

相关文章

Redis 基础数据改造

优质博文:IT-BLOG-CN 一、服务背景 基础数据查询服务:提供航司(5000家)、机场(4000)、票台(40000)、城市(4000)等基础数据信息。 痛点一:因为基…

微信小程序 uniapp+vue老年人身体监测系统 acyux

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 过此方式促进老年人辅助程序信息流动和数据传输效率,提供一个内容丰富、功能多样、易于操作的老年人辅助程序…

Linux qt下是使用搜狗輸入發

1.下载一个编译好的包 https://github.com/sixsixQAQ/fcitx5-qt 出处&#xff1a;这里 2.根据QT5&#xff0c;或者QT6选择下载 3.使用 把那个libfcitx5platforminputcontextplugin.so放到下面的路径&#xff1a; <你的Qt安装目录>/gcc_64/plugins/platforminputcontex…

【网络面试篇】HTTP(1)(笔记)——状态码、字段、GET、POST、缓存

目录 一、相关问题 1. HTTP请求常见的状态码和字段&#xff1f; &#xff08;1&#xff09;状态码 &#xff08;2&#xff09;字段 ① Host 字段 ② Content-length 字段 ③ Connection 字段 ④ Content-Type 字段 ⑤ Content-Encoding 字段 2. GET 和 POST 的区别&a…

梧桐数据库空间向量使用介绍分享

在梧桐数据库&#xff08;WuTongDB&#xff09;中&#xff0c;空间向量和空间索引的高效使用对于处理空间数据至关重要。本文将通过一个详细的案例&#xff0c;介绍如何在梧桐数据库中使用空间向量&#xff0c;包括创建空间索引、插入样例数据以及执行具体的查询过程&#xff0…

20241106软考架构-------软考案例13答案

每日打卡题案例13答案 【2015年真题】 难度&#xff1a;一般 阅读以下关于Web系统架构的设计的叙述&#xff0c;回答下列问题。&#xff08;25分&#xff09; 【说明】 某信息技术公司计划开发一套在线投票系统&#xff0c;用于为市场调研、信息调查和销售反馈等业务提供服务。…

javaweb基于springboot社区养老服务管理系统

简介&#xff1a; 系统整体设计分为三个角色&#xff0c;分别是社区员工、社区老人、社区系统管理员。在功能模块上分为三大块&#xff1a;人员管理模块、健康管理模块和活动管理模块。 人员管理模块能够对社区系统管理员信息、社区员工信息、社区老人信息进行管理。健康管理模…

JavaCV学习第一课

1、 JavaCV [1] 是一款基于JavaCPP [2]调用方式&#xff08;JNI的一层封装&#xff09;&#xff0c;由多种开源计算机视觉库组成的包装库&#xff0c;封装了包含FFmpeg、OpenCV、tensorflow、caffe、tesseract、libdc1394、OpenKinect、videoInput和ARToolKitPlus等在内的计算…