
Create coordinates on a convex hull
16 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kwek Lawrence
le 12 Sep 2019
Modifié(e) : Bruno Luong
le 12 Sep 2019
I have a convex hull, defined by
k=convhull(x,y)
P=[x(k),y(k)]
kS=polyshape(P)
kP=perimeter(kShape)
How can I divide the perimeter of the convex hull into n (e.g. 500) equal distance/lengths, and find the respective coordinates?
0 commentaires
Réponse acceptée
Bruno Luong
le 12 Sep 2019
Modifié(e) : Bruno Luong
le 12 Sep 2019
% test data
xy=rand(100,2);
P=xy(convhull(xy),:);
d=[0;cumsum(sqrt(sum(diff(P).^2,2)))];
xyi=interp1(d,P,linspace(0,d(end),501)); % first point ~= last point
plot(P(:,1),P(:,2),'or',xyi(:,1),xyi(:,2),'b.-');

0 commentaires
Plus de réponses (1)
Bjorn Gustavsson
le 12 Sep 2019
Perhaps this function is overkill, but to me it seems as if this FEX-contribution should help:
xy2sn, I don't know if it is the functionality of xy2sn or the sn2xy that most resembles your request.
Perhaps either of these contributions solves your problem better:
HTH
0 commentaires
Voir également
Catégories
En savoir plus sur Computational Geometry dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!