2013-02-13 151 views
1

我需要在给定的圆(或曲线)上找到一个或多个最小化d0 + d1的点?曲线的半径和中心分别是(0,0)和'r',点A和B的坐标是已知的。假设A =(x1,y1),B =(x1,-y1),r> sqrt(x1^2 + y1^2)。 C是应尽量减少长度D0 + D1 D0的圆的未知点 - 至C上的圆找到最小距离

点C沿圆移动圆 D1-到C B之间的距离A之间的距离。我需要在给定的圆(或曲线)上找到一个或多个最小化d0 + d1的点?

+1

你能添加图片吗?你需要定义你的距离函数! – 2013-02-13 11:03:24

回答

0

一般情况下是非常复杂的第一种情况,但特殊情况

A=(x1,y1)B=(x1,-y1)r > sqrt(x1^2+y1^2)

与圆,圆心起源具有足够的对称性,至少在某些情况下可以获得解决方案。我假设A ≠ B(等同于y1 ≠ 0),否则这个问题对于一个圆圈来说是微不足道的。

dist(P,Q)为点PQ之间的欧几里得距离。的(闭合)线段连接AB是点P

dist(P,A) + dist(P,B) = dist(A,B) 

轨迹对于D > dist(A,B),点与

f(P) = dist(P,A) + dist(P,B) = D 

轨迹为椭圆形E(D)其焦点是AB。让P成为圆上的一个点,并且D = f(P)

  • 如果在点P的切线与圆和椭圆E(D)不重合,P既不是局部最小值,也不是一个局部最大值的f限制于圆形。
  • 如果切线重合,且圆的曲率大于P中的E(D)的曲率,那么P是局限于圆的局部最大值f
  • 如果切线重合,并且圆的曲率小于P中的E(D)的曲率,那么P是局限于圆的局部最小值f
  • 如果切线一致,并且该圆的曲率等于E(D)P曲率,然后
    • Pf分离的局部最小值限制为圆如果dist(P,A) = dist(P,B)
    • P既不是本地最大值或局部最小值f,否则限制在该圈内。

首先,如果x1 = 0,很容易看到(如果它不是几何上明显),该圆上的最小化f的点是与x坐标0,即P1 = (0,r)P2 = (0,-r)的点。 [如果r² ≤ x1² + y1²,那甚至是对的。]

现在,假设x1 ≠ 0,不失一般性x1 > 0。那么很明显,最小化为f的圆上的点P = (x,y)必须具有x > x1。根据情况的对称性,点R = (r,0)必须是局部最小值或局限于圆的局部最大值f

计算f附近R的行为,你会发现R是局部最小当且仅当

r ≥ (x1² + y1²)/x1 

由于RE(f(R))最小曲率(和RE(f(R))切线和点圆一致),那么R也是全球最小值。

如果是r < (x1² + y1²)/x1,那么R是局限于圆的局部最大值f。然后f在圆上有两个全局最小值,具有相同的x坐标。不幸的是,我没有一个很好的公式来计算它们,所以我不能提供比迭代搜索更好的方法。

+0

嗨丹尼尔。感谢您的好解释。问题是如何开始迭代搜索并将其作为算法。 – Norman 2013-02-14 00:59:15

2

如果直线AB与圆相交,那么C就是该交点(注意可以有两个交点并且两者的距离相等,都为d0+d1!)。

line crosses circle

如果AB不相交的圆,则C是在圆相交从上线AB最接近圆中心的点的假想线的点。

line does not cross circle

有很多文章在网上如何找到另一点最接近的一条线的点,以及如何找到两条线之间的交叉点,这将解决第二种情况。因为你可以google“行圈交汇”

+0

第二部分一般不是这样。如果连接“A”和“B”的线段完全位于圆外,距离线段最近的点将使距离之和最小化,当且仅当圆心与“A”距离“ B'。但是,在这个问题上,情况就是这样。但是线段完全位于圆内,这使得情况更加复杂。 – 2013-02-13 21:06:53