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