代码之家  ›  专栏  ›  技术社区  ›  Shawn Chin

用于笛卡尔空间中粒子可视化/动画化的python框架

  •  4
  • Shawn Chin  · 技术社区  · 14 年前

    我有代表多个时间步骤的粒子位置的数据,需要创建一个显示这些粒子运动的动画。

    我正在考虑使用Pyglet来推广自己的产品,但是我没有使用Pyglet或OpenGL的经验,我需要在接下来的几个小时内安装和运行一些东西。 是否有任何框架或工具包(理想情况下是基于Python)可以实现这种开箱即用的功能,或者至少有一些功能使快速绘制sprites/3d对象并在多个时间步骤中对其进行动画制作变得容易?

    对于第一阶段(紧急),一个简单的二维动画就足够了。但是,我希望可以进一步扩展它,以支持3D和用户交互(更改视图、动画控件、将动画导出到文件等)。

    更新

    感谢迄今为止的回应。我同意“在接下来的几个小时内”听起来像是一个大问题(因此我寻找一个可以加快速度的框架)。

    只是澄清一下,我不想渲染复杂的场景。如下所示:

    sample output http://oi56.tinypic.com/t645yw.jpg

    此特定图像是类似数据集的单个帧的屏幕截图。

    5 回复  |  直到 11 年前
        1
  •  3
  •   Aaron Digulla    11 年前

    Pyprocessing 是巨蟒治疗的 processing Java动画库。处理开发环境包括一些实现粒子系统的非常好的例子。

        2
  •  2
  •   Ian Mackinnon    14 年前

    Houdini by Side Effects Software 是一个工业级3D动画应用程序,具有优秀的Python绑定、Python表达式和一般支持。导入数据很简单,胡迪尼甚至在应用程序中有一个用于修补的python shell。

    导入后,您可以充分利用各种动画和可视化工具以及优秀的捆绑渲染器“曼陀罗”。

    有免费的” apprentice “具有很少限制的版本,以及各种级别的付费许可证。

        3
  •  2
  •   dtlussier    14 年前

    在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公司 mlab mplot3D . 根据我的经验 实验室 更难走了。如果您需要更多有关使用的帮助,请对此文章发表评论 Matplotlib公司 .

    http://www.scipy.org/Cookbook/Matplotlib/mplot3D http://code.enthought.com/projects/mayavi/docs/development/html/mayavi/mlab.html

        4
  •  1
  •   duffymo    14 年前

    看看 PyODE . 这对物理部分有帮助。您可以自己使用图形。

        5
  •  1
  •   bgporter    14 年前

    我们用过 pyOGRE ,这是绑定到Ogre库的Python,它将自己描述为:

    什么是食人魔?Ogre(面向对象 图形渲染引擎)是 面向场景、灵活的3D引擎 用C++编写的 更简单更直观 开发人员生产应用程序 利用硬件加速3D 绘图。类库摘要 使用的所有详细信息 底层系统库 Direct3D和OpenGL并提供 基于世界对象和 其他直观类。