由四个点的坐标判断其是否构成一个正方形
判断方法:四条边相等且两个对角线相等。
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]; }