модель идеального газа

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

nordlink19
новенький
Сообщения: 13
Зарегистрирован: 23.12.2009 18:03:05

Сообщение nordlink19 »

как увеличить кол-во малекул и как сделать что бы они сталкивались между собой :D
Climber
постоялец
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Сообщение Climber »

nordlink19 писал(а):как увеличить кол-во малекул
А они уже есть? А в каком виде?
nordlink19 писал(а):как сделать что бы они сталкивались между собой :D
Cначала напиши, как эти молекулы "выглядят".
nordlink19
новенький
Сообщения: 13
Зарегистрирован: 23.12.2009 18:03:05

Сообщение nordlink19 »

как сделать что бы они ещё и соударялись друг с другом :D
nordlink19
новенький
Сообщения: 13
Зарегистрирован: 23.12.2009 18:03:05

Сообщение nordlink19 »

как сделать что бы они ещё и соудорялись друг с другом ?
nordlink19
новенький
Сообщения: 13
Зарегистрирован: 23.12.2009 18:03:05

Сообщение nordlink19 »

if Moving then begin
Canvas.Pen.Color:=clBtnFace;
Canvas.Brush.Color:= clBtnFace;
Canvas.Ellipse(X-R,Y-R,X+R,Y+R);
if ((X+R+dx>ClientWidth) or (X-R+dx<0))then dx:=-dx;
if ((Y+R+dy>ClientHeight) or (Y-R+dy<0))then dy:=-dy;
X:=X+dx;
Y:=Y+dy;

Canvas.Pen.Color:=ColorCircle;
Canvas.Brush.Color:=ColorCircle;
Canvas.Ellipse(X-R,Y-R,X+R,Y+R);
nordlink19
новенький
Сообщения: 13
Зарегистрирован: 23.12.2009 18:03:05

Сообщение nordlink19 »

Все написал. шаров много. только проблема не могу понять в чем ошибка не сталкиваются и свё. но уже и не пересикают границы друг друга. чодят по краю.
Var
x1, y1, x2, y2: Real; {координаты центров}
r1, r2: Integer; {радиусы}
vx1, vy1, vx2, vy2: Real; {составляющие скоростей}

Procedure Bum;
var
l: Real; {Тот самый угол}
vx, vy: Real; {Дополнительные переменные}
begin
l:=Arctan((y2-y1)/(x2-x1)) - PI/2;
vx:=vx1;
vy:=vx2;
vx1:=(vx2+vy2)*cos(l);
vy1:=(vx2+vy2)*sin(l);
vx2:=(vx+vy)*cos(l+PI);
vy2:=(vx+vy)*sin(l+PI)

end;
Ответить