CLIPLINE Clip a line with a box.
EDGE = clipLine(LINE, BOX);
LINE is a straight line given as a 4 element row vector: [x0 y0 dx dy],
with (x0 y0) being a point of the line and (dx dy) a direction vector,
BOX is the clipping box, given by its extreme coordinates:
[xmin xmax ymin ymax].
The result is given as an edge, defined by the coordinates of its 2
extreme points: [x1 y1 x2 y2].
If line does not intersect the box, [NaN NaN NaN NaN] is returned.
Function works also if LINE is a N-by-4 array, if BOX is a Nx4 array,
or if both LINE and BOX are N-by-4 arrays. In these cases, EDGE is a
N-by-4 array.
Example
line = [30 40 10 0];
box = [0 100 0 100];
res = clipLine(line, box)
res =
0 40 100 40
See also:
lines2d, boxes2d, edges2d
clipEdge, clipRay, clipLine3d
Package: matgeom