matlab畫三維圖像的示例代碼(附demo)
當我們學習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,則圖像顯示為:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
GCC?指令詳解及動態(tài)庫、靜態(tài)庫的使用方法
GCC?是?Linux?下的編譯工具集,是「GNU?Compiler?Collection」的縮寫,包含?gcc、g++?等編譯器,這篇文章主要介紹了GCC?指令詳解及動態(tài)庫、靜態(tài)庫的使用,需要的朋友可以參考下2022-10-10一文帶你快速梳理ChatGPT、GPT4 和OpenAPI的關系
最近最火的幾個詞無疑是ChatGPT、GPT4 和OpenAPI,那么這三者究竟有什么關系呢,本文將帶你進行快速梳理三者的關系,感興趣的同學可以參考閱讀下2023-06-06Grafana?系列之統(tǒng)一展示Prometheus數據源
這篇文章主要為大家介紹了Grafana?系列之統(tǒng)一展示Prometheus數據源配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05詳解VScode自動補全CSS3前綴插件以及配置無效的解決辦法
這篇文章主要介紹了詳解VScode自動補全CSS3前綴插件以及配置無效的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06