python画图代码一颗星星从天上飞下
时间: 2024-10-04 11:04:51 浏览: 28
Python中可以使用matplotlib库来创建这种视觉效果。下面是一个简单的例子,展示如何绘制一颗星星从上往下移动的动画。我们将使用`numpy`生成坐标数据,`matplotlib.pyplot`负责绘图,并利用`FuncAnimation`来实现动态更新:
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 创建星体位置数组
def star_trajectory(t):
y = -9.8 * t**2 + initial_height # 水平速度恒定,垂直运动遵循自由落体公式
x = horizontal_speed * t # 垂直速度影响水平位置
return x, y
# 初始化参数
initial_height = 100 # 初始高度
horizontal_speed = 15 # 星体水平速度
frame_rate = 60 # 动画帧率
t_max = 2 # 运动时间
# 创建figure和axis
fig, ax = plt.subplots()
ax.set_xlim([0, horizontal_speed * t_max])
ax.set_ylim([-150, 0]) # 预留一些空间防止星体超出屏幕
# 绘制初始星星
star = plt.Circle((0, initial_height), radius=5, color='gold', fill=False)
ax.add_artist(star)
# 动画函数
def animate(i):
t = i / frame_rate # 计算当前帧对应的时间
x, y = star_trajectory(t)
star.center = (x, y) # 更新星体位置
# 创建并显示动画
ani = FuncAnimation(fig, animate, frames=np.arange(0, t_max*frame_rate, 1), interval=1000/frame_rate)
plt.show()
阅读全文