Home > matGeom > polygons2d > distancePolygonsNoCross.m

distancePolygonsNoCross

PURPOSE ^

DISTANCEPOLYGONSNOCROSS Compute the shortest distance between 2 polygons.

SYNOPSIS ^

function dist = distancePolygonsNoCross(poly1, poly2)

DESCRIPTION ^

DISTANCEPOLYGONSNOCROSS Compute the shortest distance between 2 polygons.

   DIST = distancePolygonsNoCross(POLY1, POLY2)
   Computes the shortest distance between the boundaries of the two
   polygons, assuming they do not cross. 
   Each polygon is given by a N-by-2 array containing the vertex
   coordinates.

   If the polygons may cross, it is necessary to use the
   'distancePolygons' function, that adds a potentially costly test on the
   intersection.

   Example
     % Computes the distance between a square and a triangle
     poly1 = [10 10;20 10;20 20;10 20];
     poly2 = [30 20;50 20;40 45];
     distancePolygons(poly1, poly2)
     ans =
         10

   See also
   polygons2d, distancePolygons, distancePolylines, distancePointPolygon

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function dist = distancePolygonsNoCross(poly1, poly2)
0002 %DISTANCEPOLYGONSNOCROSS Compute the shortest distance between 2 polygons.
0003 %
0004 %   DIST = distancePolygonsNoCross(POLY1, POLY2)
0005 %   Computes the shortest distance between the boundaries of the two
0006 %   polygons, assuming they do not cross.
0007 %   Each polygon is given by a N-by-2 array containing the vertex
0008 %   coordinates.
0009 %
0010 %   If the polygons may cross, it is necessary to use the
0011 %   'distancePolygons' function, that adds a potentially costly test on the
0012 %   intersection.
0013 %
0014 %   Example
0015 %     % Computes the distance between a square and a triangle
0016 %     poly1 = [10 10;20 10;20 20;10 20];
0017 %     poly2 = [30 20;50 20;40 45];
0018 %     distancePolygons(poly1, poly2)
0019 %     ans =
0020 %         10
0021 %
0022 %   See also
0023 %   polygons2d, distancePolygons, distancePolylines, distancePointPolygon
0024 %
0025 
0026 % ------
0027 % Author: David Legland
0028 % e-mail: david.legland@nantes.inra.fr
0029 % Created: 2009-06-17,    using Matlab 7.7.0.471 (R2008b)
0030 % Copyright 2009 INRA - Cepia Software Platform.
0031 
0032 % compute distance of each vertex of a polygon to the other polygon
0033 dist1   = min(distancePointPolygon(poly1, poly2));
0034 dist2   = min(distancePointPolygon(poly2, poly1));
0035 
0036 % keep the minimum of the two distances
0037 dist = min(dist1, dist2);

Generated on Wed 16-Feb-2022 15:10:47 by m2html © 2003-2019