使用python查找矩形的缺失坐标

时间:2018-11-06 09:55:04

标签: python math coordinates rectangles

问题:给出边长与坐标轴平行的矩形的三个顶点的整数坐标,找到该矩形的第四个顶点的坐标。

我已经编写了如下代码来回答问题(但这是不正确的):

coord_1_x = int(input())
coord_1_y = int(input())

coord_2_x = int(input())
coord_2_y = int(input())

coord_3_x = int(input())
coord_3_y = int(input())

coord_4_x = 0
coord_4_y = 0

if coord_1_x == coord_2_x:
  coord_4_x = coord_3_x
  if coord_2_y > coord_1_y:
    coord_4_y = coord_2_y
  else:
    coord_4_y = coord_1_y
else:
  if coord_3_x == coord_1_x:
    coord_4_x = coord_2_x
    coord_4_y = coord_3_y

print(coord_4_x)
print(coord_4_y)

以下是代码应显示的一些示例输入/输出:

示例输入#1-给出的三个顶点是(1、5),(7、5),(1、10)

1
5
7
5
1
10

示例输出#1

7
10

示例输入#2-给定的三个顶点是(1、5),(7、10),(1、10)

1
5
7
10
1
10

示例输出#2

7
5

请有人可以帮助我确定正确的代码来回答此问题吗? (我尝试使用Google搜索/阅读过之前的Stack帖子,但找不到答案)

注意。该代码应仅使用if / else语句,而不使用数组或循环

2 个答案:

答案 0 :(得分:0)

if coord1_x == coord2_x or coord1_x==coord3_x:
    if coord1_x == coord2_x:
           coord4_x=coord3_x
    else:
           coord4_x=coord2_x
else:
    coord4_x=coord1_x
if coord1_y == coord2_y or coord1_y==coord3_y:
    if coord1_y == coord2_y:
           coord4_y=coord3_y
    else:
           coord4_y=coord2_y
else:
    coord4_y=coord1_y

答案 1 :(得分:0)

由于矩形是对称的,因此X和Y坐标需要在矩形的所有点中出现2次。因此,您只需要查找在给定点上一次出现的X和Y值:

def getMissingRectanglePoint(A, B, C):
    rectangle = [A, B, C]
    xValues = [p[0] for p in rectangle]
    yValues = [p[1] for p in rectangle]

    missingX = [mp for mp in xValues if xValues.count(mp) == 1][0]
    missingY = [mp for mp in yValues if yValues.count(mp) == 1][0]

    print missingX
    print missingY


getMissingRectanglePoint( (1, 5), (7, 5), (1, 10) )
getMissingRectanglePoint( (1, 5), (7, 10), (1, 10) )

打印:

7
10

7
5