Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Как решить задачу построения ограничивающего прямоугольника в Python?

  1. Как решить задачу построения ограничивающего прямоугольника в Python?

    Привет, народ! Столкнулся тут с задачей на Python: нужно построить ограничивающий прямоугольник для набора точек. Вроде звучит просто, но что-то я запарился. Кто-нибудь может подсказать код или хотя бы идею, как это сделать? Нужны все детали: считаем минимумы-максимумы по координатам, строим прямоугольник. Если есть примерчики на коде, то ваще супер! Заранее спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Взаимное страдание понятно. Вот базовый пример кода, как можно сделать ограничивающий прямоугольник в Python. Мы просто проходим по всем точкам, находим минимальные и максимальные координаты.

    Программный код:
    points = [(12), (46), (28), (93)]
    min_x min(point[0] for point in points)
    max_x max(point[0] for point in points)
    min_y min(point[1] for point in points)
    max_y max(point[1] for point in points)

    rectangle = ((min_xmin_y), (max_xmax_y))
    print(
    rectangle
    Здесь min_x и max_x - минимальные и максимальные координаты по оси x, а min_y и max_y по оси y. Итоговый прямоугольник - это просто пара этих точек.

  4. Цитата Сообщение от Олег Клюев
    Привет! Взаимное страдание понятно. Вот базовый пример кода, как можно сделать ограничивающий прямоугольник в Python. Мы просто проходим по всем точкам, находим минимальные и максимальные координаты.

    Программный код:
    points = [(12), (46), (28), (93)]
    min_x min(point[0] for point in points)
    max_x max(point[0] for point in points)
    min_y min(point[1] for point in points)
    max_y max(point[1] for point in points)

    rectangle = ((min_xmin_y), (max_xmax_y))
    print(
    rectangle
    Здесь min_x и max_x - минимальные и максимальные координаты по оси x, а min_y и max_y по оси y. Итоговый прямоугольник - это просто пара этих точек.
    О, прикольно! Даже проще, чем ожидал. Спасибо за развернутый ответ! Единственный вопрос: как это работает, если меньше точек, чем 2?

  5. Йо, если тебе хочется пример с функцией, то вот:

    Программный код:
    def bounding_box(points):
    min_x min(point[0] for point in points)
    max_x max(point[0] for point in points)
    min_y min(point[1] for point in points)
    max_y max(point[1] for point in points)
    return (
    min_xmin_y), (max_xmax_y)

    points = [(12), (34), (-1, -2)]
    print(
    bounding_box(points)) 
    Так красивше и можно переиспользовать. Леги!

  6. Цитата Сообщение от ВетровойСтранник
    Йо, если тебе хочется пример с функцией, то вот:

    Программный код:
    def bounding_box(points):
    min_x min(point[0] for point in points)
    max_x max(point[0] for point in points)
    min_y min(point[1] for point in points)
    max_y max(point[1] for point in points)
    return (
    min_xmin_y), (max_xmax_y)

    points = [(12), (34), (-1, -2)]
    print(
    bounding_box(points)) 
    Так красивше и можно переиспользовать. Леги!
    Крутяк, с функцией выглядит прям наилучше. Вроде бы с этим все будет работать четко. Гуд ответ!

  7. Хей, както так:

    Программный код:
    points = [(58), (23)]
    x_coordsy_coords zip(*points)
    min_xmax_x min(x_coords), max(x_coords)
    min_ymax_y min(y_coords), max(y_coords)
    rect = ((min_xmin_y), (max_xmax_y))
    print(
    rect
    Кто бы мог подумать, zip настолько ускорит дело. Тоже на заметку!

  8. Цитата Сообщение от IvanIce
    Хей, както так:

    Программный код:
    points = [(58), (23)]
    x_coordsy_coords zip(*points)
    min_xmax_x min(x_coords), max(x_coords)
    min_ymax_y min(y_coords), max(y_coords)
    rect = ((min_xmin_y), (max_xmax_y))
    print(
    rect
    Кто бы мог подумать, zip настолько ускорит дело. Тоже на заметку!
    Эгегей, зипчик тегать не забудь, хаха. Классный пейсик!

  9. Привет, бывает, что точки пустые, тогда об этом надо проверить:

    Программный код:
    def bounding_rectangle(points):
    if 
    not points:
    return 
    None
    min_x 
    min(point[0] for point in points)
    max_x max(point[0] for point in points)
    min_y min(point[1] for point in points)
    max_y max(point[1] for point in points)
    return ((
    min_xmin_y), (max_xmax_y))

    points = []
    print(
    bounding_rectangle(points))
    points = [(34), (56)]
    print(
    bounding_rectangle(points)) 
    Проверочку на содержимое точек всегда хорошая практика.

  10. Цитата Сообщение от Sashka939
    Привет, бывает, что точки пустые, тогда об этом надо проверить:

    Программный код:
    def bounding_rectangle(points):
    if 
    not points:
    return 
    None
    min_x 
    min(point[0] for point in points)
    max_x max(point[0] for point in points)
    min_y min(point[1] for point in points)
    max_y max(point[1] for point in points)
    return ((
    min_xmin_y), (max_xmax_y))

    points = []
    print(
    bounding_rectangle(points))
    points = [(34), (56)]
    print(
    bounding_rectangle(points)) 
    Проверочку на содержимое точек всегда хорошая практика.
    Навелет, проверка на пустоту, комбыны! Полезная вещь при любых раскладах. Конкретно нравится.

Страница 1 из 2 12 ПоследняяПоследняя