這個問題是關於WPF的。wpf中兩個球的碰撞並得到碰撞球的路徑
我有兩個球,一個是靜態的,另一個是靜止球。在碰撞時,球將按照碰撞決定的方向移動,碰撞時他們將在哪個角度碰撞並相應移動。
我的問題基本上是爲什麼是最簡單和最有效的方式來衝突WPF中的對象,並在碰撞後給他們一個相應的移動路徑的建議。除了減速等,最好的策略應該應用於檢測碰撞並在碰撞後給球提供新的路徑。
這個問題是關於WPF的。wpf中兩個球的碰撞並得到碰撞球的路徑
我有兩個球,一個是靜態的,另一個是靜止球。在碰撞時,球將按照碰撞決定的方向移動,碰撞時他們將在哪個角度碰撞並相應移動。
我的問題基本上是爲什麼是最簡單和最有效的方式來衝突WPF中的對象,並在碰撞後給他們一個相應的移動路徑的建議。除了減速等,最好的策略應該應用於檢測碰撞並在碰撞後給球提供新的路徑。
簡單地計算出2個球的中心的距離。
if (distance(ball1.Center, ball2.Center) <= ball1.Radius + ball2.Radius)
{
// collision
}
對於距離使用本:
double x = ball1.Center.X - ball2.Center.X;
double y = ball1.Center.Y - ball2.Center.Y;
double distance = Math.sqrt(x*x + y*y); // pythagoras
爲了計算新的方向,你會需要一些更多的數學。看看像XNA一起交付的幾何圖書館。再次嘗試googeling你的問題,並使用XNA搜索而不是WPF - 這將解決你的問題,我猜。
我會計算它們之間的距離(pythagoras),如果距離小於添加的兩個半徑,就會發生碰撞。
檢查這裏點之間的角度: Math Calculation to retrieve angle between two points?
** Close-Voting:** *詢問代碼的問題必須證明對所解決問題的最小理解。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。另請參閱:堆棧溢出問題清單* –
您對此非常真實,但我詢問了SUGGESTIONS,因爲它明確寫在我的描述中 – Affuu
[Ball to Ball Collision - Detection and Handling](http:// stackoverflow。問題/ 345838 /球碰撞檢測和處理) –