首页 > 解决方案 > 检测 180 度旋转并从数组中删除旋转的元素

问题描述

我想检测具有以下点矩阵的第二张图片b)是否实际上是旋转后的第一张a)而图片c)不是。首先,我喜欢删除两个任意矩阵之间的重复点,并检测它们在旋转后是否相同。如果旋转后它们相同,我想删除第二个。

def reverse(set1, set2):
    a_prime =[x for x in set1 if not x in set2]
    b_prime =[x for x in set1 if not x in set2]
    reverse = None  # will store a tuple of delta_x, delta_y
   for (x1, y1), (x2, y2) in zip(a_prime, b_prime):
        cur_reverse = x2 + x1, y1 + y2
        if not shift:  
            reverse = cur_reverse 
        elif shift != cur_reverse:
            return False 
    return True


a = [[(1, 1), (2, 1)], [(3, 1), (1, 2), (1, 3)], [(3, 1), (3, 2), (1, 3), (2, 3), (3, 3)], [(1, 1), (2, 1), (3, 1), (2, 2), (1, 3)]]
length = len(a)
for i in range(0, length):
    for j in range(1, length):
        if (i<j):
            if (is_shift(a[i], a[j])==True):
                a.remove(a[j])
            else:
                print(a[i])
                print(a[j])
            i -= 1
            j -= 1
            length -= 1

在此处输入图像描述

标签: pythonpython-3.xpython-2.7

解决方案


推荐阅读