主要内容

本页采用了机器翻译。点击此处可查看英文原文。

closePolygonParts

关闭多段多边形中的所有环

语法

[xdata, ydata] = closePolygonParts(xdata, ydata)
[lat, lon] = closePolygonParts(lat, lon, angleunits)

说明

[xdata, ydata] = closePolygonParts(xdata, ydata) 确保多段(以 NaN 分隔)多边形中的每个环都是“闭合”的,方法是在每个环的末端重复其起始点,除非起始点和终点原本就相同。坐标向量 xdataydata 必须大小一致,且 NaN 位置相同。

[lat, lon] = closePolygonParts(lat, lon, angleunits) 处理经纬度数据,并根据以下规则处理经度绕回:当 angleunits'degrees' 时,使用 360 作为周期;当 angleunits'radians' 时,使用 2*pi 作为周期。要使一个环被视为闭环,其起始顶点和末端顶点的纬度必须完全一致,但经度只需在适当的周期模下相等即可。此类环将原样返回。

示例

全部折叠

创建两个平面坐标向量。

xOpen = [1 0 2 NaN 0.5 0.5 1 1];
yOpen = [0 1 2 NaN 0.8 1 1 0.8];

根据这些坐标创建一个闭合多边形。

[xClosed, yClosed] = closePolygonParts(xOpen,yOpen);

显示所有变量。

whos
  Name         Size            Bytes  Class     Attributes

  xClosed      1x10               80  double              
  xOpen        1x8                64  double              
  yClosed      1x10               80  double              
  yOpen        1x8                64  double              

从 MAT 文件中加载海岸线数据。

load coastlines

根据海岸线数据,构造一个由两部分组成的多边形。第一个环是南极洲。其第一个顶点的经度为-180,最后一个顶点的经度为 180。第二个环是一个小岛,从中移除了最后一个顶点——该顶点是第一个顶点的副本。

[latparts, lonparts] = polysplit(coastlat, coastlon);
latparts{2}(end) = [];
lonparts{2}(end) = [];
latparts(3:end) = [];
lonparts(3:end) = [];
[lat, lon] = polyjoin(latparts, lonparts);

分析 closePolygonParts 是如何处理这两个环的。在这两种情况下,第一个顶点和最后一个顶点都不相同。然而,当这座小岛重新封闭时,南极洲却依然如故。

[latClosed, lonClosed] = closePolygonParts(lat, lon, 'degrees');
[latpartsClosed, lonpartsClosed] = polysplit(latClosed, lonClosed);
lonpartsClosed{1}(end) - lonpartsClosed{1}(1)  % Result is 360
ans = 
360
lonpartsClosed{2}(end) - lonpartsClosed{2}(1)  % Result is 0
ans = 
0

版本历史记录

在 R2006a 中推出