File Exchange

image thumbnail

Polycut2

version 1.1.0.0 (5.82 KB) by Paul
Remove polygon holes by connecting contours and holes

2 Downloads

Updated 13 Oct 2015

View License

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');

Comments and Ratings (0)

Updates

1.1.0.0

Fixed case with degenerate holes (< 2 vertices)

MATLAB Release Compatibility
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux