首页 > 学院 > 开发设计 > 正文

二微矩阵碰撞检测

2019-11-07 23:52:32
字体:
来源:转载
供稿:网友

   采用的是左下角为原点. 

   //左上(x,y) 右下(z,w).返回val2和val1是否发生碰撞,如果碰撞返回val2相对val1的位置 1上 2下 4右 8左.

    int test(Vector4 val1, Vector4 val2)

    {        bool ret = true;        if(val2.x > val1.x && val2.x > val1.z)            ret = false;        else if(val1.x > val2.x && val1.x > val2.z)            ret = false;        else if(val1.w > val2.y && val1.w > val2.w)            ret = false;        else if(val2.w > val1.y && val2.w > val1.w)            ret = false;        if(ret)        {            byte ii = 0;            if(val2.y > val1.y)                ii |= 1;            if(val2.w < val1.w)                ii |= 2;            if(val2.z > val1.z)                ii |= 4;            if(val2.x < val1.x)                ii |= 8;            return ii;        }        else            return -1;    }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表