由于在 mayavi 中有很多关于轴网格的问题(this、this和this),即如何使用 mayavi 获取 matplotlib 类型的网格,即使 Mayavi 更新也没有令人满意的答案。
所以关于上述问题,有一个想法是我们可以在 Mayavi 中添加地平面作为对象,然后我们可以在地平面上绘制/显示所需的对象。下面是我绘制为地平面的对象
上面绘制地面的代码是
x, y = np.mgrid[-10:10:200j, -10:10:200j]
z = np.sin(x * y) / (x * y)
mlab.figure(bgcolor=(1, 1, 1))
mlab.surf(z, colormap='cool')
mlab.show()
假设我们有一个对象,我们想在地平面上绘制/显示它。下面是对象(作为示例)
上述对象的代码是
mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
u, v = mgrid[- 0.035:pi:0.01, - 0.035:pi:0.01]
X = 2 / 3. * (cos(u) * cos(2 * v) + sqrt(2) * sin(u) * cos(v)) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
Y = 2 / 3. * (cos(u) * sin(2 * v) - sqrt(2) * sin(u) * sin(v)) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
Z = -sqrt(2) * cos(u) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
S = sin(u)
mlab.mesh(X, Y, Z, scalars=S, colormap='YlGnBu', )
mlab.view(.0, - 5.0, 4)
mlab.show()
此代码可在此处获得
那么我们如何在给定的地平面上绘制给定的对象,如下图所示?我在 Photoshop 中编辑此图像以获得更好的视图。
寻找一些好的建议。