matlab畫三維圖像


當我們學習surface命令時,已經看到了三維作圖的一些端倪。在matlab中我么可以調用mesh(x,y,z)函數來產生三維圖像。

首先,我們用z=cos(x)sin(y)在-2pi ≤x,y≤ 2pi內的圖像來看看:

[x,y] = meshgrid(-2*pi:0.1:2*pi);
z = cos(x).*sin(y);
mesh(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')

顯示圖像如下:

 

同樣用mesh命令產生z = ye-(x2+y2)的三維圖像:

[x,y] = meshgrid(-2:0.1:2);
z = y.*exp(-x.^2-y.^2);
mesh(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')

 

 下面繪制表面帶有漸變顏色的圖像,可以通過 surf 和 surfc 命令實現,只要簡單更改上面例子中的命令為:

surf(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')

則圖像如下所示,圖像表面的顏色與高度是相稱的:

若使用surfc則會在圖像中留下映像:

surfc(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')

還可以調用surfl(命令中的'l'表示這是一個光照表面 lighted surface)命令顯示三維光照物體的表面,可以使用這個命令產生沒有線條的三維圖像,圖像還可以是彩色的或灰度的。例如仍然產生函數z = ye-(x2+y2)的灰度圖像,圖像中的陰影可設置為flat、interp、faceted

surfl(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')
shading interp;
colormap(gray);

 

 下面我們使用matlab內置函數來產生像球形或圓柱形這樣的基本圖像,例如:

t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(1+sin(t));
surf(X,Y,Z),colormap('default');
axis square

會得到如下圖像:

 試試另一個稍微有點不同的函數,陰影設置為faceted:

t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(1+cos(t));
surf(X,Y,Z),shading faceted;
axis square

 

若將陰影設置為shading flat,則圖像顯示為:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM