Largest triangle from a set of points

Posted by Faken on Stack Overflow See other posts from Stack Overflow or by Faken
Published on 2010-06-17T20:20:46Z Indexed on 2010/06/17 20:23 UTC
Read the original article Hit count: 238

Filed under:
|

I have a set of random points from which i want to find the largest triangle by area who's verticies are each on one of those points.

So far I have figured out that the largest triangle's verticies will only lie on the outside points of the cloud of points (or the convex hull) so i have programmed a function to do just that (using Graham scan in nlogn time).

However that's where I'm stuck. The only way I can figure out how to find the largest triangle from these points is to use brute force at n^3 time which is still acceptable in an average case as the convex hull algorithm usually kicks out the vast majority of points. However in a worst case scenario where points are on a circle, this method would fail miserably.

Dose anyone know an algorithm to do this more efficiently?

Note: I know that CGAL has this algorithm there but they do not go into any details on how its done. I don't want to use libraries, i want to learn this and program it myself (and also allow me to tweak it to exactly the way i want it to operate, just like the graham scan in which other implementations pick up collinear points that i don't want).

© Stack Overflow or respective owner

Related posts about c++

Related posts about computational-geometry