由于服务器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),我们用mesa替换了opengl32.dll
system32(GL版本3.0 mesa 10.2.8)(VTK抛出错误GL版本2.1,gpu_shader4
扩展名不受支持...)
答案 0 :(得分:3)
以下是我的问题的答案,这是使用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要快得多。