Problem: You have a set of n ordered x,y points that form a contour of polygon A that may or may not be concave. You must create a new polygon B with m points such that: 1. all points in A are contained within B 2. 20 <= m < n 3. B is the polygon in the set of all Bs with the smallest area 4. the algorithm must be reasonably fast and not overly complicated (i.e. no fast-fourier transforms lol!) I'd like (3) to be the optimal solution but it doesn't have to be since I think this would make the problem NP-hard. This solution is for practical purposes so I'm really looking for a practical solution. (1) Is critical so whatever the solution is it should be trivial to prove that (1) holds true. Have three solutions so far: 1. B is a square. 2. B is a circle with m points. 3. Construct B from A by removing concave points. Doesn't work with non-concave polygons however : / Each solutions is terrible in its own way. Edit: Also someone just found another solution. - Construct B from A by looping through each point "a" and taking the next two points "b" and "c". Then create a ray "ab" through "a" and "b". Move point "c" the minimum distance such that it is on the ray "ab". Remove point "b". This trick works only if point "b" is not concave. So when combined with (3) above we can handle both cases.