對於兩個圓直線移動,它很容易計算出發生碰撞的時間:http://twobitcoder.blogspot.com/2010/04/circle-collision-detection.html測距點(動圈+時間)
這假定界有固定的出發點和固定移動路徑,並計算碰撞時間。
是否有可能做到這一點周圍的其他方法:
圈1:起點X1,Y1速度VX1,VY1(固定起點,固定的線性運動路徑),半徑R1 圈2:起點X2,Y2速度標量(1米/秒等)(固定起點,固定速度,未知方向),半徑R2
是否可以在最短行程時間內確定兩個圓的碰撞位置?
I.E. 圓圈1從0,0開始並以1.0的速度移動(每次向右移動1個單位) 圓圈2從5.5開始並且每次移動1個單位 碰撞位置是什麼(或VX2 ,VY2圓圈2需要移入)以便兩個圓在最低時間T碰撞。 兩個圓的半徑爲1
在此示例中,解決方案將位於圓1周圍的某處在時間3,0。這個問題相當複雜,因爲你有未知的變量:碰撞點,碰撞時間,VX2,VY2。儘管VX2和VY2受到| VX1 | + | VX2 |的限制= 1
的原因的問題就是要告訴圈2,它應該以移動到爲「捕獲」圓圈1
蠻力解決方案將是,以檢查圓1的位置在每時間間隔,並計算是否圈2會說,如果移動到該點與圈1碰撞 - 但你可能會錯過圓的碰撞點被快速移動,或得到一個次優點等
邁克爾,請你說明哪些變量是二次方程的'a','b'和'c'?我假設'x'是我們正在努力解決的問題。謝謝! –
我已經在PDF格式https://sites.google.com/site/therobotsbrain/files/circle_intersection_time中提供了更清晰的說明。pdf希望這會讓事情更清楚(在堆棧溢出寫數學不容易..) –
謝謝。非常感激 –