[GRASS-dev] [bug #2793] (grass) v.segment: side offset is ignored

Hamish hamish_nospam at yahoo.com
Thu May 3 05:53:27 EDT 2007


Markus Neteler via RT wrote:
> https://intevation.de/rt/webrt?serial_num=2793
> 
> Apparently Vect_point_on_line() lacks support for side offset. Indeed,
> it doesn't even have such a parameter.
> 
> We can now either remove all the side_offset stuff from the manual
> page or convince a developer to expand Vect_point_on_line(). The
> functions used in v.buffer/v.parallel might be helpful in this regard.


Vect_point_on_line() is fine, the adjustment should come just after:



ret = Vect_point_on_line ( LPoints, offset1, &x, &y, &z, &angle, NULL);

/* Should Vect_point_on_line be passed the side offset here? */
/***  (YES) ***/

if(side_offset != 0.0)    better? if(fabs(side_offset) > 0.0)
  shift_point_90(&x, &y, side_offset, angle);
...
Vect_append_point ( SPoints, x, y, z );


if we know the slope of the line at the point (angle*), it is easy
enough to calculate a point perpendicular to it (in the x,y plane)
offset by a certain distance with a little trig.

Vect_point_on_line()
  *angle     - pointer to angle of line in that point (radians, 
               counter clockwise from x axis) or NULL


with luck the line direction is ok- shift off to the left or right?

can anyone compose a nicer example for the v.segment help page?
(v.to.points -n or -v to get points?)

or is <side offset> for a threshold? (I'm not really sure how v.segment
is supposed to work)

For 6.2 we should <!-- comment out --> the references to it in the help
page.


Hamish




More information about the grass-dev mailing list