我有表示多个时间步的粒子位置的数据,需要创建一个动画来显示这些粒子的移动。
我正在考虑使用pyglet自己滚动,但我没有使用pyglet或OpenGL的经验,我需要在接下来的几个小时内启动并运行。 是否存在任何框架或工具包(理想情况下基于Python),开箱即用,或者至少可以快速绘制精灵/ 3d对象并在多个时间步骤中为其设置动画?
对于第一阶段(紧急),简单的2D动画就足够了。但是,我希望可以选择进一步扩展它以支持3D和用户交互(更改视图,动画控制,将动画导出到文件等)。
感谢目前为止的回复。我同意“在接下来的几个小时内”听起来像一个大问题(因此我寻找一个可以加快速度的框架)。
只是为了澄清,我不打算渲染一个复杂的场景。如下所示:
sample output http://oi56.tinypic.com/t645yw.jpg
此特定图像是类似数据集的单个帧的屏幕截图。
答案 0 :(得分:3)
Pyprocessing是对processing Java动画库的Python处理。处理开发环境包括一些实现粒子系统的非常好的例子。
答案 1 :(得分:2)
Houdini by Side Effects Software是一个行业级的3D动画应用程序,具有出色的Python绑定,Python表达式和一般支持。导入数据很简单,Houdini甚至在应用程序中有一个Python shell用于修补。
导入后,您可以利用各种动画和可视化工具以及优秀的捆绑渲染器“Mantra”。
有一个免费的“apprentice”版本,限制很少,并且有各种级别的付费许可证。
答案 2 :(得分:2)
在2D中,为什么不用matplotlib
来模拟模拟帧的散点图。
例如
import numpy as np
import matplotlib.pyplot as plt
# Just some sample data but I'm assuming that you
# can get your data into vectors like this.
x = np.random.randn(100)
y = np.random.randn(100)
plt.figure()
plt.plot(x,y, '.')
plt.savefig('frame0000.png')
然后,您可以从相框中制作视频。
对于3D - 您可以尝试matplotlib
的{{1}}或mlab
。从我的经验mplot3D
来看,有点棘手。如果您在使用mlab
时需要更多帮助,请对此帖发表评论。
http://www.scipy.org/Cookbook/Matplotlib/mplot3D http://code.enthought.com/projects/mayavi/docs/development/html/mayavi/mlab.html
答案 3 :(得分:1)
看看PyODE。这对物理学部分有帮助。你可以自己使用图形。
答案 4 :(得分:1)
我们使用了pyOGRE,这是与OGRE库的Python绑定,它将自己描述为:
什么是OGRE? OGRE(面向对象 图形渲染引擎)是一个 面向场景,灵活的3D引擎 用C ++编写,旨在实现它 更容易,更直观 开发人员生产应用程序 利用硬件加速3D 图形。类库提取 使用的所有细节 底层系统库如 Direct3D和OpenGL并提供了一个 基于世界对象和界面的界面 其他直观的课程。