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