Polyarea for noncontinuous shapes
Ältere Kommentare anzeigen
Using a series of points, I would like to calculate the area the shape creates. For example, the following: x=(-.24 -.29 -.19 -.31 -.14 -.15 -.34 -.03 -.31 -.01 -.23 -.19 -.13 -.09) y=(-.01 -.07 -.06 -.05 -.03 0 .05 .07 .11 .15 .19 .21 .26 .27) doesn't graph as a continuous ellipsoid and as such the polyarea function doesn't work appropriately. I tried converting the points from cart2pol and back using pol2cart but that only creates a continual ellipsoid for shapes where the point (0,0) lies inside. For shapes where (0,0) does not lie inside (such as the example with the points given) this does not work. Can anyone suggest a way to correctly calculate the area of these? Thank you!
3 Kommentare
Sean de Wolski
am 8 Dez. 2011
It's not clear what you're after. Perhaps you could post a picture of the expectations (points/shapes etc.)?
In the mean time, I might recommend reading Steven Lord's reply in this old newsreader thread:
http://www.mathworks.com/matlabcentral/newsreader/view_thread/256591
Laura Kloepper
am 8 Dez. 2011
Sean de Wolski
am 8 Dez. 2011
I don't follow on xb/yb being 2xn? They're lists of x/y coordinates right? So why shouldn't they be 1xn or nx1? I think this is a place where picture=='1000words';
Antworten (2)
Laura Kloepper
am 8 Dez. 2011
0 Stimmen
2 Kommentare
Sean de Wolski
am 8 Dez. 2011
Are the rows of xb and yb identical? How were they generated from your above points?
Laura Kloepper
am 8 Dez. 2011
Sean de Wolski
am 8 Dez. 2011
So you do want the convex hull! That simplifies it a lot.
x=[-.24 -.29 -.19 -.31 -.14 -.15 -.34 -.03 -.31 -.01 -.23 -.19 -.13 -.09];
y=[-.01 -.07 -.06 -.05 -.03 0 .05 .07 .11 .15 .19 .21 .26 .27];
tri = DelaunayTri(x',y');
[junk, the_area] = convexHull(tri);
Or you can skip the Delaunay triangulation all together and use the second output of convhull:
[junk, the_area] = convhull(x',y');
1 Kommentar
Laura Kloepper
am 8 Dez. 2011
Kategorien
Mehr zu Delaunay Triangulation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!