X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fgeometry-1.5.0%2Fpolygons2d%2Fdoc-cache;fp=octave_packages%2Fgeometry-1.5.0%2Fpolygons2d%2Fdoc-cache;h=4e97b01eab9acdeab14bdbeedfeb1161c0d475c1;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/geometry-1.5.0/polygons2d/doc-cache b/octave_packages/geometry-1.5.0/polygons2d/doc-cache new file mode 100644 index 0000000..4e97b01 --- /dev/null +++ b/octave_packages/geometry-1.5.0/polygons2d/doc-cache @@ -0,0 +1,883 @@ +# Created by Octave 3.6.2, Sun Jun 10 09:53:40 2012 UTC +# name: cache +# type: cell +# rows: 3 +# columns: 19 +# name: +# type: sq_string +# elements: 1 +# length: 9 +curvature + + +# name: +# type: sq_string +# elements: 1 +# length: 1038 + -- Function File: KAPPA = curvature (T, PX, PY,METHOD,DEGREE) + -- Function File: KAPPA = curvature (T, POLY,METHOD,DEGREE) + -- Function File: KAPPA = curvature (PX, PY,METHOD,DEGREE) + -- Function File: KAPPA = curvature (POINTS,METHOD,DEGREE) + -- Function File: [KAPPA POLY T] = curvature (...) + Estimate curvature of a polyline defined by points. + + First compute an approximation of the curve given by PX and PY, + with the parametrization T. Then compute the curvature of + approximated curve for each point. METHOD used for approximation + can be only: 'polynom', with specified degree. Further methods + will be provided in a future version. T, PX, and PY are N-by-1 + array of the same length. The points can be specified as a single + N-by-2 array. + + If the argument T is not given, the parametrization is estimated + using function `parametrize'. + + If requested, POLY contains the approximating polygon evlauted at + the parametrization T. + + See also: parametrize, polygons2d + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 51 +Estimate curvature of a polyline defined by points. + + + +# name: +# type: sq_string +# elements: 1 +# length: 20 +distancePointPolygon + + +# name: +# type: sq_string +# elements: 1 +# length: 229 + -- Function File: DIST = distancePointPolygon (POINT,POLY) + Compute shortest distance between a point and a polygon + + See also: polygons2d, points2d, distancePointPolyline, + distancePointEdge, projPointOnPolyline + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 56 +Compute shortest distance between a point and a polygon + + + + +# name: +# type: sq_string +# elements: 1 +# length: 21 +distancePointPolyline + + +# name: +# type: sq_string +# elements: 1 +# length: 453 + -- Function File: DIST = distancePointPolyline (POINT,POLY) + Compute shortest distance between a point and a polyline Example: + pt1 = [30 20]; + pt2 = [30 5]; + poly = [10 10;50 10;50 50;10 50]; + distancePointPolyline([pt1;pt2], poly) + ans = + 10 + 5 + + See also: polygons2d, points2d, distancePointEdge, + projPointOnPolyline + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 80 +Compute shortest distance between a point and a polyline Example: + p + + + +# name: +# type: sq_string +# elements: 1 +# length: 16 +distancePolygons + + +# name: +# type: sq_string +# elements: 1 +# length: 114 + -- Function File: DIST = distancePolygons (POLY1,POLY2) + Compute the shortest distance between 2 polygons + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 49 +Compute the shortest distance between 2 polygons + + + + +# name: +# type: sq_string +# elements: 1 +# length: 11 +drawPolygon + + +# name: +# type: sq_string +# elements: 1 +# length: 589 + -- Function File: H = drawPolygon (COORD) + -- Function File: H = drawPolygon (PX, PY) + -- Function File: H = drawPolygon (POLYS) + Draw a polygon specified by a list of points. + + drawPolygon(COORD); Packs coordinates in a single [N*2] array. + + drawPolygon(PX, PY); Specifies coordinates in separate arrays. + + drawPolygon(POLYS) Packs coordinate of several polygons in a + cell array. Each element of the array is a Ni*2 double array. + + H = drawPolygon(...); Also return a handle to the list of line + objects. + + See also: polygons2d, drawCurve + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 45 +Draw a polygon specified by a list of points. + + + +# name: +# type: sq_string +# elements: 1 +# length: 13 +expandPolygon + + +# name: +# type: sq_string +# elements: 1 +# length: 930 + -- Function File: LOOPS = expandPolygon (POLY, DIST) + Expand a polygon by a given (signed) distance + + Associates to each edge of the polygon POLY the parallel line + located at distance DIST from the current edge, and compute + intersections with neighbor parallel lines. The resulting + polygon is simplified to remove inner "loops", and can be + disconnected. The result is a cell array, each cell containing + a simple linear ring. + + This is a kind of dilation, but behaviour on corners is different. + This function keeps angles of polygons, but there is no direct + relation between length of 2 polygons. + + It is also possible to specify negative distance, and get all + points inside the polygon. If the polygon is convex, the result + equals morphological erosion of polygon by a ball with radius + equal to the given distance. + + See also: polygons2d + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 46 +Expand a polygon by a given (signed) distance + + + + +# name: +# type: sq_string +# elements: 1 +# length: 16 +medialAxisConvex + + +# name: +# type: sq_string +# elements: 1 +# length: 878 + -- Function File: [N E] = medialAxisConvex (POLYGON) + Compute medial axis of a convex polygon + + POLYGON is given as a set of points [x1 y1;x2 y2 ...], returns + the medial axis of the polygon as a graph. N is a set of nodes. + The first elements of N are the vertices of the original polygon. + E is a set of edges, containing indices of source and target + nodes. Edges are sorted according to order of creation. Index + of first vertex is lower than index of last vertex, i.e. edges + always point to newly created nodes. + + Notes: - Is not fully implemented, need more development + (usually crashes for polygons with more than 6-7 points...) + - Works only for convex polygons. - Complexity is not optimal: + this algorithm is O(n*log n), but linear algorithms exist. + + See also: polygons2d, bisector + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 40 +Compute medial axis of a convex polygon + + + + +# name: +# type: sq_string +# elements: 1 +# length: 11 +parametrize + + +# name: +# type: sq_string +# elements: 1 +# length: 1240 + -- Function File: PAR = parametrize (POLY) + -- Function File: PAR = parametrize (PX,PY) + -- Function File: PAR = parametrize (...,NORMALIZE) + Parametrization of a curve, based on edges length + + Returns a parametrization of the curve defined by the serie of + points, based on euclidean distance between two consecutive points. + POLY is a N-by-2 array, representing coordinates of vertices. The + result PAR is N-by-1, and contains the cumulative length of edges + until corresponding vertex. The function also accepts the polygon + as two inputs PX and PY representinx coordinates x and y + respectively. When optional argument NORMALIZE is non-empty PAR + is rescaled such that the last element equals 1, i.e. + `PAR(end)==1'. + + Example + % Parametrize a circle approximation + poly = circleToPolygon([0 0 1], 200); + p = parametrize(poly); + p(end) + ans = + 6.2829 + p = parametrize(poly,'norm'); + p(end) + ans = + 1 + p = parametrize(poly,true); + p(end) + ans = + 1 + + See also: polygons2d, polylineLength + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 50 +Parametrization of a curve, based on edges length + + + + +# name: +# type: sq_string +# elements: 1 +# length: 13 +polygon2shape + + +# name: +# type: sq_string +# elements: 1 +# length: 544 + -- Function File: SHAPE = polygon2shape (POLYGON) + Converts a polygon to a shape with edges defined by smooth + polynomials. + + POLYGON is a N-by-2 matrix, each row representing a vertex. SHAPE + is a N-by-1 cell, where each element is a pair of polynomials + compatible with polyval. + + In its current state, the shape is formed by polynomials of degree + 1. Therefore the shape representation costs more memory except for + colinear points in the polygon. + + See also: shape2polygon, simplifypolygon, polyval + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 71 +Converts a polygon to a shape with edges defined by smooth polynomials. + + + +# name: +# type: sq_string +# elements: 1 +# length: 12 +polygonLoops + + +# name: +# type: sq_string +# elements: 1 +# length: 647 + -- Function File: LOOPS = polygonLoops (POLY) + Divide a possibly self-intersecting polygon into a set of simple + loops + + POLY is a polygone defined by a series of vertices, LOOPS is a + cell array of polygons, containing the same vertices of the + original polygon, but no loop self-intersect, and no couple of + loops intersect each other. + + Example: + poly = [0 0;0 10;20 10;20 20;10 20;10 0]; + loops = polygonLoops(poly); + figure(1); hold on; + drawPolygon(loops); + polygonArea(loops) + + See also: polygons2d, polygonSelfIntersections + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 71 +Divide a possibly self-intersecting polygon into a set of simple loops + + + + +# name: +# type: sq_string +# elements: 1 +# length: 24 +polygonSelfIntersections + + +# name: +# type: sq_string +# elements: 1 +# length: 675 + -- Function File: PTS = polygonSelfIntersections (POLY) + -- Function File: [PTS POS1 POS2] = polygonSelfIntersections (POLY) + Find-self intersection points of a polygon + + Return the position of self intersection points + + Also return the 2 positions of each intersection point (the + position when meeting point for first time, then position when + meeting point for the second time). + + Example + # use a '8'-shaped polygon + poly = [10 0;0 0;0 10;20 10;20 20;10 20]; + polygonSelfIntersections(poly) + ans = + 10 10 + + See also: polygons2d, polylineSelfIntersections + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 43 +Find-self intersection points of a polygon + + + + +# name: +# type: sq_string +# elements: 1 +# length: 10 +polygons2d + + +# name: +# type: sq_string +# elements: 1 +# length: 7637 + -- Function File: polygons2d () + Description of functions operating on 2D polygons + + The 'polygons' module contains functions operating on shapes + composed of a vertex list, like polygons or polylines. + + We call 'polyline' the curve defined by a series of vertices. A + polyline can be either closed or open, depending on whether the + last vertex is connected to the first one or not. This can be + given as an option is some functions in the module. A + 'polygon' is the planar domain delimited by a closed polyline. We + sometimes want to consider 'complex polygons', whose boundary is + composed of several disjoint domains. The domain defined by a + single closed polyline is called 'simple polygon'. We call + 'curve' a polyline with many vertices, such that the polyline + can be considered as a discrete approximation of a "real" curve. + + A simple polygon or polyline is represented by a N-by-2 array, + each row of the array representing the coordinates of a vertex. + Simple polygons are assumed to be closed, so there is no need to + repeat the first vertex at the end. As both polygons and + polylines can be represented by a list of vertex coordinates, + some functions also consider the vertex list itself. Such + functions are prefixed by 'pointSet'. Also, many functions + prefixed by 'polygon' or 'polyline' works also on the other type + of shape. + + For multiple-connected polygons, the different connected + boundaries are separated by a row [NaN NaN]. + + For some functions, the orientation of the polygon can be + relevant: CCW stands for 'Conter-Clockwise' (positive + orientation), CW stands for 'Clockwise'. + + Polylines are parametrized in the following way: * the i-th + vertex is located at position i-1 * points of the i-th edge have + positions ranging linearly from i-1 to i The parametrization + domain for an open polyline is from 0 to Nv-1, and from 0 to Nv + for a closed polyline (positions 0 and Nv correspond to the same + point). + + Example: % Simple polygon: P1 = [1 1;2 1;2 2;1 2]; + drawPolygon(P1); axis([0 5 0 5]); % Multiple polygon: P2 = + [10 10;40 10;40 40;10 40;NaN NaN;20 20;20 30;30 30;30 20]; + figure;drawPolygon(P2); axis([0 50 0 50]); + + Point Sets pointSetBounds - Bounding box of a set of + points pointSetsAverage - Compute the average of + several point sets minimumCaliperDiameter - Minimum caliper + diameter of a set of points findPoint - Find + index of a point in an set from its coordinates + + Polylines polylinePoint - Extract a point from a + polyline polylineLength - Return length of a polyline + given as a list of points polylineCentroid - Compute + centroid of a curve defined by a series of points + polylineSubcurve - Extract a portion of a polyline + reversePolyline - Reverse a polyline, by iterating + vertices from the end isPointOnPolyline - Test if a + point belongs to a polyline projPointOnPolyline - Compute + position of a point projected on a polyline + distancePointPolyline - Compute shortest distance between a + point and a polyline distancePolylines - Compute the + shortest distance between 2 polylines intersectPolylines + - Find the common points between 2 polylines + polylineSelfIntersections - Find self-intersections points of a + polyline + + Curves (polylines with lot of vertices) parametrize + - Parametrization of a curve, based on edges length curvature + - Estimate curvature of a polyline defined by points + cart2geod - Convert cartesian coordinates to + geodesic coord. geod2cart - Convert geodesic + coordinates to cartesian coord. curveMoment - + Compute inertia moment of a 2D curve curveCMoment - + Compute centered inertia moment of a 2D curve curveCSMoment + - Compute centered scaled moment of a 2D curve + + Polygons polygonPoint - Extract a point from a + polygon polygonSubcurve - Extract a portion of a + polygon reversePolygon - Reverse a polygon, by + iterating vertices from the end projPointOnPolygon - + Compute position of a point projected on a polygon splitPolygons + - Convert a NaN separated polygon list to a cell array + of polygons clipPolygon - Clip a polygon with a + rectangular box clipPolygonHP - Clip a polygon with + a Half-plane defined by a directed line intersectLinePolygon + - Intersection points between a line and a polygon + intersectRayPolygon - Intersection points between a ray and + a polygon polygonSelfIntersections - Find-self intersection + points of a polygon convexHull - Convex hull of a + set of points polygonLoops - Divide a possibly + self-intersecting polygon into a set of simple loops + expandPolygon - Expand a polygon by a given (signed) + distance medialAxisConvex - Compute medial axis of a + convex polygon + + Measures on Polygons isPointInPolygon - Test if a point + is located inside a polygon polygonContains - Test if + a point is contained in a multiply connected polygon + polygonCentroid - Compute the centroid (center of mass) + of a polygon polygonArea - Compute the signed area + of a polygon polygonLength - Perimeter of a polygon + polygonNormalAngle - Compute the normal angle at a vertex + of the polygon polygonBounds - Compute the bounding + box of a polygon distancePointPolygon - Compute shortest + distance between a point and a polygon distancePolygons + - Compute the shortest distance between 2 polygons + + Triangles isPointInTriangle - Test if a point is located + inside a triangle triangleArea - Area of a triangle + + Functions from stochastic geometry steinerPoint - + Compute steiner point (weighted centroid) of a polygon + steinerPolygon - Create a Steiner polygon from a set of + vectors supportFunction - Compute support function of + a polygon convexification - Compute the + convexification of a polygon + + Input, Output and conversions readPolygon - Read a + polygon stored in a file polygonToRow - Convert + polygon coordinates to a row vector rowToPolygon - + Create a polygon from a row vector rectAsPolygon - + Convert a (centered) rectangle into a series of points + + Drawing functions drawPolyline - Draw a polyline + specified by a list of points drawPolygon - Draw a + polygon specified by a list of points fillPolygon + - Fill a polygon specified by a list of points + + Credits: * function intersectPolylines uses the 'interX' + contribution from "NS" (file exchange 22441, called + 'curve-intersections') + + ---- Author: David Legland e-mail: david.legland@grignon.inra.fr + created the 07/11/2005. Homepage: + `http://matgeom.sourceforge.net/' + `http://www.pfl-cepia.inra.fr/index.php?page=geom2d' Copyright + INRA - Cepia Software Platform. + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 50 +Description of functions operating on 2D polygons + + + + +# name: +# type: sq_string +# elements: 1 +# length: 25 +polylineSelfIntersections + + +# name: +# type: sq_string +# elements: 1 +# length: 830 + -- Function File: PTS = polylineSelfIntersections (POLY) + Find self-intersections points of a polyline + + Return the position of self intersection points + + Also return the 2 positions of each intersection point (the + position when meeting point for first time, then position when + meeting point for the second time). + + Example + # use a gamma-shaped polyline + poly = [0 0;0 10;20 10;20 20;10 20;10 0]; + polylineSelfIntersections(poly) + ans = + 10 10 + + # use a 'S'-shaped polyline + poly = [10 0;0 0;0 10;20 10;20 20;10 20]; + polylineSelfIntersections(poly) + ans = + 10 10 + + See also: polygons2d, intersectPolylines, polygonSelfIntersections + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 45 +Find self-intersections points of a polyline + + + + +# name: +# type: sq_string +# elements: 1 +# length: 14 +reversePolygon + + +# name: +# type: sq_string +# elements: 1 +# length: 300 + -- Function File: POLY2 = reversePolygon (POLY) + Reverse a polygon, by iterating vertices from the end + + POLY2 = reversePolygon(POLY) POLY2 has same vertices as POLY, + but in different order. The first vertex of the polygon is still + the same. + + See also: reversePolyline + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 54 +Reverse a polygon, by iterating vertices from the end + + + + +# name: +# type: sq_string +# elements: 1 +# length: 15 +reversePolyline + + +# name: +# type: sq_string +# elements: 1 +# length: 269 + -- Function File: POLY2 = reversePolyline (POLY) + Reverse a polyline, by iterating vertices from the end + + POLY2 = reversePolyline(POLY) POLY2 has same vertices as POLY, + but POLY2(i,:) is the same as POLY(END-i+1,:). + + See also: reversePolygon + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 55 +Reverse a polyline, by iterating vertices from the end + + + + +# name: +# type: sq_string +# elements: 1 +# length: 15 +simplifypolygon + + +# name: +# type: sq_string +# elements: 1 +# length: 231 + -- Function File: SPOLY = simplifypolygon (POLY) + Simplify a polygon using the Ramer-Douglas-Peucker algorithm. + + POLY is a N-by-2 matrix, each row representing a vertex. + + See also: simplifypolyline, shape2polygon + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 61 +Simplify a polygon using the Ramer-Douglas-Peucker algorithm. + + + +# name: +# type: sq_string +# elements: 1 +# length: 16 +simplifypolyline + + +# name: +# type: sq_string +# elements: 1 +# length: 909 + -- Function File: [PLINE2 IDX] = simplifypolyline (PLINE) + -- Function File: ... = simplifypolyline (...,PROPERTY,VALUE,...) + Simplify or subsample a polyline using the Ramer-Douglas-Peucker + algorithm, a.k.a. the iterative end-point fit algorithm or the + split-and-merge algorithm. + + The PLINE as a N-by-2 matrix. Rows correspond to the verices + (compatible with `polygons2d'). The vector IDX constains the + indexes on vetices in PLINE that generates PLINE2, i.e. `pline2 = + pline(idx,:)'. + + *Parameters* + `'Nmax'' + Maximum number of vertices. Default value `1e3'. + + `'Tol'' + Tolerance for the error criteria. Default value `1e-4'. + + `'MaxIter'' + Maximum number of iterations. Default value `10'. + + `'Method'' + Not implemented. + + Run `demo simplifypolyline' to see an example. + + See also: curve2polyline, curveval + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 78 +Simplify or subsample a polyline using the Ramer-Douglas-Peucker +algorithm, a. + + + +# name: +# type: sq_string +# elements: 1 +# length: 13 +splitPolygons + + +# name: +# type: sq_string +# elements: 1 +# length: 348 + -- Function File: POLYGONS = splitPolygons (POLYGON) + Convert a NaN separated polygon list to a cell array of polygons. + + POLYGON is a N-by-2 array of points, with possibly couples of NaN + values. The functions separates each component separated by NaN + values, and returns a cell array of polygons. + + See also: polygons2d + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 65 +Convert a NaN separated polygon list to a cell array of polygons. + + + +# name: +# type: sq_string +# elements: 1 +# length: 15 +supportFunction + + +# name: +# type: sq_string +# elements: 1 +# length: 522 + -- Function File: H = suppportFunction (POLYGON) + -- Function File: H = suppportFunction (POLYGON, N) + -- Function File: H = suppportFunction (POLYGON, V) + Compute support function of a polygon + + H = supportFunction(POLYGON, N) uses N points for suport + function approximation + + H = supportFunction(POLYGON) assume 24 points for approximation + + H = supportFunction(POLYGON, V) where V is a vector, uses vector + V of angles to compute support function. + + See also: convexification + + + + + +# name: +# type: sq_string +# elements: 1 +# length: 38 +Compute support function of a polygon + + + + + +