Преобразуйте многоугольную область, чтобы исправить поверхности и вершины
[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