本博文源于中南大学《科学计算与MATLAB语言》
- 曲线对象
- 曲面对象
- 光照处理
- 图形对象的反射特性
曲线对象
建立曲线对象
line函数的调用格式为:
句柄变量=line(x,y,z,属性1,属性值1,属性2,属性值2,...)
其中,x、y、z存储数据点的坐标,与plot、plot3函数含义相同。
曲线对象常用属性
- Color属性:定义曲线的颜色,默认值为[0,0,0].
- LineStyle属性:定义线型,默认值为’-’.
- LineWidth属性:定义线宽,默认值为0.5磅。
- Marker属性:定义数据点标记符号,默认值为’‘none’.
- MarkerSize属性:定义数据点标记符号的大小,默认值为6磅.
- XData、YData、ZData属性:设置3个坐标轴的数据源.
利用曲线对象绘制五环图案
>> t=-0.1:0.1:2*pi;
>> x=cos(t);y=sin(t);
>> line(x,y,'Color','b')
>> t=-0.1:0.1:2*pi;
>> x=cos(t);y=sin(t);
>> line(x,y,'Color','b')
>> line(x+1.2,y-1,'Color','y')
>> line(x+2.4,y,'Color','k')
>> line(x+3.6,y-1,'Color','g')
>> line(x+4.8,y,'Color','r')
>> ha=gca;
>> ha.XLim = [-2,7];
>> ha.YLim = [-3,2];
>> axis equal
>>
曲面对象
建立曲面对象
surface函数的调用格式为:
句柄变量=surface(x,y,z,c,属性1,属性值1,属性2,属性值2.....)
其中,x、y、z存储数据点的坐标,与surf函数含义相同;c用于指定在不同高度下的曲面颜色。
利用surface函数建立的曲面对象,默认视点的方位角为0°,仰角为90°
与曲面形态有关的属性
- FaceColor属性:定义曲面网格片的颜色,可取值为:
'flat':每一个网格片用单一颜色填充.
'interp':用渐变方式填充网格片
'none':网格片无颜色.
'texturemap':用Cdata属性定义的颜色填充网格片。
RGB向量或代表颜色的字符。
- EdgeColor属性:定义曲面网格线的颜色。
利用曲面对象绘制立体圆环,圆环方程为:
>> r=linspace(0,2*pi,60);
>> [u,v]=meshgrid(r);
>> x=(8+3*cos(v)).*cos(u);
>> y=(8+3*cos(v)).*sin(u);
>> z=3*sin(v);
>> axes('view',[-37.5,30])
>> hs=surface(x,y,z);
>> axis equal
>> hs.EdgeColor='none';
>> hs.FaceColor='interp';
>>
光照处理
创建光源对象
light函数的调用格式为:
对象句柄=light(属性1,属性值1,属性2,属性值2,...)
其中,属性指定光源的特性。
光源对象的属性
- Color属性:设置光的颜色.
- Style属性:设置光源类型,其取值为’infinite’(默认值)或’local’。
- Position属性:指定光源位置。
设置光照模式
lighting命令格式为:
lighting 选项
其中,选项可取值为:
- flat
- gouraud
- phong
- none
绘制光照处理后的圆环面并观察不同光照模式下的效果
>> r=linspace(0,2*pi,60);
>> [u,v]=meshgrid(r);
>> x=(8+3*cos(v)).*cos(u);
>> y=(8+3*cos(v)).*sin(u);
>> z=3*sin(v);
>> axes('Position',[0.005,0.675,1.0,0.3],'View',[-37.5,30]);
>> hs1=surface(x,y,z);
>> axis equal
>> axes('Position',[0.05,0.35,1.0,0.3],'View',[-37.5,30]);
>> hs2=surface(x,y,z);
>> axis equal
>> light('Position',[0,0,8])
>> lighting flat
>> axes('Position',[0.05,0.025,1.0,0.3],'View',[-37.5,30]);
>> hs3=surface(x,y,z);
>> axis equal
>> light('Position',[0,0,8])
>> lighting phong
图形对象的反射特性
- SpecularStrenth属性:控制对象表面镜面反射的强度
- DiffuseStrenth属性:控制对象表面漫反射的强度。
- AmbientStrength属性:确定环境光的强度.
- SpecularExponent属性:控制镜面反射指数。
- BackFaceLighting属性:控制对象内表面和外表面的差别.
'until'
'lit'
'reverselit'(默认值)
例如:
hs.SpecularStrenth=0.5