利用Matlab绘制地图的超详细教程

目录
  • MappingToolbox工具箱安装
    • 局部区域陆地绘制
    • 映射贴图
    • 纹理贴图
    • 线路图绘制
    • usamap
    • axesm
  • 一些地图绘制可用简易函数
    • subplot
    • tightmap
    • 边框标签网格快速开关函数
    • colormap
    • colorbar

worldmap和usamap是axesm的子类,worldmap是用于生成世界地图坐标区域,usamap用于生成美国地图坐标区域,本文先在worldmap函数基础上讲解如何导入各种数据绘制各种类型图片,略提一下如何使用usamap,再讲解axesm的各种属性以满足更多元化的地图绘制需求,并在最后总结地图绘制其他可用函数。

Mapping Toolbox工具箱安装

请通过如下步骤安装工具箱:

1.点击附加功能:

2.搜索Mapping Toolbox,并点击进入介绍界面:

3.点安装一路点确定:

worldmap及usamap

首先是最简单的海岸线世界地图:

% 创建世界地图坐标区域
worldmap('World')

% 导入海岸线数据
load coastlines

% 绘制海岸线
plotm(coastlat,coastlon)

附带陆地区域、湖泊、河流、城市的世界地图:

% 创建世界地图坐标区域
ax=worldmap('World');
setm(ax,'Origin',[0 180 0])

% 绘制陆地
land=shaperead('landareas.shp','UseGeoCoords',true);
geoshow(ax,land,'FaceColor',[0.5 0.7 0.5])
% 绘制湖泊
lakes=shaperead('worldlakes.shp','UseGeoCoords',true);
geoshow(lakes,'FaceColor','blue')
% 绘制河流
rivers=shaperead('worldrivers.shp','UseGeoCoords',true);
geoshow(rivers, 'Color', 'blue')
% 绘制城市
cities=shaperead('worldcities.shp','UseGeoCoords',true);
geoshow(cities,'Marker','.','Color','red')

可以看到绘制的主要流程就是:

  • 创建地图坐标区域(通过axesm、worldmap、usamap)
  • 导入数据(通过load或者shaperead)通过geoshow、plotm、scatterm
  • 绘制图像(大部分普通坐标区域axes中出现的函数加个m就变成了用于地图坐标区域的函数)

worldmap创建地图坐标区域部分:

大家肯定想知道worldmap()里面支持哪些参数,这个连官网都没有写,事实上只要无参数运行一下函数worldmap()就会蹦出来一个地区选择框,大家可以试一下啊:

同时worldmap函数支持直接输入经纬度范围,例如:

latlim=[-50 50];
lonlim=[160 -30];
worldmap(latlim,lonlim)

数据导入部分:

其中可以通过load导入的MATLAB自带数据有:

  1. coastlines - 世界海岸线经纬度矢量
  2. conus - 用于连接的美国(conus)、五大湖、州际边界的经纬度阵列
  3. geoid60c - 全球大地水准面高度网格(以米为单位)/度
  4. greatlakes - 显示结构阵列中的北美五大湖
  5. korea5c - 朝鲜半岛的地形和水深测量
  6. koreaEQdata - 地震位置和震级
  7. layermtx - 用于教学的地理定位地形网格
  8. mapmtx - 用于教学的地理定位地形网格
  9. moonalb20c - 克莱门汀全球月球反照率图
  10. moontopo60c - 月球的克莱门汀激光雷达地形
  11. oceanlo - 显示结构数组中的海洋遮罩多边形
  12. russia - 网格化土地、水域、边界、外部区域
  13. seatempm -全球多通道海面温度网格
  14. stars - 4500+颗恒星的天体坐标和星等
  15. usamtx - 美国各州的数据网格,每度五个单元格
  16. usgslulegend - USGS 土地利用类别列表

其中可以通过shaperead导入的MATLAB自带数据有:

  1. landareas.shp - 全球陆地区域多边形
  2. tsunamis.shp - 全球1950-2006 年中到大型海啸的百分比
  3. usastatehi.shp - 高分辨率多边形美国各州形状
  4. usastatelo.shp - 低多边形美国各州形状
  5. worldcities.shp - 全球318个城市或人口稠密位置坐标
  6. worldlakes.shp - 世界上 37 个最大的多边形湖泊和内陆海域
  7. worldrivers.shp - 世界主要河流的线条形状
  8. boston_placenames.shp - 美国马萨诸塞州波士顿地名
  9. boston_roads.shp - 美国马萨诸塞州波士顿道路
  10. concord_hydro_area.shp - 美国马萨诸塞州康科德水域
  11. concord_hydro_line.shp - 美国马萨诸塞州康科德水路
  12. concord_roads.shp - 美国马萨诸塞州康科德道路

这些信息来自:\mcr\toolbox\map\mapdata\Contents.m

局部区域陆地绘制

首先绘制个南极洲,南极洲的陆地信息可以从landareas.shp中提取 :

% 创建世界地图坐标区域并将区域设置为南极洲
worldmap('antarctica')

% 从陆地区域数据文件中获取南极洲大陆数据并绘图
antarctica = shaperead('landareas.shp', 'UseGeoCoords', true,...
  'Selector',{@(name) strcmp(name,'Antarctica'), 'Name'});
patchm(antarctica.Lat, antarctica.Lon, [0.5 1 0.5])

除此之外其他面积较大,可以通过如上方式获取的区域还有:

‘Antarctica’‘Africa and Eurasia’‘North and South America’‘Greenland’‘Australia’‘Baffin Island’‘Ellesmere Island’‘New Guinea’‘Great Britain’‘Borneo’‘Honshu’‘Victoria Island’‘Celebes’‘New Zealand North Island’‘Sumatra’‘Madagascar’‘Iceland’‘New Zealand South Island’‘Newfoundland’‘Luzon’‘Devon Island’‘Ireland’‘Cuba’‘Java’‘Mindanao’

例如我绘制中国附近的亚欧非大陆陆地:

% 创建世界地图坐标区域并将区域设置为中国
worldmap('China')

% 从陆地区域数据文件中获取亚欧非大陆数据并绘图
antarctica = shaperead('landareas.shp', 'UseGeoCoords', true,...
  'Selector',{@(name) strcmp(name,'Africa and Eurasia'), 'Name'});
patchm(antarctica.Lat, antarctica.Lon, [0.5 0.7 0.5])

% 加个海岸线美化一下
load coastlines
plotm(coastlat,coastlon)

映射贴图

南美洲和中太平洋的大地水准面高度:

要绘制高度映射图只需要将geoshow的’DisplayType’属性设置为’surface’。

注意,官网的写法,[geoid60c,geoid60cR] = egm96geoid 2020a已经被移除,如果是之后的版本,请不要按照官网而是按照如下写法进行书写。

% 大地水准面高度数据及海岸线数据导入
load geoid60c.mat
load coastlines

% 创建某经纬度范围世界地图坐标区域
latlim=[-50 50];
lonlim=[160 -30];
worldmap(latlim,lonlim)

% 绘制图像
geoshow(geoid60c,geoid60cR,'DisplayType','surface')
geoshow(coastlat,coastlon,'Color','k')

要是觉得不好看,可以增添陆地区域和更改颜色,例如像下面这么做:

% 大地水准面高度数导入
load geoid60c.mat

% 创建某经纬度范围世界地图坐标区域
latlim=[-50 50];
lonlim=[160 -30];
ax=worldmap(latlim,lonlim);

% 设置颜色
C=[222,238,209;126,190,174;144,213,220;
    33,118,155;30,69,128;20,49,127]./255;

geoshow(ax,geoid60c,geoid60cR,'DisplayType','surface')
colormap(C) % 应用颜色

land=shaperead('landareas.shp','UseGeoCoords',true);
geoshow(ax,land,'FaceColor',[0.5 0.7 0.5])

我们发现有些大地水准面高度比0要高,就会画到板块上面,同时颜色插值不够密集,简单处理一下:

% 大地水准面高度数导入
load geoid60c.mat

% 创建某经纬度范围世界地图坐标区域
latlim=[-50 50];
lonlim=[160 -30];
ax=worldmap(latlim,lonlim);

% 设置颜色并插值细化
C=[222,238,209;126,190,174;144,213,220;
    33,118,155;30,69,128;20,49,127]./255;
C1(:,1)=interp1(0:5,C(:,1),0:.5:5,'linear')';
C1(:,2)=interp1(0:5,C(:,2),0:.5:5,'linear')';
C1(:,3)=interp1(0:5,C(:,3),0:.5:5,'linear')';

% 下面减了个100为了让最大值也小于0
geoshow(ax,geoid60c-100,geoid60cR,'DisplayType','surface')
colormap(C1) % 应用颜色

land=shaperead('landareas.shp','UseGeoCoords',true);
geoshow(ax,land,'FaceColor',[0.5 0.7 0.5])

纹理贴图

朝鲜半岛为例:

要绘制颜色映射图只需要将geoshow的’DisplayType’属性设置为’texturemap’。

% 导入数据并绘制贴图版地图
load korea5c
worldmap(korea5c,korea5cR);
geoshow(korea5c,korea5cR,'DisplayType','texturemap')

% 修改颜色
demcmap(korea5c)

这个demcmap是一个可以描述为一个需要同时设置海洋色带和陆地色带的colormap,下面是MATHWORKS自带的例子:

load korea5c
worldmap(korea5c,korea5cR);
geoshow(korea5c,korea5cR,'DisplayType','texturemap')

cmapsea=[.8  0 .8;  0 0 .8];
cmapland=[.7  0  0; .8 .8 0; 1  1 .8];
demcmap(korea5c,32,cmapsea,cmapland)

颜色可能不是太好看哈,下面给个我自己弄的配色:

load korea5c
worldmap(korea5c,korea5cR);
geoshow(korea5c,korea5cR,'DisplayType','texturemap')

cmapsea=[20,49,127;30,69,128;33,118,155;144,213,220]./255;
cmapland=[10,133,102;197,226,102]./255;
demcmap(korea5c,32,cmapsea,cmapland)

线路图绘制

以美国马萨诸塞州康科德道路道路为例

roads=shaperead('concord_roads.shp');
lineStyle = makesymbolspec('Line',...
 {'CLASS',[1 3], 'LineStyle',':'},...
 {'CLASS',[4 6],'LineStyle','-.'});
mapshow(roads,'SymbolSpec',lineStyle);

各种路径一共有六类,不但可以为不同设置线性,还可以设置颜色,粗细等各种信息:

roads=shaperead('concord_roads.shp');
lineStyle=makesymbolspec("Line", ...
    {'CLASS',2,'Color','#A2142F'}, ...
    {'CLASS',3,'Color','#77AC30'}, ...
    {'CLASS',6,'Color','#0072BD'}, ...
    {'Default','Color','k'});
mapshow(roads,'SymbolSpec',lineStyle);

roads=shaperead('concord_roads.shp');
lineStyle=makesymbolspec("Line", ...
    {'CLASS',[1 3],'LineStyle',':','LineWidth',2}, ...
    {'CLASS',[4 6],'LineStyle','-.','LineWidth',0.25});
mapshow(roads,'SymbolSpec',lineStyle);

usamap

usamap("conus");

states=shaperead("usastatelo.shp",'UseGeoCoords',true);
% 俩州离太远画不开,不要
for i=length(states):-1:1
    if states(i).Name=="Alaska"||states(i).Name=="Hawaii"
        states(i)=[];
    end
end

faceColors=makesymbolspec('Polygon',{'INDEX',[1 numel(states)],'FaceColor',...
  polcmap(numel(states))});
geoshow(states, 'DisplayType','polygon','SymbolSpec', faceColors)

再换个颜色叭

usamap("conus");

states=shaperead("usastatelo.shp",'UseGeoCoords',true);
% 俩州离太远画不开,不要
for i=length(states):-1:1
    if states(i).Name=="Alaska"||states(i).Name=="Hawaii"
        states(i)=[];
    end
end

% 插值定义颜色
C=[222,238,209;126,190,174;144,213,220;
    33,118,155;30,69,128;20,49,127]./255;
C1(:,1)=interp1(0:5,C(:,1),linspace(0,5,numel(states)),'linear')';
C1(:,2)=interp1(0:5,C(:,2),linspace(0,5,numel(states)),'linear')';
C1(:,3)=interp1(0:5,C(:,3),linspace(0,5,numel(states)),'linear')';

faceColors=makesymbolspec('Polygon',{'INDEX',[1 numel(states)],'FaceColor',C1});
geoshow(states, 'DisplayType','polygon','SymbolSpec', faceColors)

axesm

创建一个robinson样式,带框的地图坐标区域:

axesm('MapProjection','robinson','Frame','on')

创建好的axesm可以通过setm修改样式:

axesm('MapProjection','robinson','Frame','on')
setm(gca,'FLineWidth',3,'Grid','on')

展示一下所有类型的地图:

mapType={'balthsrt', 'behrmann', 'bsam', 'braun', 'cassinistd', 'cassini', 'ccylin', 'eqacylin', 'eqdcylin', 'giso', 'gortho', 'gstereo', 'lambcyln',...
'mercator', 'miller', 'pcarree', 'tranmerc', 'trystan', 'utm', 'wetch', 'apianus', 'collig', 'craster', 'eckert1', 'eckert2', 'eckert3', 'eckert4',...
'eckert5', 'eckert6', 'flatplrp', 'flatplrq', 'flatplrs', 'fournier', 'goode', 'hatano', 'kavrsky5', 'kavrsky6', 'loximuth', 'modsine', 'mollweid',...
'putnins5', 'quartic', 'robinson', 'sinusoid', 'wagner4', 'winkel', 'eqaconicstd', 'eqaconic', 'eqdconicstd', 'eqdconic', 'lambertstd', 'lambert',...
'murdoch1', 'murdoch3', 'polyconstd', 'polycon', 'vgrint1', 'bonne', 'werner', 'breusing', 'eqaazim', 'eqdazim', 'globe', 'gnomonic', 'ortho',...
'stereo', 'ups', 'vperspec', 'wiechel', 'aitoff', 'bries', 'hammer'};

for i=1:72
    subplot(9,8,i)
    axesm('MapProjection',mapType{i},'Frame','on','FLineWidth',3,'Grid','on')
    tightmap
end

展示一些网格设置:

% 某些视角下的地图坐标区
axesm('MapProjection','ortho','Frame','on',...
    'grid','on','Origin',[40,40,14])

MLineLimit是经线的纬度范围,MLineException是不受经线长度范围影响的经线,通过设置这两个参数可以不让所有经线都汇集到极地以显的杂乱。

% 某些视角下的地图坐标区,经线的纬度范围[-75 75]
axesm('MapProjection','ortho','Frame','on',...
    'grid','on','Origin',[40,40,14],...
    'MLineLimit',[-75 75])

% 某些视角下的地图坐标区,其他经线的纬度范围[-75 75],四条经线绘制完全
axesm('MapProjection','ortho','Frame','on',...
    'grid','on','Origin',[40,40,14],...
    'MLineLimit',[-75 75],...
    'MLineException',[-90,0,90,180])

与之相对应的还有PLineLimit、PLineException

% 某些视角下的地图坐标区
axesm('MapProjection','ortho','Frame','on',...
    'grid','on','Origin',[40,40,14],...
    'PLineLimit',[-75 75])

更多详细信息可以去这里查看:The Map Grid - MATLAB & Simulink - MathWorks 中国

来个用axesm绘图的实例:

% 某些视角下的地图坐标区,其他经线的纬度范围[-75 75],四条经线绘制完全
axesm('MapProjection','ortho','Frame','on',...
    'grid','on','Origin',[40,40,14],...
    'MLineLimit',[-75 75],...
    'MLineException',[-90,0,90,180])
% 导入海岸线数据
load coastlines

% 绘制海岸线
plotm(coastlat,coastlon)

一些地图绘制可用简易函数

subplot

首先值得一提的是subplot函数依旧适用:

例如:

load korea5c

subplot(1,2,1)
worldmap('China')
antarctica = shaperead('landareas.shp', 'UseGeoCoords', true,...
  'Selector',{@(name) strcmp(name,'Africa and Eurasia'), 'Name'});
patchm(antarctica.Lat, antarctica.Lon, [0.5 0.7 0.5])

subplot(1,2,2)
worldmap('Europe')
antarctica = shaperead('landareas.shp', 'UseGeoCoords', true,...
  'Selector',{@(name) strcmp(name,'Africa and Eurasia'), 'Name'});
patchm(antarctica.Lat, antarctica.Lon, [0.5 0.7 0.5])

tightmap

取消图像的白边,非常好用

subplot(1,2,1)
axesm('MapProjection','robinson','Frame','on','Grid','on')

subplot(1,2,2)
axesm('MapProjection','robinson','Frame','on','Grid','on')
tightmap

边框标签网格快速开关函数

边框,网格,经线标签,纬线标签快速设置,类似hold on\grid on:

framem on
gridm on
mlabel on
plabel on
%
framem off
gridm off
mlabel offf
plabel off

colormap

还可以设置其他自带颜色

% 大地水准面高度数据及海岸线数据导入
load geoid60c.mat
load coastlines

subplot(1,2,1)
% 创建某经纬度范围世界地图坐标区域
latlim=[-50 50];
lonlim=[160 -30];
ax1=worldmap(latlim,lonlim);

% 绘制图像
geoshow(geoid60c,geoid60cR,'DisplayType','surface')
colormap(ax1,summer)
geoshow(coastlat,coastlon,'Color','k')

subplot(1,2,2)
% 创建某经纬度范围世界地图坐标区域
latlim=[-50 50];
lonlim=[160 -30];
ax2=worldmap(latlim,lonlim);

% 绘制图像
geoshow(geoid60c,geoid60cR,'DisplayType','surface')
colormap(ax2,pink)
geoshow(coastlat,coastlon,'Color','k')

colorbar

% 导入数据并绘制贴图版地图
load korea5c
worldmap(korea5c,korea5cR);
geoshow(korea5c,korea5cR,'DisplayType','texturemap')

% 修改颜色
demcmap(korea5c)

% 添加颜色栏
colorbar

以上就是利用Matlab绘制地图的超详细教程的详细内容,更多关于Matlab绘制地图的资料请关注我们其它相关文章!

(0)

相关推荐

  • 基于Matlab实现中国象棋的示例代码

    目录 设置变量 绘图 绘制棋盘 绘制棋子 棋子移动规则 判断是否可以移动 移动棋子 吃子 设置变量 nRowNum = 8; % 画布行数 nColNum = 9; % 画布列数 offset_x = 0;% 红车坐标起点 offset_y = 0;% 红车坐标起点 chess_name = {{'帥','仕','相','马','車','炮','兵'},{'將','仕','象','马','車','炮','卒'}}; chess_type = [5 4 3 2 1 2 3 4 5 6 6 7 7

  • 利用Matlab绘制各类特殊图形的实例代码

    Matlab绘图介绍 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作.这类操作将图形的每个图形元素(如坐标轴.曲线.文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分. Matlab绘制特殊图形 1. 绘制极坐标图 说明:使用polarplot函数绘制极

  • matlab画三维图像的示例代码(附demo)

    当我们学习surface命令时,已经看到了三维作图的一些端倪.在matlab中我么可以调用mesh(x,y,z)函数来产生三维图像. 首先,我们用z=cos(x)sin(y)在-2pi ≤x,y≤ 2pi内的图像来看看: [x,y] = meshgrid(-2*pi:0.1:2*pi); z = cos(x).*sin(y); mesh(x,y,z),xlabel('x'),ylabel('y'),zlabel('z') 显示图像如下: 同样用mesh命令产生z = ye-(x2+y2)的三维图

  • MATLAB数学建模之画图汇总

    1. 二维数据曲线图 1.1 绘制二维曲线的基本函数 1.plot()函数 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横.纵坐标的二维曲线. 例: t=0:0.1:2*pi; x=2 * t; y=t.*sin(t).*sin(t); plot(x, y); 2. 含多个输入参数的plot函数 plot函数可以包含若干组向量对,每一组可以绘制出一条曲线.含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,-,xn,

  • 利用Python Matlab绘制曲线图的简单实例

    目录 一.简介 二.绘制图形 1.第一个曲线图 2.第二个图形 3.第三个图形 4.第四个图形 5.画出指定区间的一个多项式函数: 总结 一.简介 我们在这里采用Python中的matplotlib来实现曲线图形的绘制.matplotlib是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图. 二.绘制图形 1.第一个曲线图 代码: 具体的绘制的代码如下所示: import matplotlib.pyplot as plt import numpy as np r = np.

  • 利用Matlab绘制地图的超详细教程

    目录 MappingToolbox工具箱安装 局部区域陆地绘制 映射贴图 纹理贴图 线路图绘制 usamap axesm 一些地图绘制可用简易函数 subplot tightmap 边框标签网格快速开关函数 colormap colorbar worldmap和usamap是axesm的子类,worldmap是用于生成世界地图坐标区域,usamap用于生成美国地图坐标区域,本文先在worldmap函数基础上讲解如何导入各种数据绘制各种类型图片,略提一下如何使用usamap,再讲解axesm的各种

  • Python matplotlib超详细教程实现图形绘制

    目录 前言 1. matplotlib.patches概述 2. 绘制图形方法 3. 绘制图形步骤 4. 绘制图形属性 设置透明度 设置颜色 5. 小试牛刀 前言 我们前面对matplotlib模块底层结构学习,对其pyplot类(脚本层)类提供的绘制折线图.柱状图.饼图.直方图等统计图表的相关方法,列举往期文章如下. Python利用 matplotlib 绘制直方图 Python用 matplotlib 绘制柱状图 python 用matplotlib绘制折线图详情 Python利用matp

  • 利用Matlab绘制好看的弦图

    目录 封面图 使用教程 1.数据格式 2.修饰弦 3.圆弧状方块修饰 4.字体调整 5.显示和隐藏刻度 工具函数完整代码 封面图绘制代码 封面一 封面二 弦图在python中以及R中非常常见,但是MATLAB中却始终没有相关函数,file exchange中也没有工作做的较为完备的弦图绘制函数(不过现在有了,我已经往上面也传了一份hiahiahia) 仅工具函数主体部分约300行,字符数约8000,能画出与R语言同等质量的弦图实属不易,希望能有个`点赞``!!! 由于工具函数过长,将被放在最后展

  • Springboot启动扩展点超详细教程小结

    1.背景 Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片.Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制.很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配. 我非常喜欢这种自动装配的机制,所以在自己开发中间件和公共依赖工具的时候也会用到这个特性.让使用者以最小的代价接入.想要把自动装配玩的转,就必须要了解spring对于bean的构造生命周期以及各个扩展接口.当然了解了bean

  • 使用Docker+jenkins+python3环境搭建超详细教程

    前言: 自动化写好后需要在服务器上每日定时运行遇到,这样的一个问题,Jenkins容器是在docker中安装的 ,然后从git上拉取代码 发现代码在jenkins容器的目录当中,运行的时候提示没有安装python环境还第三方库. 解决方法有3种: 第一种:启动jenkins容器时 将容器的目录挂载到宿主机目录上去执行(方法不能实现)Pass 第二种:在jenkins上创建本地节点,将代码拉取到本地 然后去运行本地项目(在本机上使用比较方便,但是局限性比较小) 第三种:重新封装jenkins镜像,

  • Tomcat服务器入门超详细教程

    目录 一,Tomcat的一些概念 –1,服务器 –2,web服务器 –3,Tomcat服务器 二,使用Tomcat –1,下载安装 –2,启动&关闭 –3,测试 三,Tomcat目录结构 –1,核心目录 –2,修改默认端口号8080 四,访问自己的项目资源 –1,在webapps中添加自己简单的项目 –2,测试 –3,一个完整的web应用结构 五,在IDEA中整合Tomcat –1,操作如下图 –2,测试 一,Tomcat的一些概念 –1,服务器 服务器:分为服务器硬件和服务器软件.在硬件服务器

  • 利用Matlab绘制一个可爱的南瓜灯

    目录 效果及原理 原理 实现方法 完整代码 效果及原理 效果如下: 调一下数据还能改成三角眼: 原理 南瓜主体函数从知友 [九章算法] 的一张图而来,大体是瓜身瓜柄分段函数,然后绕着z轴旋转一周得到曲面,我对数值做了微调,原图及原始数据: 实现方法 这里我故意保留了网格让南瓜看起来有一点布娃娃的感觉,(大家也可以根据自己喜好改写,例如将’EdgeColor’设置为’none’并打个光啥的) % 构造网格 [t,p]=meshgrid(linspace(0,2*pi,200),linspace(0

  • 利用Matlab绘制一款专属进度条

    目录 1.使用效果 2.制作历程 3.函数用法 4.工具函数完整代码 waitBar_SL1.m waitBar_SL2.m waitBar_SL3.m waitBar_SL4.m 5.下载地址 1.使用效果 2.制作历程 首先我有个程序需要用到进度条,我首先试了一下MATLAB自带的进度条: bar=waitbar(0,'读取数据中...'); % waitbar显示进度条 for i=1:1000 A(i)=rand(); str=['计算中...',num2str(100*i/1000),

  • 利用Matlab绘制有趣图像的示例代码

    目录 1.随机樱花树 2.苹果绘制 3.南瓜绘制 4.一堆三角形绘制 5.月饼绘制 6.大钻石绘制 7.有趣曲线1 8.有趣曲线2 9.有趣曲线3——蝴蝶曲线 10.有趣曲线4——心形曲线 11.有趣曲线5 12.会害羞的含羞草 13.随机雪景 1.随机樱花树 function sakura % @author:slandarer % 随机形状二叉树樱花树绘制 hold on,axis equal axis(0.5+[-10,50,0,50]) set(gca,'xtick',[],'ytick

  • VMware虚拟机安装苹果Mac OS的超详细教程

    目录 总结 有时为了工作需要我们要在苹果系统Mac OS上安装相应的软件进行测试,而平时用的最多又是Windows操作系统,总不能为了一两次测试学习而去购买一台Mac电脑,所以利用VMware虚拟机来安装Mac OS就是最好的选择了. 本文就来分享一下利用VMware 14来安装Mac OS X 10系统,由于VMware运行起来相当地吃内存,所以想要顺利跑起Mac系统,最好是在一个大内存的Windows电脑上安装并运行VMware. 安装之前的准备 VMware Workstation VMw

随机推荐