游戏开发中的数学和物理算法(6):圆和球的碰撞检测

    技术2022-05-19  25

     

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

     

     


    最新回复(0)