0
我正在尋找一個算法,需要兩個動態的圓形並返回聯繫點。由於某種原因,當試圖搜索這個時,我只能找到如http://ericleong.me/research/circle-circle/這樣的資源,它們描述返回結果速度的算法。圓與圓掃描測試,返回觸摸點
我正在尋找一個算法,需要兩個動態的圓形並返回聯繫點。由於某種原因,當試圖搜索這個時,我只能找到如http://ericleong.me/research/circle-circle/這樣的資源,它們描述返回結果速度的算法。圓與圓掃描測試,返回觸摸點
您還沒有很好地定義問題。
設圓中心與方程
cx1 = cx1_0 + t * vx1
cx2 = cx2_0 + t * vx2
cy1 = cy1_0 + t * vy1
cy2 = cy2_0 + t * vy2
其中cx1_0開始第一圓的X座標移動,VX1是其速度的x分量。
當中心距等於半徑之和時,圓形相互接觸。我們可以用平方值:
(cx1 - cx2)^2 + (cy1 - cy2)^2 = (r1 + r2)^2
上述替代表情,開括號,求解未知參數t二次方程。您可以獲得0,1或2個解決方案(不存在交互,存在一個觸摸交叉時間段)。然後計算出中心座標觸摸的瞬間,讓觸摸點外部感人:
x_touch = (cx1 * r1 + cx2 * r2)/(r1 + r2)
similar for y
注意,我強調外部因爲可能會發生內部接觸(在這種情況下,距離爲半徑的不同,但我認爲這種情況對你來說並不有趣)
這看起來像是非常基本的東西,所以我可能只是錯過了某些東西,或者我正在用錯誤的名字查找它。當這是標記重複:( – Julian