使用 python 查找矩形的缺失坐标
Using python to find the missing coordinate of a rectangle
问题:给定一个三边平行于坐标轴的矩形的三个顶点的整数坐标,求该矩形的第四个顶点的坐标。
我已经编写了如下代码来回答问题(但不正确):
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)
下面是代码应显示的一些示例 inputs/outputs:
示例输入 #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
有人可以帮我确定正确的代码来回答这个问题吗?
(我试过使用谷歌搜索/阅读之前的 Stack 帖子,但找不到答案)
注意。代码应该只使用if/else语句,而不是数组或循环
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
由于矩形是对称的,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
问题:给定一个三边平行于坐标轴的矩形的三个顶点的整数坐标,求该矩形的第四个顶点的坐标。
我已经编写了如下代码来回答问题(但不正确):
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)
下面是代码应显示的一些示例 inputs/outputs:
示例输入 #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
有人可以帮我确定正确的代码来回答这个问题吗? (我试过使用谷歌搜索/阅读之前的 Stack 帖子,但找不到答案)
注意。代码应该只使用if/else语句,而不是数组或循环
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
由于矩形是对称的,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