MATLAB: Hi, I am finding area enclosed by convex hull using delayunayt​​riangulat​i​on,,,i have pasted the code…I just need someone to tell me..the area i got is right according to the code

dt

theta1=[88,89,90,91,92,94,96,94,90,89,-100,-102,-104,-105,-104,-102,-101,-100];
radius1=[5,7,11,17,26,39,46,44,32,3,0,18,34,32,33,29,28,20];
%subplot(211)
theta_rad=theta1*pi/180;
polar(theta_rad, radius1, 'b*');
hold on;
[x, y] = pol2cart(theta_rad, radius1);
k = convhull(x, y);
xch = x(k);
ych = y(k);
[thetaCH1, rhoCH1] = cart2pol(xch, ych);
%subplot(212)
polar(thetaCH1, rhoCH1, 'ro-');
DT = delaunayTriangulation(theta_rad(:),radius1(:));
[U,v]=convexHull(DT);
i got v=130.8648…. is it the right way to do it ?

Best Answer

NO. You cannot compute a convex hull of your points when they are represented in polar coordinates!!!!! If you did, the result will be nonsensical. And the area it would compute will certainly be nonsense.
Instead, convert the polar coordinates to cartesian coordinates, then compute the area of the convex hull in Cartesian coordiantes:
DT = delaunayTriangulation(x(:),y(:));
[H,A] = convexHull(DT);
A =
390.270316856299
Related Question