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

做网站用什么系统好网站登录验证码是怎么做的

做网站用什么系统好,网站登录验证码是怎么做的,深圳注册公司在什么网站,环球资源网站网址在编程的世界里,代码不仅仅是冰冷的指令集合,它也可以充满浪漫与创意。今天,就带大家一起来看看如何用Python代码绘制出一个跳动的梦幻爱心,将数学的优雅与编程的魅力完美结合。 核心代码解析 1. 定义二维爱心函数 t np.lins…

在编程的世界里,代码不仅仅是冰冷的指令集合,它也可以充满浪漫与创意。今天,就带大家一起来看看如何用Python代码绘制出一个跳动的梦幻爱心,将数学的优雅与编程的魅力完美结合。
请添加图片描述

核心代码解析

1. 定义二维爱心函数

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)

这里借助numpy库的linspace函数生成了1000个从0到 2 π 2\pi 2π的均匀分布的数值,作为参数t。通过这组参数t,利用特定的数学公式分别计算出xy坐标。这两个公式可不是随意编写的,它们是基于爱心曲线的参数方程得来,通过这些计算,我们就得到了爱心曲线上的一系列坐标点,为后续绘制爱心奠定了基础。

2. 创建图形与基本设置

fig, ax = plt.subplots(figsize=(8, 8))
ax.set_facecolor('black')
ax.set_xlim(-20, 20)
ax.set_ylim(-20, 20)
ax.set_aspect('equal')
ax.axis('off')

使用matplotlib库的subplots函数创建了一个大小为(8, 8)的图形窗口和对应的坐标轴对象ax。将坐标轴的背景颜色设置为黑色,这样可以让爱心更加突出。通过set_xlimset_ylim函数限定了坐标轴的显示范围,set_aspect('equal')确保爱心在显示时不会变形,保持其原本的形状,最后axis('off')隐藏坐标轴,让整个画面更加简洁美观。

3. 绘制爱心轮廓与填充

line, = ax.plot([], [], color='hotpink', lw=2)
fill = ax.fill([], [], color='red', alpha=0.8)[0]

这里创建了两个图形对象,line用于绘制爱心的轮廓,初始时它没有数据,颜色设置为hotpink(桃红色),线条宽度为2;fill用于填充爱心内部,颜色为红色,透明度设置为0.8,让爱心看起来更加柔和。

4. 添加星星装饰

num_stars = 100
stars_x = [random.uniform(-20, 20) for _ in range(num_stars)]
stars_y = [random.uniform(-20, 20) for _ in range(num_stars)]
star_sizes = [random.uniform(1, 4) for _ in range(num_stars)]
stars = ax.scatter(stars_x, stars_y, s=star_sizes, c='white', alpha=0.8)

为了让画面更加梦幻,添加了100颗星星。通过列表推导式随机生成星星的xy坐标以及大小,然后使用scatter函数将星星绘制在图形上,白色的星星搭配0.8的透明度,仿佛夜空中闪烁的繁星,为爱心增添了浪漫的氛围。

5. 动画初始化与更新函数

def init():line.set_data([], [])fill.set_xy(np.empty((0, 2)))return line, fill, starsdef update(frame):scale = 1 + 0.05 * np.sin(frame * 0.1)scaled_x = x * scalescaled_y = y * scaleline.set_data(scaled_x, scaled_y)fill.set_xy(np.column_stack([scaled_x, scaled_y]))alphas = [0.2 + 0.8 * abs(np.sin(frame * 0.05 + i * 0.1)) for i in range(num_stars)]stars.set_alpha(alphas)return line, fill, stars

init函数是动画的初始化函数,在动画开始前调用,它将爱心的轮廓和填充数据清空,返回相关图形对象,为动画做好准备。

update函数则是动画的核心更新函数,每帧动画都会调用这个函数。在这里,通过scale = 1 + 0.05 * np.sin(frame * 0.1)利用正弦函数计算出一个缩放因子,根据这个因子对爱心的坐标进行缩放,实现爱心跳动的效果。同时,为星星设置了闪烁效果,通过改变星星的透明度,让它们在夜空中一闪一闪,增加画面的生动性。

6. 创建动画与显示

ani = FuncAnimation(fig, update, frames=360, init_func=init, blit=True, interval=50)
plt.title("❤ Magical 2D Heart ❤", fontsize=24, color='magenta', pad=20)
mng = plt.get_current_fig_manager()
try:mng.window.state('zoomed')
except:try:mng.resize(*mng.window.maxsize())except:pass
plt.tight_layout()
plt.show()

使用FuncAnimation函数创建动画对象ani,指定了要更新的图形fig、更新函数update、动画帧数360、初始化函数init等参数,blit=True表示只更新变化的部分,提高动画效率,interval=50设置每帧动画之间的间隔为50毫秒。

添加标题让画面更具主题性,尝试将窗口设置为全屏显示(根据不同操作系统有不同的实现方式),最后使用plt.show()展示动画。如果需要保存动画为GIF格式,还可以使用ani.save('magical_heart.gif', writer='pillow', fps=20)这行代码(默认是注释掉的,需要时取消注释即可)。

总结

通过以上代码,我们利用Python的numpymatplotlib库,结合数学公式和动画原理,成功绘制出了一个跳动的梦幻爱心。从爱心曲线的构建,到图形的绘制与装饰,再到动画效果的实现,每一步都充满了编程的乐趣与创意。希望大家通过这个示例,能够感受到代码的魅力,也能尝试发挥自己的想象力,用代码创造出更多有趣、浪漫的作品! 如果你在运行过程中有任何问题,或者有新的创意想法,欢迎在评论区交流讨论。

http://www.dtcms.com/a/568767.html

相关文章:

  • SQL语法基础教程
  • 算法25.0
  • 无穿戴动捕技术:解锁动作捕捉新维度,拓展多元应用边界
  • 高速PCB设计指南(5)
  • 栈与队列---算法题
  • 外包加工网站开发一个网页具体流程
  • 泰安肥城做网站的公司平台推广活动策划方案
  • 衡石科技跨平台数据网关技术解析:实现多源异构数据整合的新范式
  • 计算机网络实验04:IP与ICMP数据报分析实验
  • 基于python的天气预报系统设计和可视化数据分析源码+报告
  • lerobot so-arm101复现步骤
  • 司马阅与数之境科技达成生态战略合作,释放1+1>2的产业赋能价值
  • IE跳转Chrome浏览器及静默打包
  • Chrome恢复关闭网页的快捷键
  • python报修网站开发源码建设网站遇到的问题
  • 深入解析 Qt QListWidget 控件:功能、实现与最佳实践
  • Qt在线安装问题
  • Qt Quick ApplicationQt Quick Application (compat)
  • 快速搭建分布式链路追踪系统:SkyWalking全攻略
  • 45 C++智能指针的原理与模拟实现,内存泄漏与RAII
  • 时序数据库系列(二):InfluxDB安装配置从零搭建
  • Rust实战开发之图形界面开发入门(egui crate)
  • 如何在centos 中运行arm64程序
  • 工业时序数据库TDengine 架构、性能与实战全解析
  • 朗迪锋@2025人因工程与智能系统交互国际会议
  • django初识与安装
  • 哪个网站做译员好设计页面跳转
  • 嘉兴网站制作费用手机html5网站开发
  • <P2016 战略游戏>
  • OpenCV环境配置(QT 6.6.1 MSVC2019 64bit + OpenCV – 4.12.0)