窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 数组 | 备 注 |
小船X | 整数型 | |
云朵X | 整数型 | |
海浪位移 | 整数型 | |
帧数 | 整数型 | |
宽度 = 800
高度 = 600
背景颜色 =
#白色 时钟1.时钟周期 = 100
小船X = 700
云朵X = 100
海浪位移 = 0
画板1.
清除 (, , ,
) 画板1.刷子颜色 =
#天蓝 画板1.
填充矩形 (0, 0, 800, 300
) 画板1.刷子颜色 =
#黄色 画板1.
画椭圆 (650, 50, 700, 100
) 画板1.刷子颜色 =
#白色 画板1.
画椭圆 (云朵X, 80, 云朵X + 100, 130
)画板1.
画椭圆 (云朵X + 30, 70, 云朵X + 130, 120
)云朵X = 云朵X - 5
如果真 (云朵X < -150
)
云朵X = 800

画板1.刷子颜色 =
#深蓝 画板1.
填充矩形 (0, 300, 800, 600
) 画板1.画笔颜色 =
#淡蓝
变量循环首 (0, 800, 50, i
)
画板1.
画曲线 (i - 海浪位移, 300 +
取随机数 (0, 5
), i + 50 - 海浪位移, 300 +
取随机数 (5, 10
))

变量循环尾 ()海浪位移 = 海浪位移 + 3
如果真 (海浪位移 > 50
)
海浪位移 = 0

画板1.刷子颜色 =
#棕色 画板1.
画多边形 ({{小船X, 400
},
{小船X + 50, 400
},
{小船X + 40, 380
}}
)小船X = 小船X - 8
如果真 (小船X < -50
)
小船X = 800

帧数 = 帧数 + 1
如果真 (帧数 ≥ 60
) 
时钟1.时钟周期 = 0

[PHP] 纯文本查看 复制代码
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 初始化画布
fig, ax = plt.subplots(figsize=(8, 5))
ax.set_xlim(0, 10)
ax.set_ylim(0, 6)
ax.axis('off')
# 初始化元素
sky = ax.fill_between([0, 10], [6, 6], [6, 6], color='skyblue') # 天空
sun = plt.Circle((8, 5), 0.6, color='gold', alpha=0.8) # 太阳
sea = ax.fill_between([], [], color='dodgerblue') # 海洋
wave_line, = ax.plot([], [], 'white', lw=2) # 海浪线
boat = plt.Polygon([[4,1.5], [5,1.5], [4.8,1.3]], color='saddlebrown') # 小船
cloud = plt.Circle((2, 5), 0.8, color='white', alpha=0.9) # 云朵
ax.add_patch(sun)
ax.add_patch(boat)
ax.add_patch(cloud)
# 动画参数
total_frames = 60 # 6秒*10帧/秒
wave_amplitude = 0.3
boat_speed = 0.08
cloud_speed = 0.05
def animate(frame):
# 海浪波动
x = np.linspace(0, 10, 100)
y_sea = 2 + wave_amplitude * np.sin(0.8*x + 0.1*frame)
sea[0].set_xy(np.column_stack([x, y_sea]))
wave_line.set_data(x, y_sea + 0.1)
# 小船移动
boat.set_xy([[4+boat_speed*frame,1.5],
[5+boat_speed*frame,1.5],
[4.8+boat_speed*frame,1.3]])
# 云朵飘动
cloud.center = (2 + cloud_speed*frame, 5 + 0.1*np.sin(0.1*frame))
# 阳光闪烁效果
sun.set_alpha(0.7 + 0.1*np.sin(0.3*frame))
return sea, wave_line, boat, cloud, sun
# 生成动画
ani = FuncAnimation(fig, animate, frames=total_frames, blit=True, interval=100)
ani.save('sea_scene.mp4', writer='ffmpeg', fps=10, dpi=100)
print("视频已生成:sea_scene.mp4")