作为前面加亮阴影地貌图示例的对比,下面给朝鲜半岛地区的彩色表面图添加光源。[大谦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所示。
图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)
图5-8 添加phong光照后的效果 图5-9更换视点后的地图显示
视点在(-30,30),在(45,115,1)处有一个光对象,进行Phong光照以后的显示效果如图5-9所示。
从当前图形中删除光照,输入
code.matlab
>> clmo(handlem('light'))