Calculate the largest, smallest diameter and the centroid of a polyshape (irregula rpolygon) from a set of points
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Tesla
el 8 de Sept. de 2022
Comentada: Matt J
el 9 de Sept. de 2022
I have a set of points (x,y) for a polyshape (almost 120 coordinates), I want to find the largest, smallest diameter and the centroid of this irregular polygon.
1 comentario
Respuesta aceptada
Matt J
el 8 de Sept. de 2022
Editada: Matt J
el 8 de Sept. de 2022
If the min and max feret diameters are what you want, then one approach would be,
pgon=nsidedpoly(4,'Radius',0.5); %input polyshape
fun=@(theta) feretDiam(pgon.Vertices,theta);
Theta=linspace(-pi,pi,1e4);
%Min Diameter
[~,i0]=min(fun(Theta));
[thetamin,minDiam]=fminsearch(@(t)fun(t),Theta(i0));
minDiam
%Max Diameter
[~,i0]=max(fun(Theta));
[thetamax,maxDiam]=fminsearch(@(t)-fun(t),Theta(i0));
maxDiam=-maxDiam
function d=feretDiam(V,theta)
p=V*[cos(theta);sin(theta)];
d=max(p,[],1)-min(p,[],1);
end
14 comentarios
Matt J
el 9 de Sept. de 2022
Can you please tell me what the problem in this code:
The code doesn't include the lines that compute thetamin and thetamax.
Más respuestas (0)
Ver también
Categorías
Más información sobre Elementary Polygons en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!