What is the fastest way to find the "visual" center of an irregularly shaped polygon?
point, polygon
Solution
If you can convert the polygon into a binary image, then you can use the foundation that exists in the field of image processing, e.g.: A Fast Skeleton Algorithm on Block Represented Binary Images.
But this is not really reasonable in the general case, because of discretization errors and extra work.
However, maybe you find these useful:
- Straight skeleton of a simple polygon
- Determining the Skeleton of a Simple Polygon in (Almost) Linear Time
EDIT: Maybe you want to look for the point that is the center of the largest circle contained in the polygon. It is not necessarily always in the observed centre, but most of the time would probably give the expected result, and only in slightly pathological cases something that is totally off.
Problem
I need to find a point that is a visual center of an irregularly shaped polygon. By visual center, I mean a point that appears to be in the center of a large area of the polygon visually. The application is to put a label inside the polygon. Here is a solution that uses inside buffering: https://web.archive.org/web/20150708063910/http://proceedings.esri.com/library/userconf/proc01/professional/papers/pap388/p388.htm If this is to be used, what is an effective and fast way to find the buffer? If any other way is to be used, which is that way? A good example of really tough polygons is a giant thick U (written in Arial Black or Impact or some such font).