[mapserver-users] abutters lists....

woodbri at swoodbridge.com woodbri at swoodbridge.com
Tue Nov 19 21:20:30 EST 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