在wpf中碰撞两个球并获得碰撞球的路径

时间:2013-12-10 20:57:53

标签: c# wpf collision

这个问题与WPF有关。

我有两个球,一个是静止的,另一个是朝静球方向移动。在碰撞时,球会沿着碰撞决定的方向移动,碰撞时它们会碰撞并相应地移动。

我的问题基本上是建议什么是在WPF中碰撞对象的最简单和最有效的方法,以及在碰撞后为它们提供相应移动的路径。除减速等外,应该采用哪种最佳策略来检测碰撞,并在碰撞后给球门带来新的路径。

2 个答案:

答案 0 :(得分:0)

我会计算它们之间的距离(毕达哥拉斯),如果距离小于添加的两个半径,就会发生碰撞。

点击此处查看点之间的角度: Math Calculation to retrieve angle between two points?

你可以查看这个: Ball to Ball Collision - Detection and Handling

答案 1 :(得分:0)

简单地计算出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 - 我想这会解决你的问题。