[GRASS-dev] Differential Buffering: Part II

Trevor Wiens twiens at interbaun.com
Fri Mar 9 18:10:27 EST 2007


Well,

I gave it some thought and decided I would try a vector based solution
and made a modified version of v.buffer which accepts north, south,
east, and west scale parameters that can be used either with a distance
or a buffer column. 

The basic algorithm used a circle, and since a circle is in fact just a
special case of an ellipse I modified the code to have an elliptical
curve be calculated based on the four different scale parameters.

Now the code works just like v.buffer then all scale factors are equal.
However if there are big ranges in their values, I get splinters and I
don't understand why. I've attached a small jpg for visual reference.

FYI I copied some functions from Vlib buffer.c and needed to modify
parallel_line to parallel_diff_line
Vect_line_parallel to Vect_line_diff_parallel
Vect_line_buffer to Vect_line_diff_buffer

I also copied and left unmodified 
clean_parallel, point_in_buff, find_cross, vect

Any suggestions as to why this is happening would be appreciated. I can
post the code if needed.

Thanks

T
-- 
Trevor Wiens 
twiens at interbaun.com

The significant problems that we face cannot be solved at the same 
level of thinking we were at when we created them. 
(Albert Einstein)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: zingers.jpg
Type: image/jpeg
Size: 6282 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/grass-dev/attachments/20070309/800a866d/zingers.jpg


More information about the grass-dev mailing list