| MATLAB Function Reference | ![]() |
Syntax
surfl(Z) surfl(X,Y,Z) surfl(...,'light') surfl(...,s) surfl(X,Y,Z,s,k) h = surfl(...)
Description
surfl 函式會顯現一個陰影的 surface ,根據周遭的光源、散射的光源以及反射的光源之結合。
surfl(Z) 與 surfl(X,Y,Z)
會建立三維空間具陰影的表面(使用預設的光源)。 X、 Y 與 Z 為定義在 x、 y 與 z 元件上的向量或矩陣。
會產生一個具有顏色光源的曲面。使用 surfl(...,'cdata') 可以產生不同的效果。surfl(...,'light')
surfl(...,s)
指定了光源的方向。 s 是一個 2 或 3 元素的向量,其說明了從曲面到光源的方向。 s = [sx sy sz] 或 s = [azimuth elevation]。 s 的預設值為 45° ;從目前的視角以逆時針的方向
surfl(X,Y,Z,s,k)
指定了反射常數。 k 是一個 4 個元素的向量,分別為周遭的光源、散射的光源、反射的光源以及發光的係數, k = [ka kd ks shine] 而預設值為 [.55,.6,.4,10]。
Remarks
若想要柔順的色調,可以用線性強度的變化來對應 (e.g., gray, copper, bone, pink)。
若你想反射曲面的反面的光源,可以用 surfl(X',Y',Z')。 surfl 所傳進的矩陣維度至少是 3-by-3 的。
Examples
加上光的效果來檢視 peaks 函式 :
[x,y] = meshgrid(-3:1/8:3); z = peaks(x,y); surfl(x,y,z); shading interp colormap(gray); axis([-3 3 -3 3 -8 8])
![]()
view([10 10]) grid on hold on surfl(peaks) shading interp colormap copper hold off
![]()
See Also
| Surface Properties | surfnorm | ![]() |