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;
}