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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.