Does anyone know an algorithm to solve the following problem:

Given a sequence of points in the plane that represent a polygon (not necessarily convex), output the maximum possible radius of a circle that can fit inside this polygon.

It would be good if it was below *O*(*n*^{2}), but any references are welcome. Thanks ahead.

Auto comment: topic has been updated by kowalsk1 (previous revision, new revision, compare).If it was convex, you could make inequalities of form Ax+By+Cr>=0. For non-convex you need something different.

Binary search for R. if you choose R to be your radius check if size R circle fits inside.

You probably will need veronoi diagrams.

How do you determine in which point should be center of the circle?

All right, I already understand how. If somebody still curious — visit this article.

In each vertex with reflex angle generate two new polygons without that vertex. Black is non-convex. Red and green are new polygons. And after having only convex ones get maximum of circles in each polygon. Algorithm at emaxx for convex.

Where's O(2^n) subpolygons...

You right my first solution is too slow. I think shrink sides algorithm can be modified for non-convex by adding some vertices and redefining next and prev calculation based on the picture above.

Btw, why did you not just google your question? I found answer for that in few minutes.