Цитата(-Александр- @ 8.11.2007 11:26)
на каждое тело действуют по две силы, чтобы их сложить надо знать угол между ними
Зачем тебе угол между ними?..
Сложи их компоненты - да и все..
Расстояние между телами 1 и 2:
R12^2 = (x2-x1)^2 + (y2-y1)^2
R12 = Sqrt(R12^2)
Сила, действующая на тело 1 со стороны тела 2:
F12 = (m1*m2)/R12^2
Составляющая по х этой силы:
F12x = F12*Cos(Alpha) = F12*(x2-x1)/R12
Составляющая по х силы, действующей на тело 1 со стороны тела 3:
F13x = F13*(x3-x1)/R13
Составляющая по х полной силы на тело 1 со стороны обоих тел (2 и 3):
F1x = F12x + F13x
Составляющая по у той же силы:
F1y = F12y + F13y
Вот и все. У тебя есть сила, делишь ее на массу и получаешь ускорение. Как видишь, никаких многоэтажных формул.. Простой заменой индексов получаешь силы на остальные тела. Если вопользоваться массивами, то количество тел можно увеличивать безгранично..
Я тут, правда, схитрил
. Я неаккуратно обошелся со знаками. Этому нужно уделить отдельное внимание при программировании. Впрочем, не уверен, что это неправильно
.