Преобразуйте многоугольную область, чтобы исправить поверхности и вершины
[F,V] = poly2fv(x,y)
[F,V] = poly2fv(x,y)
преобразовывает многоугольную область, представленную контурами (x,y)
в матрицу поверхностей, F
, и матрицу вершин, V
, который может использоваться с функцией patch
, чтобы отобразить область. Если полигон, представленный x
и y
, имеет несколько частей, или NaN
- разделенный векторный формат или формат массива ячеек могут использоваться. Функция poly2fv
создает треугольные поверхности.
Большинство функций Mapping Toolbox™ соответствует соглашению, что контуры человека с упорядоченными по часовой стрелке вершинами являются внешними контурами, и отдельные контуры с упорядоченными против часовой стрелки вершинами являются внутренними контурами. Несмотря на то, что функция poly2fv
игнорирует порядок вершины, необходимо следовать соглашению при создании контуров, чтобы гарантировать непротиворечивость другими функциями.
Отобразите прямоугольную область с двумя дырами с помощью одного объекта закрашенной фигуры.
% External contour, rectangle. x1 = [0 0 6 6 0]; y1 = [0 3 3 0 0]; % First hole contour, square. x2 = [1 2 2 1 1]; y2 = [1 1 2 2 1]; % Second hole contour, triangle. x3 = [4 5 4 4]; y3 = [1 1 2 1]; % Compute face and vertex matrices. [f, v] = poly2fv({x1, x2, x3}, {y1, y2, y3}); % Display the patch. patch('Faces', f, 'Vertices', v, 'FaceColor', 'r', ... 'EdgeColor', 'none'); axis off, axis equal