Re: Бильярдное поле.
От: alex_ez Россия alex.jife.ru
Дата: 06.05.06 11:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Допустим есть большое бильярдное поле, на нем шары. Потери при соударениях небольшие, поэтому пущеный шар вполне может расшевелить все остальные.


А>Задача алгоритма — расчитывать положения шаров во времени, оптимально по времени и памяти. Или, (если это поможет) только соударения с границами поля.


А>В голову приходит только самый очевидный и очень медленный способ просчета. А может есть и другие?


А>PS. Кручения можно не учитывать.



тебе надо функции x(t), y(t), x,y — координата шара, t — время ?

если да — то опередляешь границы поля, например, x E (0, w); y E (0, h); E — принадлежит, w,h — ширина, высота поля.

возмем один шар

придаем ему импульс — дальше он сам катится...

x(t), y(t) — будут циклическими функциями, наподобие синуса, но не плавно ( c переменным ускорением ), а с постоянным.

то есть, например, при скорости (поx, поy) = (3,5), и (w,h) = (10, 10) :
t 0  1  2         3           4
x 0  3  6         9           2*w-(9+3)=8
y 0  7  2*h-14=6  -1*(6-7)=1  1+7=8


короче, скорость и размеры поля (w,h) — определяют период колебания функций x(t), y(t).
заметь, что они независыми. я не ошибся, написав две функции, несмежные друг с другом.

НО:
если рассматривать бильярдный шар не как точку, а как круг, надо учитывать, что у него могут быть две точки касания со стенкой поля.


p.s.
только идея, но вдруг поможет...
silence in quite