[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);
我玩了这个addon,但试图找到一个默认函数。我该怎么做3D极坐标图?
我正在努力帮助这个人改变不同的积分here。
答案 0 :(得分:5)
您的代码中存在几个问题:
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
,假设其大小与{{1}相同},为表面着色。
换句话说,您的Z
行只会绘制矩阵surf(x,y)
,并使用x
作为色彩图对其进行着色。
以上是错误修正并正确绘制的代码:
y