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