Практическое задание N 1. 51

Модифицировать программу "молекулы газа в поле тяготения":

1. Изменить направление поля тяготения (в правый нижний угол).

2. Точки ярких цветов направьте к правой границе экрана, точки темных цветов - к левой границе.

3. Для одной из точек (например, с номером 100) отслеживать ее движение в виде ломаной линии.

4. Смещать сто раз через один цикл (Repeat... Until) нижнюю границу на один пиксел вверх, затем вниз и т. д., моделируя изменение "объема сосуда с молекулами". Добавить оператор, контролирующий и изменяющий координаты точек, выходящих за границу.

{------------------------------------------------------------------

Фрагмент N 7 программы "пчелиный рой"

(рисование массива пикселов, хаотично перемещающихся около движущейся точки).

------------------------------------------------------------------}

for k:=1 to N do begin X[k]:= random(Gx);

Y[k]:= random(Gy);

P[k]:= random(16) end;

i:=1;

Repeat

if i < Gx then i:= i + 3; { смещение "центра" роя }

for k:= 1 to N do begin

dx:= -25 + random(51);

dy:= -25 + random(51); PutPixel(X[k], Y[k], 0);

if (X[k]+dx > 0) and (X[k]+dx < Gx) { контроль выхода пикселов }

then begin { за границу экрана }

if (X[k]+dx < Gx-i) then dx:= dx+5 { контроль выхода "центра" }

else dx:= dx-5; X[k]:= X[k]+dx { за границу экрана }

end;

if (Y[k]+dy > 0) and (Y[k]+dy < Gy) { контроль выхода пикселов }

then begin { за границу экрана }

if (Y[k]+dy<Gy div 2) then dy:= dy+5 { контроль выхода "центра" }

else dy:= dy-5; Y[k]:= Y[k]+dy { за границу экрана }

end;

PutPixel(X[k], Y[k], P[k])

End

Until KeyPressed;

{-----------------------------------------------------------------}

Эта программа - усложненный вариант фрагмента N6. Случайные смещения координат точек dx, dy сначала задаются равномерно из диапазона 25... 25. Затем анализируется местоположение каждой точки относительно полюса с координатами Gx-i, Gy div 2. Смещения координат корректируются так, чтобы точки "тяготели" к "центру". "Центр" перемещается из-за изменения параметра "i", чем моделируется перемещение роя.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: