You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Matplotlib动画绘图中小球初始位置固定、每次运行速度随机?

固定初始位置+随机速度的实现方案

完全可以轻松实现,只需要给初始位置的随机生成过程固定随机种子,同时让速度的随机生成保持随机状态即可,修改幅度极小。

修改后的代码

import numpy as np
import matplotlib.pyplot as plt 
plt.figure(1) #elegimos figura en la que plotearemos
plt.clf()
plt.axis([-10, 10, -10, 10]) 

n = 10 

# 固定随机种子,确保每次运行初始位置完全一致
np.random.seed(42)
pos = (20 * np.random.sample(n*2) - 10).reshape(n, 2)
# 可选:重置随机状态,避免种子影响后续随机生成(不写也不影响速度的随机性)
np.random.seed(None)

vel = (0.5 * np.random.normal(size=n*2)).reshape(n, 2)
sizes = 100 * np.random.sample(n) + 100

colors = np.random.sample([n, 4])
circles = plt.scatter(pos[:,0], pos[:,1], marker="o", s=sizes, c=colors)

for i in range(30):
    pos = pos + vel#se actualiza posiscion de pelotas a traves de velocidad
    bounce = abs(pos) > 10      
    vel[bounce] = -vel[bounce] 
    circles.set_offsets(pos)    
    plt.pause(0.05) 

修改说明

  • 在生成初始位置pos前添加np.random.seed(42):固定随机种子后,np.random.sample的输出会完全一致,确保每次运行小球初始位置不变。你可以把42换成任意整数,只要固定即可。
  • 速度vel的生成保持原有逻辑:不固定种子,因此每次运行都会生成不同的随机速度值,满足你的需求。
  • 可选的np.random.seed(None):用来重置随机状态,避免固定种子影响后续的随机操作(比如sizes和colors的生成),如果不需要保持这些元素的随机性,也可以省略这一步。

内容的提问来源于stack exchange,提问作者Fcatalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:42:50