我在二维坐标系中有一个轴对齐的矩形,由左下角的点和右上角的点以及可能位于矩形内部或外部的点表示。我想找到该点到矩形最近点的距离,无论它是否在矩形内部。当然,我可以只编写一个具有 9 个不同结果的 switch case,但我希望有一个更优雅的解决方案。
另外,我已经找到了解决此问题的多种解决方案(例如这个),但如果该点位于框内,则所有这些解决方案都会将距离计算为 0,这是我不希望的。
如果我System.Drawing.Rectangle
在画布和一个上有两个对象,计算哪个( 的任何部分,而不仅仅是它的)最接近那个Point
的最佳方法是什么?Rectangle
Rectangle
Location
Point
Point
一个单元测试的例子:
Rectangle one = new Rectangle (0, 0, 10, 10);
Rectangle two = new Rectangle (20, 20, 10, 10);
Point point = new Point(14, 14);
Rectangle actual = ClosestToPoint(point, one, two);
// should be closer to one since one's bottom right is at (10, 10)
Assert.That(actual, Is.SameAs(one));
// method to write
public Rectangle ClosestToPoint(Point p, params Rectangle[] rectangles) { }
Run Code Online (Sandbox Code Playgroud)