Inner offset Polygons

Erik Demaine edemaine at mit.edu
Thu Aug 29 12:23:30 PDT 2002


Dear Bradford,

Yes, if you want general orthogonal offsets, you'll need to compute the
straight skeleton.  Once you have the straight skeleton, it is not hard to
compute offsets.  It is useful to have extra combinatorial information about
the straight skeleton: each skeleton edge is the bisector of two polygon edges,
so you can store the two polygon edges next to each skeleton edge.
Now, to compute an offset, pick a point on the straight skeleton of the
appropriate distance to the appropriate edge, and construct parallels to the
polygon edges and reflect whenever you hit an edge of the straight skeleton.

There are existing implementations of the straight skeleton which you may
want to use.  I think this is a recent one:
        http://fractal.dam.fmph.uniba.sk/~sccg/proceedings/1998/Felkel.ps.gz

Hope this helps,
Erik
-- 
Erik Demaine  |  edemaine at mit.edu  |  http://theory.lcs.mit.edu/~edemaine/

On Wed, 28 Aug 2002, Bradford Cox wrote:

>  Hello all, I am trying to solve a problem which is the calculation of an
> inner offset polygon based on a set of original points and a given offset
> distance. It is acceptable for the inner polygon to not be a "mirror" image
> of the original polygon since certain sides will converge to zero length,
> etc. Currently my focus has been in the area of straight skeletons. I intend
> on first creating a straight skeleton and then somehow generating the sides
> of the new inner polygon based on the the skeleton lines. (I am not sure how
> to do this just yet!) Does anyone have any suggestions for either the
> straight skeleton approach or some other approach? Thanks, Bradford Cox


-------------
The compgeom mailing lists: see
http://netlib.bell-labs.com/netlib/compgeom/readme.html
or send mail to compgeom-request at research.bell-labs.com with the line:
send readme
Now archived at http://www.uiuc.edu/~sariel/CG/compgeom/maillist.html.



More information about the Compgeom-announce mailing list