2017-10-19 137 views

回答

0

您還沒有很好地定義問題。

設圓中心與方程

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 

注意,我強調外部因爲可能會發生內部接觸(在這種情況下,距離爲半徑的不同,但我認爲這種情況對你來說並不有趣)