适合简单3D科学可视化的轻量级Python库有哪些?
我正在用Python写一个程序,想要试验一个学术想法。看看这个程序生成的结果图:
图中叶子的中间部分有一些粗粗的骨架线条,这些线条是我想要展示的内容。每一段骨架线都有一个对应的值。在上面的图像中(是用pycairo
画的),不同的灰色阴影用来表示这些值,颜色越浅表示值越高,而黑色线条则表示这些线的值是0。问题是,用颜色来展示这些值对人眼来说不太直观,能用3D的方式来展示会更好,就像下面这个(摘自一篇论文):
左边的图是右边图的3D展示,线条对应的值被表现为3D中连续墙的高度。
那么,哪个库最适合做这个呢?我不想花太多时间在这上面,所以希望能找到一个轻量级的库。
2 个回答
3
你有没有看看 mayavi 呢?我不知道它是否符合你说的“轻量级”的标准,但它似乎很受欢迎,而且用起来也相对简单,功能却很强大。
5
如果你想要一个轻量级的选择,可以直接使用 PyOpenGL 来在 Python 中调用 OpenGL。这可能是最简单的选择。
如果你需要很多功能,我推荐使用 VTK。这是一个非常强大的可视化工具包,里面有 Python 的接口(已经包含在内)。还有其他一些基于这个工具包的项目(比如 Mayavi 和 Paraview),不过单独使用 VTK 的接口通常更容易上手。这可能是我最推荐的选择,因为它们提供了一些很好的示例,你只需要创建一个 VtkPolyData 实例,然后把它放到渲染器里就行了。
不过,为了方便开发,你可能会想要一些能简化这个过程的工具,比如通过 Irrlicht 和 Pyrr 提供的轻量级渲染引擎的接口。这样生成图像会简单很多。