尝试在3D中绘制等高线图或彩色图

2024-09-28 22:03:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数(I),它定义了控制体积中的压力场。 我通过网格化3个向量(X,Y,Z)来创建这个控制体,并将I函数应用于三维网格中的所有点

我试图找到一种方法,用I函数返回的值对应的颜色来绘制每个点。我觉得这就像是3d中的彩色情节

我试着在z方向上为每个层做一个等高线图,然后把它叠加在一个3d图上

''

def ControlVolume(ress):
    x=np.linspace(-ress.X,ress.X,num=102);
    y=np.linspace(-ress.Y,ress.Y,num=102);
    z=np.linspace(-ress.Z,ress.Z,num=102);
    XV,YV,ZV=np.meshgrid(x,y,z)
    return XV,YV,ZV

def Isopotential(well,ress,x,y,z):
    I=(ress.mu/(4*np.pi*np.sqrt(ress.kx*ress.ky*ress.kz))*(well.q*
       ((x-ress.X)**2/ress.kx+(y-ress.Y)**2/ress.ky+(z-ress.Z)**2/ress.kz)
       **(-0.5)))
    return I

well1=well(10,10,10,5)
ress1=ress(20,20,20,10,10,1,0.3,0.2)
X,Y,Z=ControlVolume(ress1)
Ifield=Isopotential(well1,ress1,X,Y,Z)

''

在我的头脑中,它应该看起来像一个以同心球体传播的场


Tags: 函数returndefnpnumwellkxlinspace