Курсовая работа: Построение траектории Броуновского движения

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

К-во Просмотров: 1079
Бесплатно скачать Курсовая работа: Построение траектории Броуновского движения