# [geos-devel] left and right buffer

Stephen Woodbridge woodbri at swoodbridge.com
Thu May 18 13:55:08 EDT 2006

```Martin,

I have done a lot of development in CAD/CAM and I think I would take the
machining approach to the offset problem. This would be to generate the
profile of a ball rolling a long the profile. Then you will have to
decide how to handle the end caps which really only defines where you
initially place the ball. The two logical placement positions are:

1) center the ball on an extension of the profile

------profile----------->#<--r--.

2) center the ball normal to the end of the profile

------profile----------->#
^
|
r
|
.

where # = end of the profile
r = is the ball radius
. = center of the ball

In the very narrow V case using option 2) I would think t you would get
something like:

..
.  .
#    #
\  /
\/

Sorry for the crude graphics but the .... lines should be shown normal
to the \ and / lines. For case 1) you would have two arcs starting on
the extensions of the \ and / lines arcing downward toward the center
and meeting at the angle bisector of \ and / if they are equal in
length, which is the degenerate case I think you were asking about.

I have not checked out any of the degenerate cases for the buffer
algorithm, but I assume you are doing the reasonable thing. In which
case, I would kind of expect that if I generated a buffer along a
profile and then extended the original profile from its ends until it
went through the buffer and then wrapped the ends around to the right or
left side to meet and form a polygon and intersected the polygon with
the buffer then I would get the same as if I had generated the buffer on
the right or left respectively.

But, this might not be what ESRI does, so it would be nice if Jing or
others with access to ESRI products could post some images of what ESRI
does if that is the use case that needs to be matched.

-Steve

Martin Davis wrote:
> Yes, I know that negative buffer won't doesn't handle left/right - that
> buffers.
>
> What I'm looking for is some examples of what left/right buffers look
> like (especially for pathological cases such as very narrow V shapes)
>
> Martin Davis, Senior Technical Architect
> Vivid Solutions Inc.      www.vividsolutions.com
> Suite #1A-2328 Government Street Victoria, B.C. V8T 5G5
> Phone: (250) 385 6040 - Local 308 Fax: (250) 385 6046
>
>
>
>>-----Original Message-----
>>From: geos-devel-bounces at geos.refractions.net
>>[mailto:geos-devel-bounces at geos.refractions.net] On Behalf Of
>>zhangjing
>>Sent: May 17, 2006 6:28 PM
>>To: GEOS Development List
>>Subject: Re: RE: [geos-devel] left and right buffer
>>
>>
>>Our client need a tool like ArcToolbox Buffer which has
>>functionality of Left/Right/Full buffer, and i believe
>>negative distances could not be applied to polyline geometry.
>>
>>Thanks.
>>
>>
>>
>>
>>
>>>Am I missing something?  Isn't this the functionality that negative
>>>buffer distances gives today?
>>>
>>>Martin Davis, Senior Technical Architect
>>>Vivid Solutions Inc.      www.vividsolutions.com
>>>Suite #1A-2328 Government Street Victoria, B.C. V8T 5G5
>>>Phone: (250) 385 6040 - Local 308 Fax: (250) 385 6046
>>>
>>>
>>>
>>>>-----Original Message-----
>>>>From: geos-devel-bounces at geos.refractions.net
>>>>[mailto:geos-devel-bounces at geos.refractions.net] On Behalf Of
>>>>Stephen Woodbridge
>>>>Sent: May 17, 2006 10:06 AM
>>>>To: GEOS Development List
>>>>Subject: Re: [geos-devel] left and right buffer
>>>>
>>>>
>>>>Hi Martin,
>>>>
>>>>I think a useful variant of this for polygons it to be able
>>>>to specify
>>>>inside or outside, so you could effectively grow and shrink
>>>>the polygon.
>>>>
>>>>The "grow" option is great for finding abutters, and I think
>>>>the buffer
>>>>
>>>>The "shrink" option is great for defining/showing boundary offsets
>>>>within a lot that might be needed to insure zoning rules.
>>>>
>>>>-Steve
>>>>
>>>>Martin Davis wrote:
>>>>
>>>>>I'm curious what your use case is for this
>>
>>functionality.  Can you
>>
>>>>>post some sample data that you want L/R buffers for, and
>>
>>perhaps an
>>
>>>>>image of what you expect the results to look like?
>>>>>
>>>>>Martin Davis, Senior Technical Architect
>>>>>Vivid Solutions Inc.      www.vividsolutions.com
>>>>>Suite #1A-2328 Government Street Victoria, B.C. V8T 5G5
>>>>>Phone: (250) 385 6040 - Local 308 Fax: (250) 385 6046
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>-----Original Message-----
>>>>>>From: geos-devel-bounces at geos.refractions.net
>>>>>>[mailto:geos-devel-bounces at geos.refractions.net] On Behalf Of
>>>>>>zhangjing
>>>>>>Sent: May 17, 2006 12:10 AM
>>>>>>To: geos-devel at geos.refractions.net
>>>>>>Subject: [geos-devel] left and right buffer
>>>>>>
>>>>>>
>>>>>>hi,
>>>>>>
>>>>>>Is there any way in GEOS to calculate geometry's left or right
>>>>>>buffer ?
>>>>>>
>>>>>>TIA
>>>>>>Jing Zhang
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>_______________________________________________
>>>>>>geos-devel mailing list
>>>>>>geos-devel at geos.refractions.net
>>>>>>http://geos.refractions.net/mailman/listinfo/g> eos-devel
>>>>>>
>>>>>
>>>>>_______________________________________________
>>>>>geos-devel mailing list
>>>>>geos-devel at geos.refractions.net
>>>>>http://geos.refractions.net/mailman/listinfo/geos-devel
>>>>>
>>>>
>>>>_______________________________________________
>>>>geos-devel mailing list
>>>>geos-devel at geos.refractions.net
>>>>http://geos.refractions.net/mailman/listinfo/geos-devel
>>>>
>>>
>>>_______________________________________________
>>>geos-devel mailing list
>>>geos-devel at geos.refractions.net
>>>http://geos.refractions.net/mailman/listinfo/geos-devel
>>
>>
>>
>>
>>_______________________________________________
>>geos-devel mailing list
>>geos-devel at geos.refractions.net
>>http://geos.refractions.net/mailman/listinfo/g> eos-devel
>>
>
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel
>

```