1.圆的碰撞检测
圆的碰撞条件:
当两个圆相切或者相交时,我们认为两个圆应该开始发生碰撞。
数学表示:
计算机中的实现:
两圆之间的碰撞
bool CollisionBetweenCircles(circle c1,circle c2)
{
bool hit;
float distanceOfCenter=sqrt(pow((c1.center.x-c2.center.x),2)+
pow((c1.center.y-c2.center.y),2));
float distanceOfRadius=c1.radius+c2.radius;
if(distanceOfCenter<=distanceOfRadius)
{
hit=true;
}
else
{
hit=false;
}
return hit;
}
2.球的碰撞
球的碰撞条件:
当两个球相切或者相交时,我们认为两个球应该开始发生碰撞。
数学表示:
计算机中的实现:
两球之间的碰撞
bool CollisionBetweenSphere(sphere s1,sphere s2)
{
bool hit;
float distanceOfCenter=sqrt(pow((s1.center.x-s2.center.x),2)+
pow((s1.center.y-s2.center.y),2)+
pow((s1.center.z-s2.center.z),2));
float distanceOfRadius=s1.radius+s2.radius;
if(distanceOfCenter<=distanceOfRadius)
{
hit=true;
}
else
{
hit=false;
}
return hit;
}