Group Abstract Group Abstract

Message Boards Message Boards

Extending RegionNearest to find nearest two points in two regions and their distance

Attachments:
POSTED BY: Frank Kampas
2 Replies
min[reg1_, reg2_, tolerance_] :=
 Block[{
   rn1 = RegionNearest[N@reg1],
   rn2 = RegionNearest[N@reg2],
   start, iter, pt1, pt2
   },
  start = RegionCentroid[reg1];
  iter[pt_] := rn1[rn2[pt]];
  pt1 = FixedPoint[iter, start, 
    SameTest -> (Norm[#2 - #1] < tolerance &)];
  pt2 = rn2[pt1];
  {Norm[pt1 - pt2], {pt1, pt2}}
  ]

This version of the function does not require a point in region1. It uses RegionCentroid to generate that point.

POSTED BY: Frank Kampas

enter image description here -- you have earned Featured Contributor Badge enter image description here Your exceptional post has been selected for our editorial column Staff Picks http://wolfr.am/StaffPicks and Your Profile is now distinguished by a Featured Contributor Badge and is displayed on the Featured Contributor Board. Thank you!

POSTED BY: EDITORIAL BOARD
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard