我需要在给定的圆(或曲线)上找到一个或多个点,以最小化 d0+d1?曲线的半径和中心分别为 (0,0) 和 'r',并且点 A 和 B 的坐标是已知的。假设 A=(x1,y1) 和 B=(x1,-y1) 和 r> sqrt(x1^2+y1^2) 。C 是圆的未知点,应该最小化长度 d0+d1 d0 - 圆上 A 到 C 之间的距离 d1 - 圆上 B 到 C 之间的距离
C点沿圆周运动。我需要在给定的圆(或曲线)上找到一个或多个点,以最小化 d0+d1?
我需要在给定的圆(或曲线)上找到一个或多个点,以最小化 d0+d1?曲线的半径和中心分别为 (0,0) 和 'r',并且点 A 和 B 的坐标是已知的。假设 A=(x1,y1) 和 B=(x1,-y1) 和 r> sqrt(x1^2+y1^2) 。C 是圆的未知点,应该最小化长度 d0+d1 d0 - 圆上 A 到 C 之间的距离 d1 - 圆上 B 到 C 之间的距离
C点沿圆周运动。我需要在给定的圆(或曲线)上找到一个或多个点,以最小化 d0+d1?
如果线 AB 与圆相交,则 C 是该交点(请注意,可以有两个交点并且都给出相等的距离d0+d1
!)。
如果 AB 不与圆相交,则 C 是圆上的点,与离圆心最近的直线 AB 上的点相交的假想线。
网上有很多关于如何在一条直线上找到离另一个点最近的点,以及如何找到两条直线的交点的文章,这将解决第二种情况。对于第一种情况,您可以谷歌“线圆交叉点”
一般情况很复杂,但特殊情况
A=(x1,y1)
并且B=(x1,-y1)
和r > sqrt(x1^2+y1^2)
以圆心为原点的圆具有足够的对称性,至少在某些情况下可以使解决方案变得可访问。我假设A ≠ B
, (等效地y1 ≠ 0
),否则这个问题对于一个圈子来说是微不足道的。
让是点和dist(P,Q)
之间的欧几里得距离。连接和的(闭合)线段是点的轨迹P
Q
A
B
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)
,其焦点是A
和B
。设P
是圆上的一个点 和D = f(P)
。
E(D)
在该点P
不重合,P
则既不是局部最小值也不是局部最大值f
限于圆。E(D)
in的曲率P
,则P
是f
限制在圆内的孤立局部最大值。E(D)
in的曲率P
,则P
是f
限制在圆内的孤立局部最小值。E(D)
in的曲率P
,则
P
是一个孤立的局部最小值,f
如果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
。那么很明显,P = (x,y)
最小化圆上的一个点f
必须有x > x1
。通过情况的对称性,该点R = (r,0)
必须是局部最小值或f
限制在圆内的局部最大值。
计算f
near的行为R
,发现这R
是一个局部最小值当且仅当
r ≥ (x1² + y1²) / x1
由于R
是曲率最小的点E(f(R))
(并且切线R
与E(f(R))
圆重合),R
因此也是全局最小值。
如果r < (x1² + y1²) / x1
,则R
是f
限制在圆内的局部最大值。然后f
在圆上有两个全局最小值,具有相同的 x 坐标。不幸的是,我没有一个很好的公式来计算它们,所以我不能提供比迭代搜索更好的方法。