用 vispy 绘制 3d 隐式方程
Plotting 3d Implicit equation with vispy
由于服务器 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 服务器 2008 上使用 python 3.5.1 (anaconda)(无法使用 linux) 并且我们在 system32 中用 mesa 替换了 opengl32.dll
(GL version 3.0 mesa 10.2.8)(VTK 抛出错误 GL Version 2.1 with the gpu_shader4
extension is not supported...)
这是我的问题的答案,这是用 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 快得多。
由于服务器 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 服务器 2008 上使用 python 3.5.1 (anaconda)(无法使用 linux) 并且我们在 system32 中用 mesa 替换了 opengl32.dll
(GL version 3.0 mesa 10.2.8)(VTK 抛出错误 GL Version 2.1 with the gpu_shader4
extension is not supported...)
这是我的问题的答案,这是用 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 快得多。