Смекни!
smekni.com

Рисование в Delphi. Графический режим (стр. 2 из 2)

Для этого будем предварительно проверять цвет пикселя в той точке, в которую собираемся переместить снежинку, т.е. в точке с новыми координатами (x1,y1).

Если впереди препятствие определенного цвета (поверхность земли, а затем и упавший снег), то снежинка останавливается. При этом она меняет свой цвет, что позволяет летящим снежинкам прилипать к уже упавшим, образуя, таким образом, сугроб (снежный покров):

if canvas.pixels[x1,y1]<>claqua then

begin

canvas.Pixels[x1,y1]:=clred;

canvas.Pixels[x[k],y[k]]:=clbtnface;

x[k]:=x1;y[k]:=y1;

end

else

begin

canvas.pixels[x[k],y[k]]:=claqua;

x[k]:=random(500)+20;

y[k]:=50;

end;

Проект 12. Дымоход.

Нарисовать две наклонные линии стенок трубы (наклонные для скорости засорения трубы). Запустить снизу частички сажи и ждать когда засорится труба.

Проект 13. Электролиз.


Нарисовать в центре формы шар (катод).

Запустить с четырех сторонионы (частички) и ждать когда они налипнут на шар.

Для того, чтобы частички летели с разных сторон необходимо задать четыре пары массивов координат:

x[k], y[k] координаты k– ой точки, летящей слева.

x1[k], y1[k] координаты k– ой точки, летящей сверху.

x2[k], y2[k] координаты k– ой точки, летящей справа.

x3[k], y3[k] координаты k– ой точки, летящей снизу.

Проект 14. Берег.

Программа моделирует морские волны, которые размывают берег, изменяя рельеф береговой линии, в зависимости от твердости породы.

Работу над проектом разобьем на три этапа:

I. Нарисуем волны (в виде пикселей синего цвета) и поверхность земли (в виде зеленого прямоугольника с желтыми участками более легкой породы).

II. Заставим волны двигаться (докатываться до береговой линии).

III. Заставим волны размывать берег, уничтожая (унося в море) по одному пикселю береговой породы.

В итоге мы можем получить картинки следующего вида:

И через некоторое время: