Использование python для поиска отсутствующей координаты прямоугольника - PullRequest
0 голосов
/ 06 ноября 2018

Задача: Учитывая целочисленные координаты трех вершин прямоугольника, стороны которого параллельны координатным осям, найти координаты четвертой вершины прямоугольника.

Я написал код для решения проблемы следующим образом (но это не правильно):

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

Может кто-нибудь помочь мне определить правильный код для решения этой проблемы? (Я пробовал гуглить / читать предыдущие статьи в стеке, но не могу найти ответ)

Примечание. Код должен использовать только операторы if / else, а не массивы или циклы

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Поскольку прямоугольник симметричен, координаты 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
0 голосов
/ 06 ноября 2018
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...