MATLAB使用surflm绘制表面浮雕阴影地形图

2025-10-26 05:13:31

1、第一,启动MATLAB,新建脚本(Ctrl+N),输入如下代码:

close all; clear all; clc

figure('Position',[50 50 600 500],'Name','Korea')

ax=worldmap('korea');

latlim=getm(ax,'MapLatLimit');

lonlim=getm(ax,'MapLonLimit');

coastline=shaperead('landareas',...

'UseGeoCoords',true,...

'BoundingBox',[lonlim' latlim'])

geoshow(ax,coastline,'FaceColor','none')

以上脚本使用worldmap选择地图区域(korea,朝鲜半岛)和地图边界。

MATLAB使用surflm绘制表面浮雕阴影地形图

2、第二,保存和运行上述脚本,得到如下图形:朝鲜半岛的地图廓线。

MATLAB使用surflm绘制表面浮雕阴影地形图

3、第三,使用load加载地形数据,使用meshgrat转化为网格数据,使用surflm绘制表面浮雕阴影地形图,使用colormap选择地形图颜色为铜色(copper)。

接着添加如下代码:

load korea;

[klat,klon]=meshgrat(map,refvec);

ht=surflm(klat,klon,map);

colormap('copper')

MATLAB使用surflm绘制表面浮雕阴影地形图

4、第四,保存和运行上述脚本,得到如下铜色的朝鲜半岛的表面浮雕阴影地形图。

MATLAB使用surflm绘制表面浮雕阴影地形图

5、第五,添加代码clmo(ht);ht=surflm(klat,klon,map,[135,60]),从而改变方位角azimuth为135度和仰角elevation为60度。

MATLAB使用surflm绘制表面浮雕阴影地形图

6、第六,保存和运行上述添加后的脚本,得到如下朝鲜半岛(Korea peninsula)的表面浮雕阴影地形图,光照的方位角和仰角做了相应改变。

MATLAB使用surflm绘制表面浮雕阴影地形图

7、第七,改变最后一行代码为:

clmo(ht);ht=surflm(klat,klon,map,[135,60],...

[0.65,0.4,0.3 10])

从而增加环境光(ambient light)、漫反射(diffuse reflection)和镜面反射(specular reflection)。

MATLAB使用surflm绘制表面浮雕阴影地形图

8、第八,保存和运行上述脚本,得到最终的朝鲜半岛的表面浮雕阴影地形图如下。

MATLAB使用surflm绘制表面浮雕阴影地形图

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢