Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Бильярд...   Найти похожие ветки 

 
Ricks ©   (2006-06-18 12:32) [0]

... вернее столкновения. Народ, помогите мне разобраться со столкновениями шаров. Шары у меня взаимодействуют нормально, разлетаются куда надо, но проблема вот в чем - ИНОГДА большинство шаров начинают носиться как угорелые по всему столу, это происходит из за неконтролируемого прироста скорости, но откуда он берется неясно.
Вот мой кусочек кода:

для i-ого и j-ого шаров:
sx[.], sy[.] - положение шара
vx[.], vy[.] - скорость шара

  dx:=sx[j] - sx[i];
  dy:=sy[j] - sy[i];
  d:=rad[i] + rad[j];
  u:=sqrt(sqr(dx) + sqr(dy)) - d;
  if u < 0 then begin
   a:=ArcTan2( dy, dx );
   u:=abs(u);
   
   sx[i]:=sx[i] - cos(a) * u;
   sy[i]:=sy[i] - sin(a) * u;
   sx[j]:=sx[j] + cos(a) * u;
   sy[j]:=sy[j] + sin(a) * u;

   v1:=sqrt( sqr( vx[i] ) + sqr( vy[i] ) );
   v2:=sqrt( sqr( vx[j] ) + sqr( vy[j] ) );
   vx[i]:=vx[i] - (v1+v2) * cos(a);
   vy[i]:=vy[i] - (v1+v2) * sin(a);
   vx[j]:=vx[j] + (v1+v2) * cos(a);
   vy[j]:=vy[j] + (v1+v2) * sin(a);

PS: в теории я знаю - закон сохранения количества движения и закон сохранения энергии, но я думаю я их не так реализовал...


 
Ricks ©   (2006-06-18 12:47) [1]

Что из этого выходит можете посмотреть здесь:
http://www.ricks.pisem.net/b.zip


 
Ricks ©   (2006-06-19 00:57) [2]

Все, разобрался - где-то нашел то что нужно,
вот результат моих полудневных стараний:
http://www.ricks.pisem.net/b2.zip


 
Rial ©   (2006-06-19 01:22) [3]

Прикольно.
Только шарики слишком долго едут с очень маленькой скоростью.
Сделай нижний предел больше.
А силу кия наращивай быстрее.


 
Algol   (2006-06-20 13:00) [4]

А вращательное движение шара учитывается ?
А удар "с подскоком" ?


 
Ricks ©   (2006-06-20 14:44) [5]


> Rial ©

Уже сделал, еще что-нибудь придумаю, выложу новую версию

> Algol

Это в планах...



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
15-1176822673
oldman
2007-04-17 19:11
2007.05.20
Никто не знает, как там поживает соратник Билла Гейтса?


1-1174714805
Dismember
2007-03-24 08:40
2007.05.20
TrackBar, реагирующий на нажатия в своей области.


15-1176365475
Нирага Семен Прокофьевич
2007-04-12 12:11
2007.05.20
Использование языков программирования в различных областях


15-1176745280
ProgRAMmer Dimonych
2007-04-16 21:41
2007.05.20
Как же они меня достали!!!


2-1177413253
Aibolit
2007-04-24 15:14
2007.05.20
как сделать таймер в создаваемом сервисе