Test if a 3D point belongs to an edge. Usage B = isPointOnEdge3d(POINT, EDGE) B = isPointOnEdge3d(POINT, EDGE, TOL) Description B = isPointOnEdge3d(POINT, EDGE) with POINT being [xp yp zp], and EDGE being [x1 y1 z1 x2 y2 z2], returns TRUE if the point is located on the edge, and FALSE otherwise. B = isPointOnEdge3d(POINT, EDGE, TOL) Specify an optilonal tolerance value TOL. The tolerance is given as a fraction of the norm of the edge direction vector. Default is 1e-14. B = isPointOnEdge3d(POINTARRAY, EDGE) B = isPointOnEdge3d(POINT, EDGEARRAY) When one of the inputs has several rows, return the result of the test for each element of the array tested against the single parameter. B = isPointOnEdge3d(POINTARRAY, EDGEARRAY) When both POINTARRAY and EDGEARRAY have the same number of rows, returns a column vector with the same number of rows. When the number of rows are different and both greater than 1, returns a Np-by-Ne matrix of booleans, containing the result for each couple of point and edge. Examples % create a point array points = [10 10 20;15 10 20; 30 10 20]; % create an edge array vertices = [10 10 20;20 10 20;20 20 20;10 20 20]; edges = [vertices vertices([2:end 1], :)]; % Test one point and one edge isPointOnEdge3d(points(1,:), edges(1,:)) ans = 1 isPointOnEdge3d(points(3,:), edges(1,:)) ans = 0 % Test one point and several edges isPointOnEdge3d(points(1,:), edges)' ans = 1 0 0 1 % Test several points and one edge isPointOnEdge3d(points, edges(1,:))' ans = 1 1 0 % Test N points and N edges isPointOnEdge3d(points, edges(1:3,:))' ans = 1 0 0 % Test NP points and NE edges isPointOnEdge3d(points, edges) ans = 1 0 0 1 1 0 0 0 0 0 0 0 See also edges3d, points3d, isPointOnLine3d
Package: matgeom