mayavi:即使两个表面不相交,两个表面也会相互阻塞

时间:2019-06-21 06:53:17

标签: python mayavi.mlab

我正在尝试绘制两个表面,这些表面恰好在两个点上接触,但彼此分开得很好。根据视角的不同,此效果要么很好(图1),要么使顶部表面s2(等离子,红色)变得混乱,而使下部表面s1受阻(图2)。我想这是由于绘制表面的顺序而引起的,所以mayavi只是将一个放在前面,即使数学上应该放在后面。我该如何解决这个问题?请注意,我希望两个表面都有不同的颜色图,因为它们表示不同的事物。非常感谢!

figure 1, correct plot 图1,正确的情节 figure 2, wrong plot 图2,错误的情节

这里是生成绘图的代码。在交互式窗口中选择了视角,不确定如何获取数值。

import numpy as np
import mayavi.mlab

x,y = np.mgrid[-np.pi:np.pi:0.01, -np.pi:np.pi:0.01]

def surface1(x,y):
    return -np.sqrt((np.cos(x) + np.cos(y) - 1)**2 + np.sin(x)**2)

def surface2(x,y):
    return np.sqrt((np.cos(x) + np.cos(y) - 1)**2 + np.sin(x)**2)

s1 = mayavi.mlab.surf(x,y,surface1, colormap='viridis')
s2 = mayavi.mlab.surf(x,y,surface2, colormap='plasma')

mayavi.mlab.show()

0 个答案:

没有答案