Clip a ray with a box. EDGE = clipRay(RAY, BOX); RAY is a straight ray given as a 4 element row vector: [x0 y0 dx dy], with (x0 y0) being the origin of the ray and (dx dy) its 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 the ray does not intersect the box, [NaN NaN NaN NaN] is returned. Function works also if RAY is a N-by-4 array, if BOX is a Nx4 array, or if both RAY and BOX are N-by-4 arrays. In these cases, EDGE is a N-by-4 array. See also: rays2d, boxes2d, edges2d, clipLine, drawRay
Package: matgeom