我需要在給定的圓(或曲線)上找到一個或多個最小化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的點?
我需要在給定的圓(或曲線)上找到一個或多個最小化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的點?
一般情況下是非常複雜的第一種情況,但特殊情況
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)
。
P
的切線與圓和橢圓E(D)
不重合,P
既不是局部最小值,也不是一個局部最大值的f
限制於圓形。P
中的E(D)
的曲率,那麼P
是侷限於圓的局部最大值f
。P
中的E(D)
的曲率,那麼P
是侷限於圓的局部最小值f
。E(D)
在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
。那麼很明顯,最小化爲f
的圓上的點P = (x,y)
必須具有x > x1
。根據情況的對稱性,點R = (r,0)
必須是局部最小值或侷限於圓的局部最大值f
。
計算f
附近R
的行爲,你會發現R
是局部最小當且僅當
r ≥ (x1² + y1²)/x1
由於R
是E(f(R))
最小曲率(和R
到E(f(R))
切線和點圓一致),那麼R
也是全球最小值。
如果是r < (x1² + y1²)/x1
,那麼R
是侷限於圓的局部最大值f
。然後f
在圓上有兩個全局最小值,具有相同的x座標。不幸的是,我沒有一個很好的公式來計算它們,所以我不能提供比迭代搜索更好的方法。
嗨丹尼爾。感謝您的好解釋。問題是如何開始迭代搜索並將其作爲算法。 – Norman 2013-02-14 00:59:15
如果直線AB與圓相交,那麼C就是該交點(注意可以有兩個交點並且兩者的距離相等,都爲d0+d1
!)。
如果AB不相交的圓,則C是在圓相交從上線AB最接近圓中心的點的假想線的點。
有很多文章在網上如何找到另一點最接近的一條線的點,以及如何找到兩條線之間的交叉點,這將解決第二種情況。因爲你可以google「行圈交匯」
第二部分一般不是這樣。如果連接「A」和「B」的線段完全位於圓外,距離線段最近的點將使距離之和最小化,當且僅當圓心與「A」距離「 B'。但是,在這個問題上,情況就是這樣。但是線段完全位於圓內,這使得情況更加複雜。 – 2013-02-13 21:06:53
你能添加圖片嗎?你需要定義你的距離函數! – 2013-02-13 11:03:24