overlapping polygons translation to non overlapping polygons
Afficher commentaires plus anciens
how can i translate the overlapping polygos to new location so that there is no overlap.
A=[];
N = 20;
for i=1:N
X = randn(N,2);
R = sqrt(rand(N,1));
X = R .* X ./ sqrt(sum(X.^2,2));
X=.05.*X;
XX=X(:,1);
XY=X(:,2);
XX=XX+rand;
XY=XY+rand;
K=convhull(XX,XY);
polyin=polyshape(XX(K),XY(K));
polyarray=regions(polyin);
AB=[XX(K),XY(K)];
A=[A; AB];
plot(XX(K),XY(K));
hold on
end

Réponse acceptée
Plus de réponses (1)
Steven Lord
le 29 Nov 2018
1 vote
Use area and intersect (possibly with polybuffer) as shown in this post on Loren Shure's blog to identify overlapping polygons. Alternately if you're using release R2018a, use the overlaps function introduced in that release. [The blog post was written before R2018a was released and so couldn't use overlaps.]
When you've identified polygons that overlap, translate the corresponding polyshape or polyshapes to move it or them to a different location then retest for overlaps.
1 commentaire
jahanzaib ahmad
le 1 Déc 2018
Catégories
En savoir plus sur Polygonal Shapes dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
