[identity profile] egor-13.livejournal.com posting in [community profile] useful_faq
..А может, стандартная (для математика-тополога), но я просто об этом не знаю?
В общем, так. Как известно, если некую фигуру вырезать из бумаги и подвесить сперва за любую точку, а потом за другую, то две линии, проведенные от точки подвешивания отвесно, пересекутся в ее центре тяжести.
А можно ли рассчитать ту же самую точку, в которой окажется центр тяжести, не вырезая и не подвешивая? То есть: имеется многоугольник (неправильной конфигурации, но внутри которого все углы меньше 180 градусов) - как можно рассчитать (и можно ли вообще) центр этого многоугольника по координатам его вершин, если он построен на обычной координатной сетке?

Date: 2007-04-10 10:28 am (UTC)
From: [identity profile] artemis-r.livejournal.com
Если плотность многогранника равномерна, то центр тяжести находится так.
Проводите любую прямую, затем проводите медианную линию ( в случае многогранника это будет ломаная) через середины отрезков, ограниченных многогшранником и параллельных исходной линии.

Потом проводите другую прямую, в другом направлении, и еще одну медиану. Центр тяжести на пересечении медиан.

Date: 2007-04-10 11:26 am (UTC)
From: [identity profile] artemis-r.livejournal.com
РИсунок не могу. Попробуйте так. Берете любую прямую и через все углы многоугольника проводите параллельные прямые. Середины этих отрзков представляют собой ломаную.
Потом берете вторую линию - и тоже через все вершины проводите параллели и рисуете вторую ломаную.
На пересечении центр тяжести.

Date: 2007-04-10 01:13 pm (UTC)
From: [identity profile] artemis-r.livejournal.com
Единой формулы, естественно, не существует, т.к. у нас речь идет о ломаной и отрезках.
Но алгоритм такой.
Допустим, у нас есть вершины А1 (x1,y1), A2(x2,у2) и т.д.
1. Рассчитаем стороны многоугольника. Каждый отрезок задается
а) уровнением прямой, проходящей через 2 соседние вершины, для этого надо решить систему уравнений типа
Yn = K*Xn + B
Yn+1 = K*Xn+1 + B
, получаем K=(Yn - Yn+1)/(Xn - Xn+1) В = Yn - Xn*(Yn - Yn+1)/(Xn - Xn+1)
в результате получаем уравнение Y = (X-Xn)*(Yn - Yn+1)/(Xn - Xn+1) + Yn

б) неравенствами, ограничивающими занчения Х и Y между соответствующими координатами вершин. Например, Xn <= X <= Xn+1

2. Проводим сначала через все вершины прямые, параллельные оси ОХ - y=y1, y=y2 и пр.

3. Сравниваем полученные прямые с неравенствами для сторон. Там, где значение y попадает в нужный интервал - рассчитываем кординату пересечения прямой ( Y = Ym) со стороной. ДЛя этого нужно решить уравнение:
Ym = (X-Xn)*(Yn - Yn+1)/(Xn - Xn+1) + Yn
Получим точку с координатами Х=(Xn - Xn+1)*(Ym-Yn)/(Yn - Yn+1) + Xn.

4. Далее, находим середины отрезков между точкой пересечения со стороной и вершиной, из которой опущена прямая.

5. Далее проводим чере5з вершины линии типа X=XmЮ и аналогично находим медианы.





Date: 2007-04-10 01:30 pm (UTC)
From: [identity profile] yokkavi.livejournal.com
А если взять среднее арифметическое координат всех вершин по Х и потом ср ар координат по Y не получится той же точки?.....

Date: 2007-04-10 01:35 pm (UTC)
From: [identity profile] yokkavi.livejournal.com
ух ты, акая глупость...=Р

Date: 2007-04-10 02:52 pm (UTC)
From: [identity profile] yokkavi.livejournal.com
Нее... Здесь получится только с симметричными фигурами, кажется... А вот со среднем геометрическим... Отпишитесь обязательно!

Date: 2007-04-10 12:01 pm (UTC)
From: [identity profile] ex-mysteelhe377.livejournal.com
Взять интеграл надо

Date: 2007-04-10 12:12 pm (UTC)
From: [identity profile] ex-mysteelhe377.livejournal.com
Сейчас не могу:( но помню, что это стандартная задача и чуть ли ни в каждом справочнике по высшей математике рассматривалась. Пошуршите по ссылкам, что я дал, если не выйдет,попробую найти у себя справочник

Date: 2007-04-10 12:07 pm (UTC)
From: [identity profile] ex-mysteelhe377.livejournal.com
полистайте (http://www.google.com/xhtml/search?client=ms-opera_mb_no&channel=bm&hl=ru&mrestrict=xhtml&q=%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB+%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5+%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0+%D1%82%D1%8F%D0%B6%D0%B5%D1%81%D1%82%D0%B8+%D0%BF%D0%BB%D0%BE%D1%81%D0%BA%D0%BE%D0%B9+%D1%84%D0%B8%D0%B3%D1%83%D1%80%D1%8B&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&site=search), похоже информации много. Извините, что не привожу конкретного решения:(

Date: 2007-04-10 12:23 pm (UTC)
From: [identity profile] ex-mysteelhe377.livejournal.com
Составьте систему уравнений. От Х1 до Х2 (включая) такая-то формула, от Х2(исключая) до Х3 сякая формула.
Всё получится)
моменты от частей фигуры справа и слева от некоей линии должны быть равны. Задача-найти координату линии. Одну линию пускаете параллельно оси Х, вторую- параллельно при У. Пересечение-центр тяжести.
Круто?:-)

Date: 2007-04-10 01:17 pm (UTC)
From: [identity profile] yokkavi.livejournal.com
Блииин... Я же теперь до вечера ее решать в координатах буду, нельзя же так! Я же пока не решу не успокоюсь.... ='(((

Date: 2007-04-11 02:11 pm (UTC)
From: [identity profile] a-bronx.livejournal.com
http://algolist.manual.ru/maths/geom/polygon/center_mass.php