Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用vispy绘制三维隐式方程_Python_3d_Mayavi_Vispy - Fatal编程技术网

Python 用vispy绘制三维隐式方程

Python 用vispy绘制三维隐式方程,python,3d,mayavi,vispy,Python,3d,Mayavi,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)**

由于服务器
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中用mesa替换了
opengl32.dll
(GL版本3.0 mesa 10.2.8)(VTK抛出错误GL版本2.1和
gpu着色器4
扩展不受支持…)以下是我问题的答案,这是如何使用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快得多