欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 【Matlab】中国东海阴影立体感地图

【Matlab】中国东海阴影立体感地图

2025/4/20 10:04:44 来源:https://blog.csdn.net/miaobo0/article/details/147351555  浏览:    关键词:【Matlab】中国东海阴影立体感地图

【Matlab】中国东海阴影立体感地图
【Matlab】中国东海阴影立体感地图
【Matlab】中国东海阴影图立体感画法
以前分享过一次,链接如下:
中国海域地形图

但是以前还是有些小问题,这次修改了。
另外,增加了新的画法:

另外,本期使用数据地形数据下载教程见往期:
链接如下:【数据】你不知道20种地形数据及其精度–附数据链接及其详细介绍–以及下载教学

地形裁剪数据函数见往期海洋数据处理工具包:
链接如下:
matlab 处理海洋数据并画图的工具包–ocean_data_tools
各种样式一览:代码放最后了!
图片在这里插入图片描述

更改海岸线:

在这里插入图片描述

其他样式:
图片在这里插入图片描述

图片在这里插入图片描述

陆地不显示:
图片在这里插入图片描述

图片在这里插入图片描述
在这里插入图片描述

还有最后一种样式:
图片在这里插入图片描述

图片在这里插入图片描述

图片在这里插入图片描述

最后:本公众号可提供学习交流平台:可投稿发布。可传播学术文章。代码。学术会议等。可扫码联系。

代码: 群内有全部代码数据函数等。

clear; clc; close all;% Specify path to downloaded bathymetry.
bathymetry_dir = 'D:\data\etopo\topo_20.1.nc'; % YOU MUST MODIFY LINE 17!
% bathymetry_extractregion = [0, 45.0 ,105, 135];      % [-90 90 -180 180];
[bathy] = bathymetry_extract(bathymetry_dir,region);% bathymetry_plot
% Load bathymetry data.
bath = bathy.z;
lat = bathy.lat;
lon = bathy.lon;coast = load('coast_china_shore.dat');  % 加载海岸线数据
index = find(isnan(coast(:, 1)));  % 查找数据中的NaN值(海岸线分隔符)%%
close all
figure('position',[10 10 1480./4 1755./4],'color','w')
% 绘制海洋表面
surf(lon, lat, bath.', 'LineStyle', 'none', 'FaceLighting', 'none');%, 'FaceLighting', 'none'
shading interp;  % 平滑着色,增加细节感
% 获取蓝色渐变色图(500个颜色,用于海洋部分)
blue_map = m_colmap('blues', 500);
% 创建白色渐变色图(6个颜色,用于陆地部分,纯白色到浅白色渐变)
white_map = [linspace(1, 1, 6)' linspace(1, 1, 6)' linspace(1, 1, 6)'];
% 合并蓝色渐变和白色渐变色图
combined_map = [blue_map; white_map];
% 设置颜色映射
colormap(combined_map);
% 设置深度范围,使深度小于0的区域显示为蓝色,大于0的区域显示为白色
caxis([-6000 1000]);
% 设置光源
l1 = light('Position', [0 0 1000000000], 'Style', 'infinite');  % 使用无限光源
l1.Color = [1 1 1];  % 设置为白色光源
% 使用 `lighting flat` 来避免光照模型影响白色部分
lighting flat;  % 使用平面光照模型,避免白色部分变灰
% 设置材质为 `dull`,减少反射以避免白色部分的光泽
% material dull;
% material([0.7, 0.5, 0.5]);  % 只保留环境光
material([0.7, 0.3, 0.3]);  % 只保留环境光
% 聚焦光源
camlight('headlight');  % 调整光照,聚焦在视角前方
% 设置坐标轴范围
xlim([105 130])
ylim([0 45])
% 加载并绘制海岸线
hold on
% 循环遍历海岸线数据并绘制
for i = 1:length(index) - 1plot(coast(index(i) + 1:index(i + 1) - 1, 1), ...coast(index(i) + 1:index(i + 1) - 1, 2),'color',[0.68, 0.85, 0.9], 'LineWidth', 1.2);  % 绘制海岸线,颜色为黑色hold on%%[0.68, 0.85, 0.9]
end
box on
% 设置视角为 2D 视图
view(2);
% 导出图像
export_fig('China_sea_version11.jpg','-r600')
% print('China_sea_version1','-dpdf','-fillpage')

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词