MATLAB Function Reference |
Syntax
surface(Z) surface(Z,C) surface(X,Y,Z) surface(X,Y,Z,C) surface(...'PropertyName',PropertyValue,...) h = surface(...)
surface
是一些用來建立曲面繪圖物件的低階指令。 x- 與 y-座標為每個元素的位置,z-座標為每個元素的值。
surface(Z)
根據矩陣 Z
來畫出曲面圖, Z
是一個定義在方形格子點上的單值函數(single-valued function)。
surface(Z,C)
根據矩陣 Z
來畫出曲面圖且根據矩陣 C
來決定顏色 (參考 "Examples")。
surface(X,Y,Z)
以 C
=
Z
,所以顏色將與曲面的高度有關係。
surface(X,Y,Z,C)
根據矩陣 X
、 Y
、 Z
來繪製曲面圖,顏色為矩陣 C
控制。
surface(x,y,Z), surface(x,y,Z,C)
以向量置換前兩個矩陣,且 length(x)
=
n
, length(y)
=
m
, [m,n]
=
size(Z)
。在這種情況下,頂點的座標為 (x(j),y(i),Z(i,j))
, x
會對應到 Z
的行和 y
會對應到 Z
的列。可參考 surf
有更完整的說明。
surface(...'
PropertyName
',PropertyValue,...)
X
、 Y
、 Z
與 C
可以設定額外的曲面屬性,定義在 "Surface Properties"。
Remarks
與高階指令不同的是(如 surf
或 mesh
), surface
不會遵照圖形的設定以及軸 NextPlot
的性質,它會簡單的把曲面物件加進目前的座標軸中。
如果你沒有指定顏色於矩陣 C
,MATLAB 會用矩陣 Z
來決定曲面的顏色。在這種情況下,顏色與 Z
中的值會有關係,所以你也可以另外的在指定顏色。
您可以以屬性名稱/屬性的值、結構陣列與異質陣列來指定屬性(參考 set
與 get
)。
surface
提供了更方便的型式讓你可以去操控屬性的名稱,如 XData
、 YData
、 ZData
、 CData
這些性質。例如:
surface('XData',X,'YData',Y,'ZData',Z,'CData',C)
surface(X,Y,Z,C)
surface(Z)
surface('XData',[1:size(Z,2)],... 'YData',[1:size(Z,1)],... 'ZData',Z,... 'CData',Z)
axis
、 caxis
、 colormap
、 hold
、 shading
與 view
會設定一些繪圖的性質來改變曲面。在建立它們之後你也可以用 set
與 get
來設定及查詢曲面的屬性值。
Example
這個範例會用 peaks
M-file 產生資料來建立曲面,用一張小丑的圖作背景。 ZData
是一個 49-by-49 的陣列, CData
是一個 200-by-320 的陣列。你必須在不同的維度中,使用 ZData
與 CData
來設定曲面的 FaceColor
對於 texturemap
。
load clown surface(peaks,flipud(X),... 'FaceColor','texturemap',... 'EdgeColor','none',... 'CDataMapping','direct') colormap(map) view(-35,45)
用 surface(Z,C)
可以很容易的使用成對的"屬性名稱/屬性的值"。
由於小丑的資料 (X
) 可以看做 image
的命令,MATLAB 會作直接的 CDataMapping。這個範例是用 direct
來設定 CDataMapping
的屬性。
See Also
ColorSpec
, mesh
, patch
, pcolor
, surf
Object Hierarchy
Setting Default Properties
set(0,'DefaultSurfaceProperty',PropertyValue...) set(gcf,'DefaultSurfaceProperty',PropertyValue...) set(gca,'DefaultSurfaceProperty',PropertyValue...)
Property
是屬性的名稱以及 PropertyValue
是屬性值,用 set
與 get
可以去取得修改這些性質。
Property List
屬性名稱 |
屬性描述 |
屬性值 |
物件的定義 | ||
XData |
頂點的 x-座標 |
vector or matrix |
YData |
頂點的 y-座標 |
vector or matrix |
ZData |
頂點的 z-座標 |
matrix |
指定顏色 | ||
CData |
顏色的資料 |
Values: scalar, vector, or matrix Default: [] empty matrix |
CDataMapping |
CData 的顏色對應 |
Values: scaled , direct Default: scaled |
EdgeColor |
邊的顏色 |
Values: ColorSpec , none , flat , interp Default: ColorSpec |
FaceColor |
面的顏色 |
Values: ColorSpec , none , flat , interp Default: ColorSpec |
MarkerEdgeColor |
標記邊的顏色 |
Values: ColorSpec , none , auto Default: auto |
MarkerFaceColor |
標記面的顏色 |
Values: ColorSpec , none , auto Default: none |
指定透明度 |
||
AlphaData |
透明的資料 |
m-by-n matrix of double or uint8 |
AlphaDataMapping |
對應到透明的方法 |
none , direct , scaled Default: scaled |
EdgeAlpha |
區塊邊的透明度 |
scalar , flat , interp Default: 1 (opaque) |
FaceAlpha |
區塊面的透明度 |
scalar , flat , interp , texture Default: 1 (opaque) |
控制光的影響度 | ||
AmbientStrength |
周圍光的強度 |
Values: scalar >=0 and <=1 Default: 0.3 |
BackFaceLighting |
表面上光的強度 |
Values: unlit , lit , reverselit Default: reverselit |
DiffuseStrength |
發散光的強度 |
Values: scalar >=0 and <=1 Default: 0.6 |
EdgeLighting |
邊的光線控制方法 |
Values: none , flat , gouraud , phong Default: none |
FaceLighting |
面的光線控制方法 |
Values: none , flat , gouraud , phong Default: none |
NormalMode |
MATLAB-產生或使用者指定的正規向量 |
Values: auto , manual Default: auto |
SpecularColorReflectance |
混合的反射光 |
Values: scalar 0 to 1 Default: 1 |
SpecularExponent |
粗操表面的反射 |
Values: scalar >= 1 Default: 10 |
SpecularStrength |
反射光的強度 |
Values: scalar >=0 and <=1 Default: 0.9 |
VertexNormals |
頂點正規的向量 |
Values: matrix |
邊與標記的定義 | ||
LineStyle |
選擇線條的風格Select from five line styles. |
Values: -, --, : , -. , none Default: - |
LineWidth |
邊的寬度(單位為點) |
Values: scalar Default: 0.5 points |
Marker |
標記的圖案 |
Values: see Marker propertyDefault: none |
MarkerSize |
標記的大小(單位為點) |
Values: size in points Default: 6 |
外型的控制 | ||
Clipping |
剪裁至軸上的矩形 |
Values: on , off Default: on |
EraseMode |
著色以及抹去曲面的方法 (可用在動畫製作) |
Values: normal , none , xor , background Default: normal |
MeshStyle |
指定是否要畫全部的邊線或只是行或列的邊 |
Values: both , row , column Defaults: both |
SelectionHighlight |
強化被選擇的曲面 |
Values: on , off Default: on |
Visible |
控制曲面是否為可見 |
Values: on , off Default: on |
控制物件的使用 | ||
HandleVisibility |
決定曲面是否可以被其他函式控制 |
Values: on , callback , off Default: on |
HitTest |
決定曲面是否可以變成目前的物件(可參考CurrentObject ) |
Values: on , off Default: on |
回應程序的執行 | ||
|
指定如何去控制回應程序的中斷 |
Values: cancel , queue Default: queue |
|
定義一個可以經由滑鼠的按下就可以執行的回應程序 |
Values: string Default: '' (empty string) |
|
當曲面建立時就會執行回應程序 |
Values: string Default: '' (empty string) |
|
當曲面刪除時就會執行回應程序 (可經由 close 或 delete 刪除) |
Values: string Default: '' (empty string) |
|
決定回應程序使否可以被中斷 |
Values: on , off Default: on (can be interrupted) |
|
結合文字的選單 |
Values: handle of a uicontextmenu |
曲面一般的資訊 | ||
Children |
曲面物件沒有孩子(children) |
Values: [] (empty matrix) |
Parent |
曲面物件的父母(parent) 一定是 axes 物件 |
Value: axes handle |
Selected |
指出曲面是否為"選擇"的狀態 |
Values: on , off Default: on |
Tag |
使用者指定的標籤 |
Value: any string Default: '' (empty string) |
Type |
繪圖物件的型態(唯讀) |
Value: the string 'surface' |
|
使用者指定的資料 |
Values: any matrix Default: [] (empty matrix) |
surf2patch | Surface Properties |