Calculate the largest, smallest diameter and the centroid of a polyshape (irregula rpolygon) from a set of points
조회 수: 8 (최근 30일)
이전 댓글 표시
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
채택된 답변
Matt J
2022년 9월 8일
편집: Matt J
2022년 9월 8일
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
Matt J
2022년 9월 9일
Can you please tell me what the problem in this code:
The code doesn't include the lines that compute thetamin and thetamax.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Elementary Polygons에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!