【问题标题】:Plotting 3d Implicit equation with vispy用 vispy 绘制 3d 隐式方程
【发布时间】:2016-05-01 18:20:32
【问题描述】:

由于服务器 GPU 的限制,我们不能使用 K 来渲染 VPS 上的隐式方程,这是我们用来从 mayavi 中的方程生成 3D 模型的示例代码:

import numpy as np
from mayavi import mlab

mlab.clf()
x, y, z = np.mgrid[-2.5:2.5:.125, -2.5:2.5:.125, -2.5:2.5:.125]
a,b,c = 0.0,-5.0,11.8
values = x**4+y**4+z**4+a*(x**2+y**2+z**2)**2+b*(x**2+y**2+z**2)+c
mlab.contour3d(x, y, z, values, contours=[0], color=(.1,1,.5))

mlab.savefig("shape.obj")

这会以 3D 形式输出此形状

我的问题是,我怎样才能用vispy 或其他python 模块(如果存在)完成同样的事情

我们在VPS 上没有显卡,我们在 windows server 2008 上使用 python 3.5.1 (anaconda)(无法使用 linux),我们在 system32(GL 版本)中用 mesa 替换了opengl32.dll 3.0 mesa 10.2.8)(VTK 抛出错误 GL Version 2.1 with the gpu_shader4 extension is not supported...)

【问题讨论】:

    标签: python 3d mayavi vispy


    【解决方案1】:

    这是我问题的答案,这是用 vispy 完成的:

    import numpy as np
    
    from vispy import io
    from vispy.geometry.isosurface import isosurface
    
    x, y, z = np.mgrid[-2.5:2.5:.125, -2.5:2.5:.125, -2.5:2.5:.125]
    a,b,c = 0.0,-5.0,11.8
    data = x**4+y**4+z**4+a*(x**2+y**2+z**2)**2+b*(x**2+y**2+z**2)+c
    vertices, faces = isosurface(data, level=1/10000000.)
    io.write_mesh('shape.obj', vertices, faces , None, None, overwrite=True)
    

    导出与上述形状完全相同的波前 obj 文件。这比使用 mayavi 快得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      • 2022-11-26
      • 2011-01-29
      相关资源
      最近更新 更多