判断四个点是不是组成正方形

判断四个点是不是组成正方形

给出几组数,每组的第一行为横坐标,第二行为纵坐标。看其是否组成正方形

代码

#coding=utf-8
import sys
if __name__ == "__main__":
    # 读取第一行的n
    # n = int(sys.stdin.readline().strip())
    n=3
    ans = 0
    arr = [[0,0,2,2],[0,2,0,2],[0,1,5,6],[1,6,0,5],[0,0,7,7],[0,3,0,3]]
    # for i in range(2*n):
        # 读取每一行
        # line = sys.stdin.readline().strip()
        # 把每一行的数字分隔后转化成int列表
        # values = list(map(int, line.split()))
        # for v in values:
        #     ans += v
        #     arr.append(v)
        # arr.append(values)
    print(arr)
    i=0
    while i<len(arr)-1:
        print(arr[i])
        print(arr[i + 1])

        point0 = [arr[i][0],arr[i+1][0]]
        point1 = [arr[i][1], arr[i + 1][1]]
        point2 = [arr[i][2], arr[i + 1][2]]
        point3 = [arr[i][3], arr[i + 1][3]]

        len1 = ((point0[0] - point1[0]) ** 2 + (point0[1] - point1[1]) ** 2)
        len2 = ((point0[0] - point2[0]) ** 2 + (point0[1] - point2[1]) ** 2)
        len3 = ((point0[0] - point3[0]) ** 2 + (point0[1] - point3[1]) ** 2)
        len4 = ((point1[0] - point2[0]) ** 2 + (point1[1] - point2[1]) ** 2)
        len5 = ((point1[0] - point3[0]) ** 2 + (point1[1] - point3[1]) ** 2)
        len6 = ((point2[0] - point3[0]) ** 2 + (point2[1] - point3[1]) ** 2)
        arr2=[len1,len2 ,len3,len4,len5,len6]
        dict = {}
        for item in arr2:
            if item in dict.keys():
                dict[item] = dict[item]+1
            else:
                dict[item] = 1
        print(dict)
        if (len(dict)==2) and (dict[len1]==2 or dict[len1]==4):
            print('Yes')
        else:
            print('No')
        i = i + 2

猜你喜欢

转载自blog.csdn.net/qq_33374476/article/details/79673680