Как найти координаты луча, который делит фигуру на равные по площади части? В three.js использую Shape. На его основе строю контур с использование кривых Безье.
Необходимо найти Y координату по которой делится фигура по этому контуру на равные по площади части.
Пока приходит на мысль только триангуляция фигуры, деление пополам и подсчет площади по каждую сторону, и так двигаться в направлении к части с большей площадью пока площадь обеих частей не будет одинакова с допустимой погрешностью

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

Для нахождения координаты Y, которая разделит фигуру на равные по площади части, вам действительно придется использовать методы триангуляции и подсчета площадей. Опишу примерный алгоритм, который вы можете использовать в Three.js:

Создайте контур фигуры с использованием кривых Безье и представьте его в виде переменной shape.

Триангулируйте фигуру, используя алгоритм триангуляции, доступный в Three.js (например, TriangulateShape).

Начните деление фигуры пополам по оси Y, начав с пробной координаты Y1.

Посчитайте суммарную площадь треугольников, находящихся выше Y1 и ниже Y1.

Если площади равны с заданной погрешностью, то Y1 - искомая координата Y.

Если площади не равны, сдвигайте координату Y1 в сторону части с большей площади и пересчитывайте площади.

Повторяйте шаги 5-6 до тех пор, пока площади не станут равными.

Это довольно сложный и вычислительно затратный алгоритм, но он позволит вам найти нужную координату Y. Не забудьте учесть особенности кривых Безье при расчете площадей треугольников.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 89 810 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир