MATLAB Function Reference |
Syntax
surf(Z) surf(X,Y,Z) surf(X,Y,Z,C) surf(...,'PropertyName',PropertyValue) surfc(...) h = surf(...) h = surfc(...)
Description
我們可以使用 surf
與 surfc
來看一些數學函式的圖形,根據矩陣 X
、 Y
與 Z
來繪製的,而顏色可以由矩陣 Z
或 C
決定。
surf(Z)
會建立一個由矩陣 Z
所繪製的立體曲面圖,而 x
=
1:n
, y
=
1:m
,[m,n] = size(Z)
。曲面的顏色會根據矩陣 Z
作變化,所以顏色是與曲面高度有關係的。
surf(X,Y,Z)
圖形中的顏色會由 Z
決定,所以呈現的顏色會與表面的高度有關係。若 X
與 Y
為向量的話,則 length(X) = n
, length(Y) = m
, [
m,n] = size(Z)
。在這種情況下,曲面上的頂點為 。
surf(X,Y,Z,C)
可以用矩陣 C
來決定呈現的顏色。 MATLAB 會對 C
中的資料作線性轉換來取得顏色的對應。
可以設定圖形表面的性質。surf(...,'
PropertyName',PropertyValue)
h = surf(...) 和 h = surfc(...)
傳回一個曲面控制物件。
Algorithm
參數型的曲面可由兩個在矩形中連續變化的參數, i
與 j
繪製成,譬如說 1
i
m
和 1
j
n
。 x(i,j)
、 y(i,j)
與 z(i,j),
描述了整個曲面。當 i
與 j
為整數時,則會定義格子點的座標點也為整數。函式 x(i,j)
、 y(i,j)
與 z(i,j)
會變成 m
-by-n
的矩陣, X
、 Y
與 Z
。而 c(i,j)
(定義在矩陣 C
)可以描述欲呈現的顏色。
i-1,
j | i,
j-1 - i,
j - i,
j+1 | i+1,
j
若點在角落上,則它會有兩個鄰居。若點在邊上,則它會有三個鄰居。若點在中間的話,則它會有四個鄰居。
曲面的顏色可用兩種方法呈現 : 在頂點著色或是在每一片的中心點著色。而曲面的圖形不一定要是平面的,也可以用極座標、柱座標以及球座標系統。
shading
函式可以設定陰影。若設定為 interp
,則 C
的大小必須與 X
、 Y
、 Z
相同,它指定了頂點所呈現的顏色。曲面上每一塊的顏色都是由區域座標系中雙線性函式所決定的。若設定為 faceted
(預設值) 或 flat
, C(i,j)
會指定曲面上每一塊的顏色 :
(i,
j) - (i,
j+1) | C(i,
j) | (i+1,
j) - (i+1,
j+1)
在這種情況下, C
的大小必須與 X
、 Y
、 Z
相同,且它的最後一行與最後一列會被忽略,所以它列與行的維度可以比 X
、 Y
、 Z
少一維。
surf
與 surfc
函式可以用 view(3)
來指定視角。
X
、 Y
與 Z
的範圍,或是 XLimMode
、 YLimMode
與 ZLimMode
的性質會取決於軸的限制。 axis
會設定這些性質。
C
的範圍,或是 CLim
與 CLimMode
的性質(也會被 caxis
函式設定)會取決於顏色的延展。延伸的顏色會塗在頂點上(以目前的顏色對應)。
Examples
同時畫出 peaks
的曲面圖加等高線 :
[X,
Y,Z] = peaks(30);surfc(X,Y,Z)
colormap hsv axis([-3 3 -3 3 -10 5])
對一個介於 -1 ~ 1 Hadamard 矩陣所構成的球體上色。
k = 5; n = 2^k-1; [x,
y,
z] =sphere
(n); c =hadamard
(2^k); surf(x,
y,
z,
c); colormap([1 1 0; 0 1 1]) axis equal
See Also
axis
, caxis
, colormap
, contour
, mesh
, pcolor
, shading
, view
support | surf2patch |