A regular polygon could be handled this way.

n = number of sides in the polygon (n>2)

s = the length of one side of the polygon.

d = the distance or offset of a parallel line for the next smaller polygon.

A regular polygon has a center point (or radius).

= central angle for 1 side of the polygon.

The perpendicular distance from a side to the radius point:

The maximum number of offsets possible in a regular polygon.

An irregular polygon is complicated. (see attached image)

It is necessary to know the coordinates of each vertex. For each side the offset would have to be intersected with the offset to the side preceding and following. Those intersection points would have to be checked against ALL of the other intersection points to insure a "neat" reduction of the polygon.

Eventually this problem becomes two polytons that almost touch.

Should the procedure terminate?

Or should the routine continue with a left polygon and and right polygon?

An irregular polygon is not impossible -- just complicated.