I have a set of points
Pts[a_,b_,c_]:={{a, b}, {b, a}, {c, a}, {a, c}, {b, c}, {c, b}}
which define a convex polygon and I would like to find its area. There is a simple method but it requires listing the points in counterclockwise order, but I don't know (in general) how to put them in this order. (Leaving them in their given order produces a self-intersecting polygon with a too-small area.) What can I do here?
I could imagine a sorting routine of some kind (find the middle and order by $\theta$? but probably there could be issues) or maybe there is some built-in method. In any case I certainly don't want to iterate over possible orders, since those grow very quickly and clearly it isn't the right thing to do.
An answer addressing my special case is sufficient, but I would be interested in a general method that works with an arbitrary set of points defining a convex polygon.
ConvexHull
to give sensible results.ConvexHull[{{4, 3}, {3, 4}, {2, 4}, {4, 2}, {3, 2}, {2, 3}}]
gives{4, 1, 2, 3, 6, 5}
. $\endgroup$FindCurvePath
to get your polygon points in order... no guarantees of it working for all input though (in fact, it might fail for anything other than small/toy problems). BTW, this is a duplicate: mathematica.stackexchange.com/q/9406/5 $\endgroup$