[mapserver-users] abutters lists....
woodbri at swoodbridge.com
woodbri at swoodbridge.com
Tue Nov 19 18:20:30 PST 2002
Yes, that is exactly right, if not better said. :)
After doing some research on the web, this looks like a potential
candidate for code that might do what we need. This problem has been
researched extensively for doing NC machining.
Anyway, part way down this page:
http://www.cosy.sbg.ac.at/~held/projects/vroni/vroni.html
is a link to email the author for info on how to get his ANSI C
source and to discuss usage issues if any. The 6th example down the
page shows offset contours of a very complex polygon.
-Steve W.
On 19 Nov 2002 at 20:15, Norman Vine wrote:
> woodbri at swoodbridge.com writes:
> >
> > The buffering algorithm is tricky, but an interesting problem.
> > Growing the vectors from the centriod only works for convex
> > polygons, it will fail for concave polygons like:
> >
> > +---------+ +---------+
> > | | | |
> > | +------+ |
> > | |
> > +----------------------------+
> >
> > The right way to do this, I think, is to walk around the polygon and
> > construct offsets, then interest the offsets and re-chain the
> > segments into a new polygon, you also have to eliminate loops on the
> > new polygon caused by the fact that the offset can eliminate some
> > features from the new polygon. For example with a large enough
> > offset the notch in the above would be eliminated from the topology
> > of the new offset polygon changing it from 6 vertices to 4 vertices.
>
> or another way of saying the 'same'
>
> draw a circle of the desired radius around each point
>
> then the projection of the original linesegments out to the
> corresponding tangent vectors of the circles and the outer
> 'arcs' of said circles are the segments of the 'buffer' polygon
>
> Cheers
>
> Norman
>
>
More information about the MapServer-users
mailing list