美文网首页
矩形的碰撞检测方法

矩形的碰撞检测方法

作者: JCXQ | 来源:发表于2023-06-10 19:15 被阅读0次

两个矩形发生碰撞的情况有如下几种:

此外还有一种容易被忽视的碰撞情况(重叠):

我们可以保存两个矩形的左上和右下两个坐标的坐标值,然后对比两个坐标即可得出是否相交。

/**

    * one[0]:矩形one左上角x坐标

    * one[1]:矩形one左上角y坐标

    * one[2]:矩形one右下角x坐标

    * one[3]:矩形one右下角y坐标

    * two[0]:矩形two左上角x坐标

    * two[1]:矩形two左上角y坐标

    * two[2]:矩形two右下角x坐标

    * two[3]:矩形two右下角y坐标

    *

    * @param one 第一个矩形的左上角坐标和右下角坐标数组

    * @param two 第二个矩形的左上角坐标和右下角坐标数组

    * @return 如果发生碰撞则返回true,否则返回false

    */

    public static boolean isColliding(int one[], int two[]) {

        if (one[0] > two[2]) return false;

        if (one[2] < two[0]) return false;

        if (one[1] > two[3]) return false;

        if (one[3] < two[1]) return false;

        return true;

    }

    public static void main(String[] args) {

        int one[] = {10, 10, 60, 110};

        int two[] = {20, 30, 70, 130};

        System.out.println(isColliding(one, two));

    }

输出结果:

true

相关文章

网友评论

      本文标题:矩形的碰撞检测方法

      本文链接:https://www.haomeiwen.com/subject/gmntydtx.html