MATLAB shading()函数的用法(附带实例)
MATLAB 中的 shading() 函数用来控制曲面与补片等的图形对象的颜色渲染,同时设置当前坐标轴中的所有曲面与补片图形对象的属性 EdgeColor 与 FaceColor。
shading() 函数的调用格式及说明如下表所示。
【实例 1】观察剖面函数 y=2+cosx 定义的圆柱在不同渲染模式下的图像。MATLAB 程序如下:

图 1 不同渲染模式下的图像
【实例 2】针对函数(z=x^2+e^(siny),−10≤x,y≤10)比较上面 3 种调用格式得出图形的不同。MATLAB 程序如下:

图 2 颜色渲染控制图
shading() 函数的调用格式及说明如下表所示。
调用格式 | 说明 |
---|---|
shading flat | 使网格图上的每一线段与每一小面有一种相同颜色,该颜色由线段末端的颜色确定,或由小面的、有小型的下标或索引的四个角的颜色确定 |
shading faceted | 用重叠的黑色网格线来达到渲染效果。这是默认的渲染模式 |
shading interp | 该函数通过在每个线条或面中对色图的索引或真彩色值进行插值来改变线条或面中的颜色 |
shading(axes_handle,...) | 将着色类型应用于 axes_handle 指定的坐标区中的对象 |
【实例 1】观察剖面函数 y=2+cosx 定义的圆柱在不同渲染模式下的图像。MATLAB 程序如下:
>> close all % 关闭当前已打开的文件 >> clear % 清除工作区的变量 >> t = 0:pi/10:2*pi; % 创建0~2π的向量x,元素间隔为π/10 >> subplot(131) % 将视图划分为1行3列3个视窗,显示第1个视窗 >> cylinder(2+cos(t)) % 绘制函数定义的圆柱 >> title('镶嵌面渲染(默认)) % 为图形添加标题 >> subplot(132) % 显示第2个视窗 >> cylinder(2+cos(t)) % 绘制函数定义的圆柱 >> shading flat % 利用网格颜色渲染图形 >> title('平面渲染') % 为图形添加标题 >> subplot(133) % 显示第3个视窗 >> cylinder(2+cos(t)) % 绘制函数定义的圆柱 >> shading interp % 利用插值颜色渲染图形 >> title('插值渲染') % 为图形添加标题运行结果为:

图 1 不同渲染模式下的图像
【实例 2】针对函数(z=x^2+e^(siny),−10≤x,y≤10)比较上面 3 种调用格式得出图形的不同。MATLAB 程序如下:
>> close all % 关闭当前已打开的文件 >> clear % 清除工作区的变量 >> [X,Y]=meshgrid(-10:0.5:10); % 创建从-10~10的向量,向量元素间隔为0.5,通过该向量定义二维网格 矩阵X、Y >> Z=X.^2+exp(sin(Y)); % 通过网格数据X、Y定义函数表达式 Z,得到二维矩阵Z >> subplot(2,2,1); % 将视图划分为2行2列4个视窗,显示第1个视窗 >> surf(X,Y,Z); % 根据x轴、y轴、z轴的坐标值X、Y、Z绘制曲面图 >> title('三维视图'); % 为图形添加标题 >> subplot(2,2,2), surf(X,Y,Z),shading flat; % 根据x轴、y轴、z轴的坐标值X、Y、Z绘制曲面图, 利用网格颜色渲染图形 >> title('平面渲染'); % 为图形添加标题 >> subplot(2,2,3), surf(X,Y,Z),shading faceted; % 根据x轴、y轴、z轴的坐标值X、Y、Z绘制曲面图, 利用黑色网格渲染图形 >> title('镶嵌面渲染'); % 为图形添加标题 >> subplot(2,2,4) ,surf(X,Y,Z),shading interp; % 根据x轴、y轴、z轴的坐标值X、Y、Z绘制曲面图, 利用插值颜色渲染图形 >> title('插值渲染') % 为图形添加标题运行结果为:

图 2 颜色渲染控制图