您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    游戏开发中的数学和物理算法:圆和球的碰撞检测
    时间:2015-05-08 10:44 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


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


    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家