(distance, polygonPoint) = minimumDistanceToPolygon(polygon, point);


This function computes the minimum distance of a point to a polygon.

The polygon is defined by a set of points polygon[:,2], where polygon[i,1] is the x-coordinate of polygon point i and polygon[i,2] is the y-coordinate. The last point of the polygon can be identical to the first point, so polygon[1,:] = polygon[end,:]. If this is not the case, the function assumes that the last point polygon[end,:] is connected implicitely to the first point polygon[1,:].

The goal is to compute the minimum distance of the vector input point to polygon, where point[1] is the x-coordinate and point[2] the y-coordinate.

The function returns the minimum distance as distance.
If distance > 0, then point is inside of the polygon.
If distance < 0, then point is outside of the polygon.
If distance = 0, then point is on the polygon.
Furthermore, the point polygonPoint[2] is returned, which is a point on polygon (either on an edge or a vertex of the polygon) that is closest to input argument point.


function distancePointToPolygon
  import Modelica.Math.Vectors.length;
  input Real polygon[:, 2] "Polygon points (x,y)";
  input Real point[2] "Point inside, outside or on polygon";
  output Real distance "Minimum distance of point to polygon";
  output Real polygonPoint[2] "Point on polygon that is closest to point";
end distancePointToPolygon;

Generated at 2020-04-07T01:38:57Z by OpenModelicaOpenModelica 1.16.0~dev-263-g761b5de using GenerateDoc.mos