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