───────────────────────────────────────
作者cyivan (Ivan), 信区: AlgoDesign
标题有人知道怎样用matlab画柱坐标3维图形吗?
时间北大未名站 (2004年11月15日15:27:15 星期一), 转信
───────────────────────────────────────
已知值是角度(theta),径向长度(rho),高度(z)
───────────────────────────────────────
作者skydreamer (职业占星家), 信区: AlgoDesign
标题Re: 有人知道怎样用matlab画柱坐标3维图形吗?
时间北大未名站 (2004年11月16日15:30:13 星期二), 站内信件
───────────────────────────────────────
你是要画z=z(rho,theta)的图形吗?
可以试以下的方法:(先用rho,theta定义格点,然后求z值,再将(rho,theta)转化成
(x,y),用mesh函数画就可以了。柱坐标转化为直角坐标可以用pol2cart函数。
如果你是想画空间曲线,直接用plot3函数)
%drawpol.m
theta=0:pi/20:2*pi; %can be ajusted to show more points
rho=0:1:10; %can be ajusted
ntheta=length(theta);
nrho=length(rho);
X=zeros(ntheta,nrho);
Y=zeros(ntheta,nrho);
Z=zeros(ntheta,nrho);
for i=1:ntheta
for j=1:nrho
X(i,j)=rho(j)*cos(theta(i));
Y(i,j)=rho(j)*sin(theta(i));
% another choice: [X(i,j),Y(i,j)]=pol2cart(theta(i),rho(j));
Z(i,j)=2*rho(j)*cos(theta(i)); %can be modified to your function
end
end
mesh(X,Y,Z)
cyivan (Ivan) 在 ta 的帖子中提到:
已知值是角度(theta),径向长度(rho),高度(z)