File Exchange

image thumbnail

Minimum distance between two polygons

version 1.2 (9.73 KB) by

This function computes the minimum euclidean distance between two polygons P1 & P2.

4 Downloads

Updated

View License

This function computes the minimum euclidean distance between two
polygons P1 & P2.

min_d = min_dist_between_two_polygons(P1,P2,Display_solution);

This function takes two arguments, a third one is optional.
P1 & P2 contain the geometry of polygons.
P1 & P2 are structures containing two fields: x & y
For example:
P1.x = rand(1,5)+2;
P1.y = rand(1,5);
P2.x = rand(1,3);
P2.y = rand(1,3);
Display_solution is a binary variable that enables or not the
plot of the solution.

The function starts by checking if polygons are intersecting.
In this case, the minimum distance is 0.
Otherwise, distances between all vertices and edges of the two
polygons are computed. The function returns the minimum distance found.
Further details of the implementation can be found in the code.

Comments and Ratings (5)

Solomon

This can be done in o(logm + logN) time, yours is done in n*m, the slowest possible calculation

Sarhat

Sarhat (view profile)

hello

I found your function great, especially for object analysis in binary images. Can I as you only about how to extract the points(x,y) belong to both polygons that make the min distance

Regards

Moshe Lindner

Moshe Lindner (view profile)

great function!

sjye

sjye (view profile)

Diego Barragán

Diego Barragán (view profile)

Updates

1.2

Some boundary cases have been taken into account.

1.1

Some boundary cases have been taken into account.

MATLAB Release
MATLAB 7 (R14)
Acknowledgements

Inspired by: Curve Intersect 2

Inspired: Minimum distance between two polygons

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today

min_dist_between_two_polygons/