其他三維圖形
%繪制魔方陣的三維條形圖
subplot(2,2,1);
bar3(magic(4));
%以三維桿圖形式繪制曲線y=2sin(x)
subplot(2,2,2);
y=2*sin(0:pi/10:2*pi);
stem3(y);
%已知x=[2347,1827,2043,3025],繪制餅圖
subplot(2,2,3);
pie3([2347,1827,2043,3025]);
%用隨機的頂點坐標值畫出2個黃色三角形
subplot(2,2,4);
fill3(rand(3,2),rand(3,2),rand(3,2), 'y' );
%fill3函數等效於二維函數fill,可在三維空間內繪制出_填充多邊形_
%格式:fill3(x,y,z,c)
應用示例:
例一:統計灰度圖片的“灰度頻率直方圖”和“累計直方圖”
A = imread('pout.tif') ; %讀取一個內置圖片
%%內置圖片放在……MATLAB\R2010*\toolbox\images\imdata
A = A(:)';
count0=zeros(1,256); %設置矩陣大小
for x=1:length(A),count0(A(x)+1)=count0(A(x)+1)+1;end %各灰度級像素個數
P=count0/length(A); %頻率
stem(P,'Marker','none'); axis tight; %作圖顯示 頻率直方圖
Hp=P;
for i=2:256,Hp(i)=P(i)+Hp(i-1);end %累計直方圖
stem(Hp,'Marker','none'); axis tight; %作圖顯示

例二:繪制填充空間五角星
%%%方法一
t=1:2:11;
x = sin(0.4*t*pi); %五角星嘛! 六角星可以除以6
y = cos(0.4*t*pi);
z=0.5*x+0.3*y; %放置到三維空間中,這是該五角星所在的三維平面函數
fill3(x,y,z,'r')
xlabel('x');ylabel('y');zlabel('z');
haxes = gca; axis square;box on;
set(haxes,'xticklabel','','yticklabel','','zticklabel','') %移除原圖坐標軸軸的標注
%注意fill是順時針方向的,所以五角星閉合后,中間的五邊形並沒有填充%%地圖多邊形矢量化你懂得

hold on; %填充五邊形
t=1:2:11;
x=cos(0.4*pi)/cos(0.2*pi)*sin(0.2*t*pi);
y=cos(0.4*pi)/cos(0.2*pi)*cos(0.2*t*pi);
z=0.5*x+0.3*y;
fill3(x,y,z,'r','EdgeColor','r'); %將五邊形的邊界顏色設置為紅色
%%%顯示五角星所在的邊界 一個圓圈
t=1:0.1:11;
x = cos(0.4*t*pi);
y = sin(0.4*t*pi);
z=0.5*x+0.3*y;
plot3(x,y,z);hold off;
%%%方法二
i=1;
for ag=0.2*pi:0.2*pi:2.2*pi
if mod(i,2)==1 %i是奇數,長邊,按照長邊的計算公式
x(i) = sin(ag); %五角星嘛! 六角星可以除以6
y(i) = cos(ag);
else %i是偶數,短邊,按照短邊的計算公式
x(i)=cos(0.4*pi)/cos(0.2*pi)*sin(ag);
y(i)=cos(0.4*pi)/cos(0.2*pi)*cos(ag);
end
i=i+1;
end;clear i ag;
z=0.5*x+0.3*y;
fill3(x,y,z,'r','EdgeColor','r');
xlabel('x');ylabel('y');zlabel('z');
haxes = gca; axis square;box on;
set(haxes,'xticklabel','','yticklabel','','zticklabel','')
