Matlab学习笔记(一)—— 三维图形绘制
這學期公選課選的是MATLAB,所以準備把這學期所學習的整理到博客上,作為記錄,哇咔咔~
一、三維函數(shù)圖:
x=cos(t), y=sin(t), z=t %0≤t ≤4*pi
t=0:0.001:4*pi; %t的取值范圍
x=cos(t);y=sin(t);z=t;
plot3(x,y,z)
xlabel('x軸'),ylabel('y軸'),zlabel('z軸') %為坐標軸加上標簽
grid on %為圖像加上網(wǎng)格
三維函數(shù)的繪制一般使用plot3()函數(shù),其三個基本參數(shù)是三個參數(shù)函數(shù),第四個參數(shù)可以改變函數(shù)的顏色,或者虛實線,如plot3(x, y, z, 'r:'),其繪制的函數(shù)圖像則為紅色虛線的,上述腳本的運行結果如下:
二、三維餅圖:
pie3([4 3 6 8 9])
直接調用上述腳本既可以繪制出一個餅圖,如果這樣調用pie3([4 3 6 8 9], [0 0 1 0 0]),則在第二個向量中值為1的部分會在餅圖中以突出的方式顯示,上述腳本運行結果如下:
三、繪制空間多邊形:
y1=rand(3,5); y2=rand(3,5); y3=rand(3,5); fill3(y1,y2,y3,'m'); hold on; plot3(y1,y2,y3,'yo')
首先rand(3, 5)產(chǎn)生了一個3 * 5 的隨機數(shù)矩陣,上述腳本中先產(chǎn)生了y1,y2, y3三個3 * 5 的隨機矩陣,其中
A = ( y1[0][0], y2[0][0],y3[0][0] ),
B = ( y1[1][0], y2[1][0], y3[1][0] ),
C = ( y1[2][0], y2[2][0], y3[2][0] )
分別是第一個三角形的三個頂點,其他以此類推。所以fill3(y1,y2,y3,'m'); 共產(chǎn)生了5個三角形,并以粉色填充,plot3(y1,y2,y3,'yo')語句是在每個三角形的頂點加上黃色的小圈,而由于之前加上了hold on; 所以前面的粉色三角形不會被覆蓋,運行效果如下:
四、三維網(wǎng)格圖:
1、mesh()函數(shù)生成網(wǎng)格圖:
h2=[1 1;1 -1] h4=[h2 h2;h2 -h2] h8=[h4 h4;h4 -h4] mesh(h8)
上面由迭代生成一個8*8的矩陣,即:
1 1 1 1 1 1 1 1
1 -1 1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1
1 -1 -1 1 1 -1 -1 1
1 1 1 1 -1 -1 -1 -1
1 -1 1 -1 -1 1 -1 1
1 1 -1 -1 -1 -1 1 1
1 -1 -1 1 -1 1 1 -1
mesh()函數(shù)以矩陣的下標為x,y坐標,生成一個網(wǎng)格圖,運行效果如下:
2、meshgrid()函數(shù):
a=[1:2] b=[3:5] [A,B]= meshgrid(a,b)
上述生成了A,B兩個矩陣:
A = B =
1 2 3 3
1 2 4 4
1 2 5 5
命令等效于:A=ones(size(b))*a; B=b'*ones(size(a))
3、利用meshgrid()函數(shù)和mesh()函數(shù)生成網(wǎng)格圖:
x=-5:5; y=x; [X,Y]=meshgrid(x,y); Z=X.^2+Y.^2 ; mesh(X,Y,Z)
上述腳本先使用meshgrid()函數(shù)生成11 * 11的矩陣,再使用mesh()生成網(wǎng)格圖;
五、三維曲面圖:
首先三維曲面圖和三維網(wǎng)格圖不同,其區(qū)別有:
(1)網(wǎng)線圖:線條有顏色,內部是無顏色
(2)曲面圖:線條是黑色的,內部有顏色(把線條之間的空擋填充顏色,沿z軸按每一網(wǎng)格變化)
1、使用peak()函數(shù):
為了方便測試立體繪圖,MATLAB提供了一個peaks函數(shù),可產(chǎn)生一個凹凸有致的曲面,包含了三個局部極大點及三個局部極小點,其方程式為:
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)
2、surfc()函數(shù):
[X,Y,Z]=peaks(20); surfc(X,Y,Z)
上述腳本先調用peaks()函數(shù),再使用surfc()函數(shù)便可得出下列圖形:
3、colormap()函數(shù):
matlab 的顏色數(shù)據(jù)集合為紅、綠、藍三顏色矩陣 [R,G,B],維數(shù)m×3,R,G,B在[0 1]區(qū)間連續(xù)取值,理論上顏色種類可達無窮多種,然后我們使用colormap()就可以設置圖像顏色,如colormap([0.5 0.7 0.8]),當然,matlab也有常用顏色數(shù)據(jù),見下表:
jet —— 飽和值色圖II
hsv —— 飽和值色圖
gray —— 線性灰度色圖
hot —— 暖色色圖
cool —— 冷色色圖
bone —— 蘭色調灰色圖
copper —— 銅色色圖
pink —— 粉紅色圖
prism —— 光譜色圖
flag —— 紅、白、藍交替色圖
如我們調用colormap gray; 就可得到相應的線性灰度色圖。
六、圖像修飾方法:
1、shading:
我們可以使用colormap()函數(shù)進行顏色的修飾,還可以使用shading來控制表面和塊等圖形對象顏色的渲染:
[X,Y,Z]=sphere(50); surfc(X,Y,Z) colormap cool shading interp axis equal
上述腳本中,我們畫了一個球:
shading有多種選項,常用為:faceted /flat /interp, 等等。
//To Be Continued.
總結
以上是生活随笔為你收集整理的Matlab学习笔记(一)—— 三维图形绘制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花蛤如何去沙
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?