Polycut2

Remove polygon holes by connecting contours and holes

You are now following this Submission

POLYCUT2(lat,long) connects the contour and holes of polygons. In contrast to POLYCUT, POLYCUT2 finds an output polygon with smaller total contour length and avoids cases where the cuts interesect with the polygon contours.
Example:
% outer contour
ov = [0,0; 0,1; 2,1; 2,2; 0,2; 0,3; 3,3; 3,0];
% hole 1
iv1 = [0.5,0.3; 1.5,0.3; 1.5,0.7; 0.5,0.7];
% hole 2
iv2 = [0.5,2.3; 1.5,2.3; 1.5,2.7; 0.5,2.7];
v = [ov;nan(1,2);iv1;nan(1,2);iv2];
[v1(:,1),v1(:,2)] = polycut(v(:,1),v(:,2));
[v2(:,1),v2(:,2)] = polycut2(v(:,1),v(:,2));

% red is old method, blue is new one
figure;
line(v1(:,1),v1(:,2),'Color','red');
figure;
line(v2(:,1),v2(:,2),'Color','blue');

Cite As

Paul (2026). Polycut2 (https://se.mathworks.com/matlabcentral/fileexchange/53469-polycut2), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.1.0.0

Fixed case with degenerate holes (< 2 vertices)

1.0.0.0