我试着画两个表面,两个表面正好接触两个点,但在其他方面很好地分开。根据观察角度的不同,这要么呈现得很好(图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()
编辑:
最终发现问题:需要指定正确的后端进行渲染。使用ipython3 --gui=qt
解决了这个问题。因此,问题只在使用默认后端时出现(以两者中的为准)。我希望这将被记录得更清楚的地方,会节省我很多工作。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐