Определение 4 координат из 2 в прямоугольной форме (python)

#python #arrays #list #format #rectangles

#питон #массивы #Список #формат #прямоугольники

Вопрос:

итак, в настоящее время у меня есть 2 точки в формате [(x0, x1, y0, y1)], которые, как я знаю, имеют прямоугольную форму, но я хочу обновить этот список, чтобы он состоял из всех 4 точек прямоугольника. Примечание: прямоугольник может быть нарисован только вертикально или горизонтально на сетке,поэтому я знаю, что 4 угловые координаты будут (x1, y1), (x1, y2), (x2,y1), (x2, y2), но я не уверен, как это лучше всего сделать, чтобы он был изменен в нужном формате. В настоящее время я пытаюсь решить эту проблему на python

Комментарии:

1. Что вы написали до сих пор? Можете ли вы показать выполняемый пример кода и указать желаемый результат для примера?

2. что ты пробовал? Где ваш код?

3. Просто назначьте исходные значения 4 переменным и используйте эти переменные для создания всех пар. И перестаньте искать the best way — ищите working way

Ответ №1:

Я не знаю, в чем проблема.

Просто назначьте значения 4 переменным и используйте их для создания 4 пар

Простой Пример:

  rect = [(0, 1, 2, 3)] print('rect :', rect)  x1, x2, y1, y2 = rect[0]  points = [(x1, y1),(x1, y2),(x2, y1),(x2,y2)] print('points:', points)  

Результат:

 rect : [(0, 1, 2, 3)] points: [(0, 2), (0, 3), (1, 2), (1, 3)]  

И если у вас много прямоугольников, то вы можете использовать for -loop

Простой Пример:

 many_rects = [(0, 1, 2, 3), (10, 11, 12, 13)] print('many_rects :', many_rects)  many_points = []  for rect in many_rects:  x1, x2, y1, y2 = rect  points = [(x1, y1),(x1, y2),(x2, y1),(x2,y2)]   many_points.append(points)  #many_points.extend(points) # as flatten list   print('many_points:', many_points)  

Результат:

 many_rects : [(0, 1, 2, 3), (10, 11, 12, 13)] many_points: [[(0, 2), (0, 3), (1, 2), (1, 3)], [(10, 12), (10, 13), (11, 12), (11, 13)]]  # flatten list many_points: [(0, 2), (0, 3), (1, 2), (1, 3), (10, 12), (10, 13), (11, 12), (11, 13)]