Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Способы создания движущихся изображений





 

1-ый способ. Дважды рисуя одно и то же изображение: первый раз цветом, отличным от цвета фона, второй раз – цветом фона.

2-ой способ. Используя процедуры и функции работы с видеопамятью. Изображение движется с помощью операции NormalPut.

3-ий способ. Используя процедуры и функции работы с видеопамятью. Изображение движется с помощью операции XorPut.

 

Пример программы движения шарика, падающего с левого верхнего угла экрана по диагонали в правый нижний.

 

1-ый способ.

Program Demo_1;

Uses

Graph,Crt;

Var

Driver,Mode,i:Integer;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

SetBkColor(Black);

For i:=25 to 300 do {схема движения шарика}

Begin

{рисуем шарик}

SetColor(Red); {цвет границы – красный}

Circle(i,i,15); {рисуем контур шарика}

SetFillStyle(SolidFill,Blue);

{стиль заполнения – синий фон}

FloodFill(i,i,Red); {закрасили}

{стираем шарик, закрашивая его цветом фона}

SetFillStyle(SolidFill,Black);

{стиль заполнения – черный фон}

FloodFill(i,i,Red); {закрасили}

SetColor(Black); {цвет границы – черный}

Circle(i,i,15); {нарисовали черный контур

на черном фоне, шарик исчез}

Delay(3000); {пауза}

end;

{чтобы шарик остался на экране, нарисуем его еще раз}

SetColor(Red);

Circle(i,i,15);

SetFillStyle(SolidFill,Blue);

FloodFill(i,i,Red);

ReadLn;

CloseGraph;

End.

 

Ой способ.

Program Demo_2;

Uses Graph,Crt;

Var

P:Pointer; {определяем нетипизированный указатель}

Size:Word;

Driver,Mode,i:Integer;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

{рисуем закрашенный шарик}

SetBkColor(Black);

SetColor(Red);

Circle(30,30,15);

SetFillStyle(SolidFill,Blue);

FloodFill(30,30,Red);

size:=ImageSize(5,5,50,50); {определяет объем памяти,}

{необходимый для сохранения изображения}

GetMem(P,Size); {выделяет память в динамически}

{распределяемой области размером в size байт}

GetImage(5,5,50,50,P^); {запоминаем изображение}

for i:=5 to 300 do

Begin

PutImage(i,i,P^,NormalPut); {выводим изображение}

Delay(3000); {пауза}

end;

ReadLn;

CloseGraph;

End.

 







Date: 2015-10-19; view: 269; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию