Presentation is loading. Please wait.

Presentation is loading. Please wait.

本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修

Similar presentations


Presentation on theme: "本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修"— Presentation transcript:

1 本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修
第六章 三維空間繪圖 本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修

2 基本三維繪圖 對於函數 f(x,y) 而言,每給一組(x,y) ,便能計算z=f(x,y)

3 繪製三維的網格圖

4 利用mesh() 繪製三維的網格圖

5 mesh() 的使用範例 >> xx=[2 3 4;2 3 4;2 3 4;2 3 4] xx = 2 3 4
>> yy=[3 3 3;2 2 2;1 1 1;0 0 0] yy = >> zz=[8 8 9;8 8 9;7 7 7;7 7 6] zz = >> mesh(xx,yy,zz) >> mesh(zz)

6 meshgrid() 函數 >> vx=2:4 vx = 2 3 4 >> vy=0:3 vy = 0 1 2 3
>> vy=0:3 vy = >> [xx,yy]=meshgrid(vx,vy) xx = yy = >> zz=sqrt(xx.*yy) zz = >> mesh(xx,yy,zz)

7 Matlab提供了meshgrid函數,可以建立xx與yy矩陣:
>> x=linspace(-2,2,30); >> y=linspace(-2,2,30); >> [xx,yy]=meshgrid(x,y); >> zz=xx.*exp(-xx.^2-yy.^2); >> mesh(xx,yy,zz)

8 meshc() 與waterfall() 函數
>> x=linspace(-8,8,30); >> y=x; >> [xx,yy]=meshgrid(x,y); >> expr=sqrt(xx.^2+yy.^2); >> zz=sin(expr)./(expr+eps); >> meshc(xx,yy,zz) >> waterfall(xx,yy,zz) Matlab內建常數:eps=2.2x10-16

9 三維曲面圖-surf() 與surfc()
>> surf(xx,yy,zz); >> surfc(xx,yy,zz); axis tight; >> x=linspace(-7,7,32); >> y=linspace(-6,6,32); >> [xx,yy]=meshgrid(x,y); >> zz=xx./(xx.^2+yy.^2+1);

10 簡易的三維繪圖函數 只要給予繪圖的函數與範圍, ezmesh() 與ezsurf() 函數便可快速的繪出三維的圖形

11 ezmesh() 與ezsurf() 的使用範例
>> ezmesh('exp(-0.2*x)*cos(t)') >> ezsurf('y/(x^2+y^2+1)',36) >> ezmesh('exp(-0.2*x)*cos(t)',... [-pi,2*pi,-2,12],36) >> ezsurfc('y/(x^2+y^2+1)',36)

12 三維圖形展示函數—peaks

13 Peaks的語法 >> peaks; z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...
-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)... -1/3*exp(-(x+1).^2-y.^2) >> [xx,yy,zz]=peaks(32); >> surfc(xx,yy,zz); >> peaks(24);

14 t.*sin(t),t.*cos(t),-t,'-bd');
空間曲線繪圖 >> t=linspace(0,30,120); >> plot3(t.*sin(t),t.*cos(t),t,'-ro', t.*sin(t),t.*cos(t),-t,'-bd'); >> plot3(t.*sin(t),t.*cos(t),t,'-ro');

15 等高線繪圖 等高線圖(contour plot)是把三維的圖中,高度相等的點連接起來,即成等高線圖

16 等高線繪圖的範例 >> [xx,yy,zz]=peaks; >> contour(xx,yy,zz)
>> contourf(xx,yy,zz,20) >> contourf(zz,[-2,0,3,7])

17 標註等高線的值 >> [xx,yy,zz]=peaks; >> cmat=contour(xx,yy,zz);
>> clabel(cmat)

18 三維的等高線圖 >> zz=peaks; >> contour3(zz);

19 三維圖形的基本編修 >> zz=peaks; >> mesh(zz);axis tight;
>> hidden off; >> box on; >> axis off;

20 改變三維圖形的視角 仰角是從x-y平面上數起,往上為正,往下為負 方位角是從x軸數起,逆時針方向為正

21 view() 的使用範例 >> peaks; >> view(60,30);

22 修改三維圖形的曲面顏色 >> colormap >> peaks; >> colorbar; ans =
: : : >> peaks; >> colorbar;

23 colormap() 函數的使用

24 colormap() 的使用 >> peaks; >> colormap(cm);colorbar;
0 0 1;1 0 1] cm =

25 產生顏色對應表的函數

26 顏色對應表函數的使用 >> colormap(hot(32));colorbar; >> size(spring)
ans = 3 >> colormap('default');colorbar; >> colormap spring; colorbar; >> size(colormap) ans =

27 Colormap Editor對話方塊 從Edit選單中選擇Colormap來編輯顏色對應表

28 Exercises(1/1) 請分別以mesh與surf函數繪製下列函數的圖形。 請分別以ezmesh與ezsurf函數繪製下列函數的圖形。
請以實線、紅色、圓形200個資料點繪製下列函數的圖形。


Download ppt "本章學習目標 學習三維繪圖的基本技巧 學習peaks() 函數的用法 學習二維與三維等高線圖的繪製 學習三維圖形的編修"

Similar presentations


Ads by Google