Как высчитать площадь у объекта? Помогите понять как решить рабочую задачу:
У меня есть прямоугольники(могут быть произвольные), у которых я знаю ширину, высоту и X/Y верхней левой точки. В эти прямоугольники программа вписывает прямоугольник(т.е. все заполнят) или эллипсы(при равной высоте и ширине круг) или треугольник. Я понимаю как найти площадь каждой из фигур, но как найти общую площадь которая исключает наложение сторон(т.е. если грани накладывались одна на одну - учитывать только одна )?
Единственный, пока вариант который придумал - создание массива размером 1 в 1 к реальным элементам, который как бы будет оцифровывать каждый из объектов. Но в таком варианте не могу понять, как правильно находить изгибающиеся точки, например, которые огибают круг.
Кто-то сталкивался с подобной задачей? Что можете посоветовать?

21 Авг 2019 в 06:16
215 +1
0
Ответы
1

Для решения данной задачи можно воспользоваться алгоритмом сканирующей строки.

Создайте массив, в котором каждый элемент будет представлять собой отрезок на оси Y. Этот массив будет содержать информацию о том, какие объекты попадают в данный отрезок.

Пройдитесь по всем объектам и отметьте соответствующие отрезки в массиве.

Пройдитесь по массиву и рассчитайте общую площадь, исключая пересечения.

Для нахождения изгибающихся точек можно использовать более сложные алгоритмы и методы, такие как растеризация, сегментное дерево или диаграмма Вороного, в зависимости от конкретных особенностей вашей задачи.

20 Апр 2024 в 13:21
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир