[r,t] = meshgrid(linspace(0,2*pi,361),linspace(0,pi,361));
[x,y]=pol2cart(sin(t)*cos(r),sin(t)*sin(r));
%[x,y]=pol2cart(r,t);
surf(x,y);
我玩过这个插件,但试图为此找到一个默认功能。如何制作 3D 极坐标图?
我正试图帮助这个人在这里可视化不同的积分。
您的代码中有几个问题:
sin(theta)*cos(phi)
和sin(theta)*sin(phi)
位将球坐标转换为笛卡尔坐标。你为什么要调用pol2cart
这个(此外,我们不是在极坐标中工作!)?z
您的情节中没有第三维(即)。对于统一半径,r
在球面域中可以省略,它完全由theta
和定义phi
,但在笛卡尔域中,您拥有所有三个x
和。的公式是(对于单位半径)。y
z
z
z = cos(theta)
您没有阅读 的文档surf
,其中说:
surf(Z,C)
绘制 的高度Z
,这是一个在几何矩形网格上定义的单值函数,并使用矩阵C
(假定与 大小相同Z
)为表面着色.
换句话说,您的surf(x,y)
线仅绘制矩阵x
并将其y
用作颜色图。
这是上面的代码,错误已修复并正确绘制:
[f,t] = meshgrid(linspace(0,2*pi,361),linspace(0,pi,361));
x = sin(t)*cos(f);
y = sin(t)*sin(f);
z = cos(t);
surf(x,y,z)