[геометрия] площадь произвольной фигуры...
кто силен в математике/геометрии, подскажите. как посчитать площадь произвольной фигуры, стороны которой - отрезки прямых?
для выпуклой фигуры задача крайне простая, но нужно именно для произвольной. |
задача абсолютно нерешабельная, ежели известны ток длины отрезков -- строй как хош.
ежели есть углы, то можно на треугольники порезать и их считать =)) |
фигура задана координатами вершин. сама себя не пересекает.
вопрос в том, по какому принципу делить на треугольники, если фигура невыпуклая? |
Вложений: 1
ну вот вариант навскидку.
1. фигура, конечно, не должна себя пересекать. 2. фигура д. лежать в одном квадранте, если не так - передвинь параллельным переносом. 3. площадь фигур есть сумма площадей трапеций, составленных одной гранью фигуры, перпендикулярами на ось х и проекцией грани. надеюсь, прощадь трапеции мы считаем без проблем. :) на иллюстрации будет S = S(abb1a1)+s(bcc1b1)-s(dcc1d1)-s(add1a1). решение о + или - принимаем след. образом. в каждую из точек верхней грани трапеции может приходить не более двух отрезков (фигура не пересекается, в т.ч. вершинами). один из этих отрезков есть верхняя грань трапеции, другой - иная грань фигуры. определяем, попадает эта "иная" грань внутрь трапеции или нет (разностью углов, определяем углы арктангенсом, например), если попадает, значит +, если не попадает, то -. алгоритм на практике не проверен, возможны косяки, но вроде похоже. |
Цитата:
|
Цитата:
|
Придумал нечто )
Варварское. Создаем мув. Строим фигуру, заливаем ее. Берем 4 крайних координаты. И начинаем пикс за пиксом заполнять и проверять hitTest() ; :) Как говорится метод "в лоб". |
идея смольного про трапеции меня подкупила. буду думать. придумаю - покажу.
но если у кого есть готовый алгоритм - велкам! =) |
Видимо, мне сегодня везет... %)
http://www.2devochki.ru/67/15467/1.html |
алгоритм на идее смольного будет более компактный. он будет работать и для невыпуклых фигур. и не через трапеции площади надо будет брать, а все через интегралы и вычислить их наперед аналитически. в этом случае фигуру и передвигать никуда не надо. я уже не говорю про дурацкую формулу герона для вычисления площади треугольника ( см.линк ) - ее только восьмиклассники применяют.
кстати и с непрямыми сторонами должно считать. просто два часа времени надо, чтобы отладить все и протестить. |
Часовой пояс GMT +4, время: 20:36. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.