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

《青花》歌曲,使用3D表现出意境

《青花》歌词 三月走过 柳絮散落 恋人们匆匆 我的爱情 闻风不动 翻阅昨日 仍有温度 蒙尘的心事 恍恍惚惚 已经隔世 遗憾无法说 惊觉心一缩 紧紧握着 青花信物 信守着承诺 离别总在 失意中度过 记忆油膏 反复涂抹 无法愈合的伤口 你的回头 划伤了沉默 那夜重逢 停止漂泊 你曾回来过 相濡相忘 都是疼痛 只因昨日 善良固执 委屈着彼此 打碎信物 取消来世 遗憾无法说 惊觉心一缩 紧紧握着 青花信物 信守着承诺 离别总在 失意中度过 记忆油膏 反复涂抹 无法愈合的伤口 你的回头 划伤了沉默 紧紧握着 青花信物 雕刻着寂寞 就好像我 无主的魂魄 纠缠过往 无端神伤 摔碎谁也带不走 你我一场 唤不醒的梦 紧紧握着 青花信物 信守着承诺 离别总在 失意中度过 记忆油膏 反复涂抹 无法愈合的伤口 你的回头 划伤了沉默 紧紧握着 青花信物 雕刻着寂寞 就好像我 无主的魂魄 纠缠过往 无端神伤 摔碎谁也带不走 你我一场 唤不醒的梦 。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.animation as animation# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# 创建图形和3D轴
fig = plt.figure(figsize=(12, 9))
ax = fig.add_subplot(111, projection='3d')# 设置简洁的背景色
fig.patch.set_facecolor('#f8f8ff')
ax.set_facecolor('#fafafa')# 设置标题
ax.set_title('《青花》意境', fontsize=18, color='#2f4f4f', pad=20)# 隐藏坐标轴
ax.set_axis_off()# 设置视角
ax.view_init(elev=25, azim=-70)# 创建简化的青花瓷瓶
def create_vase(u, v):r = 1.2 * np.sin(np.pi * v) + 0.1 * np.sin(3 * u)x = r * np.cos(u)y = r * np.sin(u)z = 2.5 * (v - 0.5)return x, y, z# 生成花瓶的网格
u = np.linspace(0, 2 * np.pi, 40)
v = np.linspace(0, 1, 25)
U, V = np.meshgrid(u, v)
X, Y, Z = create_vase(U, V)# 绘制青花瓷瓶 - 使用更简洁的样式
vase = ax.plot_surface(X, Y, Z, color='#f0f8ff', alpha=0.95,edgecolor='#4682b4', linewidth=0.8, shade=True)# 添加简单的青花图案
pattern_u = np.linspace(0, 2 * np.pi, 8)
pattern_v = np.linspace(0.3, 0.7, 3)
for pu in pattern_u:for pv in pattern_v:px, py, pz = create_vase(pu, pv)# 绘制简单的蓝色圆点作为花纹ax.scatter([px], [py], [pz], color='#4682b4', s=30, alpha=0.8)# 创建少量柳絮(简化版)
n_pollen = 30
pollen_x = np.random.uniform(-3, 3, n_pollen)
pollen_y = np.random.uniform(-3, 3, n_pollen)
pollen_z = np.random.uniform(-1, 4, n_pollen)
pollen_sizes = np.random.uniform(20, 40, n_pollen)pollen = ax.scatter(pollen_x, pollen_y, pollen_z,c='#dcdcdc', s=pollen_sizes, alpha=0.7)# 创建少量记忆光点
n_lights = 15
light_x = np.random.uniform(-2, 2, n_lights)
light_y = np.random.uniform(-2, 2, n_lights)
light_z = np.random.uniform(-1, 3, n_lights)
light_sizes = np.random.uniform(30, 60, n_lights)
light_colors = ['#ffd700', '#ffa500', '#ff8c00']light_colors_array = np.random.choice(light_colors, n_lights)
lights = ax.scatter(light_x, light_y, light_z,c=light_colors_array, s=light_sizes, alpha=0.6)# 添加简洁的裂纹效果(象征伤口)
crack_x = np.array([2.8, 3.0, 3.2, 3.4])
crack_z = np.array([0.0, -0.2, 0.1, -0.1])
crack_y = 0.1 * np.sin(5 * crack_x)
ax.plot(crack_x, crack_y, crack_z, color='#8b0000', linewidth=2, alpha=0.7)# 只显示关键歌词,放置在不干扰主体的位置
key_lyrics = [("三月走过 柳絮散落", (-4, -3.5, 3.5)),("紧紧握着 青花信物", (-4, -3.5, 2.5)),("记忆反复 无法愈合", (-4, -3.5, 1.5)),("你我一场 唤不醒的梦", (-4, -3.5, 0.5))
]for text, pos in key_lyrics:ax.text(pos[0], pos[1], pos[2], text, fontsize=11, color='#2f4f4f',ha='left', va='center', fontfamily='serif', alpha=0.8)# 设置坐标轴范围
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
ax.set_zlim(-2, 4)# 简化动画效果
def animate(frame):# 柳絮缓慢飘动pollen_z_new = pollen_z + 0.03 * np.sin(frame * 0.08 + np.arange(n_pollen) * 0.2)mask = pollen_z_new > 4pollen_z_new[mask] = -1pollen._offsets3d = (pollen_x, pollen_y, pollen_z_new)# 记忆光点缓慢闪烁scale = 0.8 + 0.4 * np.sin(frame * 0.1 + np.arange(n_lights) * 0.3)current_sizes = light_sizes * scalelights.set_sizes(current_sizes)# 缓慢旋转视角ax.view_init(elev=25, azim=-70 + frame * 0.3)return pollen, lights# 创建动画
ani = animation.FuncAnimation(fig, animate, frames=360, interval=50, blit=False)plt.tight_layout()
plt.show()
http://www.dtcms.com/a/395169.html

相关文章:

  • 【Linux篇】- Ext系列文件系统
  • C++符号表
  • Pythoner 的Flask项目实践-带折叠菜单的响应式多页面应用签到墙(源码)
  • 异常:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
  • Java-131 深入浅出 MySQL MyCat 深入解析 schema.xml 配置详解:逻辑库、逻辑表、数据节点全攻略
  • Vmware CentOS Docker Daemon配置代理
  • 【JAVA】java多态
  • 【AI分析进行时】大模型显存需求估算与国内开源模型实践指南
  • C++基础:(一)C++入门知识介绍(上)
  • Python项目的多语言翻译babel
  • python flask框架详解
  • 基于STM32单片机的家庭医护血氧体温血压吃药监测APP系统
  • 整合亮数据Bright Data与Dify构建自动化分析系统
  • Browser-Use+cpolar:企业网页操作自动化的无界解决方案
  • 深入理解 Elasticsearch:核心原理、性能优化与高频面试题解析
  • 【C++】Lambda表达式参数问题
  • 数学金融方向要额外学什么课?这个专业对编程和建模能力要求高吗?
  • 第二部分:VTK核心类详解(第54章 vtkVariantArray变体数组类)
  • 【2025最新】ArcGIS for JS点聚合功能实现
  • Leecode hot100 - 114. 二叉树展开为链表 基础方法到提高方法
  • 把 iOS 混淆纳入自动化测试与 CICD 从构建、回归到灰度的工程化实战
  • 初识Redis:解锁高性能缓存的魔法钥匙
  • 基于传递矩阵法计算多层结构声表面波声速
  • 中间件和分类
  • MV2DFusion:利用模态特定目标语义进行多模态三维检测
  • BeanFactory接口作用(二)
  • 速通ACM省铜第十二天 赋源码(Kirei Attacks the Estate)
  • 海外仓一件代发怎样优化拣货流程?用什么WMS能减少错拣漏拣?
  • SQL Server 定时作业
  • 大模型笔试选择题:题组1