Курсовая работа: Построение траектории Броуновского движения
repeat
for i:=1 to N do
begin
// стираеммолекулу
PaintBox.Canvas.Brush.Color:=clBlack;
PaintBox.Canvas.Pen.Color:=clBlack;
PaintBox.Canvas.Ellipse(mol[i].x-R, mol[i].y-R, mol[i].x+R, mol[i].y+R);
// обработка столкновения
for j:=1 to n do
if j<>i then
begin
// определяем столкновение молекулы
if sqrt(sqr(mol[i].x-mol[j].x)+sqr(mol[i].y-mol[j].y))<2*R+1 then
begin
temp:=mol[i].Vx; mol[i].Vx:=mol[j].Vx; mol[j].Vx:=temp;
temp:=mol[i].Vy; mol[i].Vy:=mol[j].Vy; mol[j].Vy:=temp;
end;
end;
// сдвигаем на новую позицию.
mol[i].x:=mol[i].x+mol[i].Vx;
mol[i].y:=mol[i].y+mol[i].Vy;
// проверка на выход за границы области
if mol[i].x>PaintBox.Width-R then
begin
mol[i].x:=PaintBox.Width-R;
mol[i].Vx:=-mol[i].Vx;
end;
if mol[i].x<R then
begin