closePolygonParts

Закройтесь все звенит в многослойном многоугольнике

Синтаксис

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

Описание

[xdata, ydata] = closePolygonParts(xdata, ydata) гарантирует, что каждый звенит в многослойном (NaN- разделенный) многоугольник “закрывается” путем повторения стартовой точки в конце каждого звонка, если начальные и конечные точки не уже идентичны. Координатные векторы xdata и ydata должен соответствовать в размере и иметь идентичный NaN местоположения.

[lat, lon] = closePolygonParts(lat, lon, angleunits) работает с данными долготы широты и составляет долготу, переносящуюся с периодом 360 если angleunits 'degrees' и 2*pi если angleunits 'radians'. Для звонка, который будет рассмотрен закрытыми, широты его первых и последних вершин должны соответствовать точно, но их долготы должны только совпадать по модулю с соответствующим периодом. Такие звонки возвращены неизменные.

Примеры

свернуть все

Создайте два вектора из плоских координат.

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)
xClosed = 1×10

    1.0000         0    2.0000    1.0000       NaN    0.5000    0.5000    1.0000    1.0000    0.5000

yClosed = 1×10

         0    1.0000    2.0000         0       NaN    0.8000    1.0000    1.0000    0.8000    0.8000

Отобразите все переменные.

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

Создайте многоугольник 2D части на основе данных о береговых линиях. Первым звонком является Антарктида. Долгота его первой вершины-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
Для просмотра документации необходимо авторизоваться на сайте