Scale a polygon such that all the points lie within the original polygon

geometrylinear algebrapolygonsvectors

With a convex shape, like a circle, we can create a set of similar shapes, all contained within one another, by centering the shape at the origin and scaling it.

So we can get the following:

enter image description here

With a concave shape however, cetnering it at its centroid and scaling won't keep the points inside the original polygon, we would get something like this:

enter image description here

(Diagram was made by hand so this may not be the mathematical result, but it illustrates the point)

My goal is to be able to deform the original polygon such that the result converges to a single point contained in the original polygon, and every new ring is fully contained in the previous ring, as in this image:

enter image description here

How can this be done?

EDIT:

Maintaining the topology in new rings isn't necessary as long as the number of points doesn't change, so if the shape passes from being concave to being convex, that;s fine as well.

Example:

enter image description here

Best Answer

You can achieve your goal by choosing a point $O$ inside your shape and constructing then the other shapes via a homothetic transformation of center $O$ and ratio $<1$.

enter image description here

EDIT.

This works only if the shape is a star domain and $O$ one of its centers.