坐标判断正方形

由四个点的坐标判断其是否构成一个正方形

判断方法:四条边相等且两个对角线相等。

 

int[][] a = new int[2][4]

x0

x1

x2

x3

y0

y1

y2

y3

int[] len = new int[6]

实现流程:

计算任意两个节点间的距离存入len数组中

对数组len进行排序处理(由小及大)

len中前四个小的值为边,判断是否相等,否不是正方形,是转入下一步

len中后两个元素为对角线长度,相等,是正方形

 

实现代码如下:

    public static boolean sqrVrfy(int[][] a) {

        int[] len = new int[6];
        int k = 0;
        for (int i=0; i<=2; i++) {
            for (int j=i+1; j<=3; j++) {
                len[k++] = (int) Math.sqrt((a[0][i] - a[0][j])*(a[0][i] - a[0][j]) + (a[1][i] - a[1][j])*(a[1][i] - a[1][j]));
            }
        }

        Arrays.sort(len);
        for (int i=1; i<=3; i++)
            if (len[0] != len[i])
                return false;

        return len[4] == len[5];
    }

 

posted on 2018-03-27 21:31  Deltadeblog  阅读(1221)  评论(0编辑  收藏  举报

导航