丁嘉程
摘 要:本文總結(jié)了MATLAB在三維曲面的繪制中的一些實(shí)例。在規(guī)則三維曲面的繪制上,給出了莫比烏斯帶的繪制。在不規(guī)則曲面繪制上,給出了離散點(diǎn)繪制光滑曲面的實(shí)例,通過設(shè)計(jì)飛機(jī)座椅靠背曲線的問題給出了在現(xiàn)實(shí)生活中三維圖像繪制的應(yīng)用。
關(guān)鍵詞:MATLAB語言;三維曲面;圖像處理
MATLAB中規(guī)則曲面繪制可使用surf和mesh命令,如莫比烏斯帶繪制代碼:k=50;u=0:pi/k:2*pi;v=-1:0.2:1;n1=length(u);n2=length(v);for i=1:n1 for j=1:n2 z(i,j)=v(j)*sin(u(i)/2)/2;y(i,j)=(1+v(j)*cos(u(i)/2)/2)*sin(u(i));x(i,j)=(1+v(j)*cos(u(i)/2)/2)*cos(u(i));end;end;surf(x,y,z);
不規(guī)則曲面繪制本質(zhì)上是依據(jù)一組離散的數(shù)據(jù)點(diǎn)來構(gòu)造光滑的曲面。現(xiàn)給出15個離散點(diǎn),要求利用散亂點(diǎn)插值函數(shù)griddata擬合得一光滑曲面。代碼如下:x=[6 11.3 23 -3 12 11.5 19 16.3 21 1 5.4 12 -4 3 18];y=[1 1.1 0.9 2.8 5 -3 -4 5 6 -6.3 5.9 7 5.2 6 9.9];z=[-0.4 0.5 2 2.6 0 0.3 0.4 0.6 1 1.16 0.79 0 0.5 0 0.18];[X,Y]=meshgrid(-4:0.5:22,-11:0.5:10);Z=griddata(x,y,z,X,Y);mesh(X,Y,Z);hold on;plot3(x,y,z,′*′);
不規(guī)則曲面繪制優(yōu)化如下:scatter3(x,y,z);x=x′;y=y′;z=z′;hold on;Z=[ones(length (x),1),x,y,x.^2,x.*y,y.^2,x.^3,x.^2.*y,x.*y.^2,y.^3];A=Z\\z;X=min(x)-1:0.2:max(x)+1;Y=min(y)-1:(max(y)-min(y)+2)/(length(X)+1):max(y)+1;[x,y]=meshgrid(X,Y);z=A(1)+A(2)*x+A(3)*y+A(4)*x.^2+A(5)*x.*y+A(6)*y.^2+A(7)*x.^3+A(8)*x.^2.*y+A(9)*x.*y.^2+A(10)*y.^3;mesh(x,y,z);
還可以利用MATLAB將較為龐雜的點(diǎn)集轉(zhuǎn)化為圖形。2015年第四屆“認(rèn)證杯”數(shù)模A題第一問:如何設(shè)計(jì)座椅靠背曲線,能使座位更舒適?可根據(jù)人體脊柱圖提取脊柱邊界點(diǎn)集[X,Y],并另存為ZZ與XX.背面板繪制代碼如下:x=1:1:500;[X,Y]=meshgrid(x);y=YY;r=ones(size(y));x=r′*XX*550/435;z=r′*ZZ*550/435;mesh(x,y,z);xlabel(′x-axis′),ylabel(′y-axis′),zlabel(′z-axis′);title(′mesh′);
估算座椅靠背長550mm,由工作座椅一般人類工效學(xué)要求,腰靠長推薦值330mm,腰靠圓弧半徑R推薦值550mm,對曲面進(jìn)行優(yōu)化。優(yōu)化代碼如下:x=1:1:435;y=1:1:435;[X,Y]=meshgrid(x);R=550;y0=330/2;m=sqrt(R^2-y0^2);x1=XX*550/434;x0=x1-m;theta=(-asin(165/550)):0.001404:asin(165/550);for i=1:435 x2=R*cos(theta)+x0 (i);y2=R*sin(theta)+y0;x(i,:)=x2′;y(i,:)=y2′;r=ones(size(x1));z(:,i)=ZZ*550/434;end;mesh(x,y,z);xlabel(′x-axis′),ylabel(′y-axis′),zlabel(′z-axis′);title(′mesh′)。
參考文獻(xiàn):
[1]霍振香,王福昌,張麗娟.在《高等數(shù)學(xué)》教學(xué)中使用MATLAB制作曲面和動畫的幾個實(shí)例[J].教育教學(xué)論壇,2013,(32):175-176.
[2]李步升.MATLAB在三維圖形構(gòu)造中的應(yīng)用[J].電腦開發(fā)與應(yīng)用,2009,(9):28-29,32.endprint