полибуфер

Создайте буфер вокруг точек или строк

Синтаксис

polyout = polybuffer(P,'points',d)
polyout = polybuffer(P,'lines',d)
polyout = polybuffer(P,'lines',d,'JointType',jt)
polyout = polybuffer(P,'lines',d,'JointType','miter','MiterLimit',lim)

Описание

пример

polyout = polybuffer(P,'points',d) возвращает объект polyshape с контурами, которые буферизуют 2D точки в P расстоянием d. Функция polybuffer вычисляет буфер путем взятия объединения кругов радиуса d, центрируемый в каждой точке в P. Первый столбец матричного P содержит x-координаты точек, чтобы буферизовать, и второй столбец содержит соответствующие y-координаты.

Если вы создаете объект polyshape polyout, можно анализировать его свойства или выполнить дополнительные вычисления с помощью функций polyshape. Например, можно получить доступ к вершинам, которые задают буферизированную форму со свойством polyout.Vertices, и можно построить график формы с помощью команды plot(polyout).

пример

polyout = polybuffer(P,'lines',d) возвращает объект polyshape с контурами, которые буферизуют линейные сегменты, заданные 2D точками в P. Функция polybuffer вычисляет буфер путем перемещения круга радиуса d вдоль линейных сегментов, созданных точками ввода, центрируемыми на линейных сегментах.

пример

polyout = polybuffer(P,'lines',d,'JointType',jt) задает, как места встречи конечных точек линейного сегмента (соединения) обработаны. Например, polybuffer(P,'lines',d,'JointType','square') смело встречает соединения.

polyout = polybuffer(P,'lines',d,'JointType','miter','MiterLimit',lim) задает предельный угол стыка, когда объединенный тип задан как 'miter'. Предельный угол стыка является максимальным допустимым отношением между расстоянием, объединенная вершина перемещена и буферное расстояние d. Предел lim должен быть больше, чем или равным 2.

Примеры

свернуть все

Создайте матрицу, которая содержит 2D координаты трех точек. Затем создайте объект polyshape, который буферизует каждую точку расстоянием 0,25 модулей.

P = [0 0; 1 1; 2 1];
polyout = polybuffer(P,'points',0.25)
polyout = 
  polyshape with properties:

      Vertices: [542x2 double]
    NumRegions: 3
      NumHoles: 0

Постройте график исходных точек и их буферных областей.

plot(P(:,1),P(:,2),'r.','MarkerSize',10)
hold on
plot(polyout)
axis equal

Создайте буферные области окружающие линейные сегменты.

Создайте матрицу 2D точек и вычислите объект polyshape, который буферизует линейные сегменты, соединяющие точки.

P = [0 0; 1 1; 2 1];
polyout1 = polybuffer(P,'lines',0.25);
plot(P(:,1),P(:,2),'r.','MarkerSize',10)
hold on
plot(polyout1)
axis equal
hold off

По умолчанию polybuffer закругляет соединения то подключение линейные сегменты. Можно управлять формой соединений при помощи пары "имя-значение" 'JointType'. Например, используйте значение 'miter', чтобы сохранить угол, соединяющий эти два линейных сегмента.

figure
polyout2 = polybuffer(P,'lines',0.25,'JointType','miter');
plot(P(:,1),P(:,2),'r.','MarkerSize',10)
hold on
plot(polyout2)
axis equal

Входные параметры

свернуть все

Введите вершины 2D точек, заданных как матрица с 2 столбцами. Первый столбец P содержит x-координаты, и второй столбец содержит соответствующие y-координаты.

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Буферное расстояние, заданное в виде положительного числа.

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Объединенный тип, заданный как одна из следующих опций:

  • вокруг Закруглите соединения.

  • 'square' — Смело встретьте соединения.

  • 'miter' — Сохраните угол в соединениях.

polybuffer применяет объединенный тип только там, где конечные точки двух линейных сегментов встречаются, а не в открытой конечной точке линейного сегмента.

Предельный угол стыка, заданный в виде числа, больше, чем или равный 2. Предельный угол стыка является отношением между расстоянием, объединенная вершина перемещена и буферное расстояние. Установка предельного угла стыка управляет заостренностью соединений.

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Смотрите также

|

Представленный в R2018a

Была ли эта тема полезной?