添加光照

作为前面加亮阴影地貌图示例的对比,下面给朝鲜半岛地区的彩色表面图添加光源。[大谦MATLAB,dqmatlab点com]

如果需要,载入korea DEM,并用Miller投影创建一个地图坐标系。

code.matlab
>> load
>> figure; axesm('MapProjection','miller',...
'MapLatLimit',[30 45],'MapLonLimit',[115 135])

用meshm函数显示该DEM,然后用地形对应色调进行着色。

code.matlab
>> meshm(map,maplegend,size(map),map);
>> demcmap(map)

没有光照效果的地图如图5-7所示。

Document Image

图5-7 没有光照的地图

用lightm函数创建一个光对象。这个光对象放在网格的西北角,地平纬度为1°。

code.matlab
>> h=lightm(45,115,1)

图像现在更暗了。

为了查看地貌的透视效果,用因子50拉伸垂向上的显示。

code.matlab
>> daspectm('meters',50)

图像仍然变暗,高点处很亮。

分别设置环境光、漫反射光和镜面反射光的反射特性。

code.matlab
>> material([.7, .9, .8])

默认时使用刻面光照。改变为Phong光照。

code.matlab
>> lighting phong

地图现在如图5-8所示。

最后,删除包围盒的边,设置地平经度为-30度,地平纬度为30度的视点。

code.matlab
>> set(gca,'Box','off')
>> view(-30,30)
Document Image Document Image

图5-8 添加phong光照后的效果 图5-9更换视点后的地图显示

视点在(-30,30),在(45,115,1)处有一个光对象,进行Phong光照以后的显示效果如图5-9所示。

从当前图形中删除光照,输入

code.matlab
>> clmo(handlem('light'))