русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-28; просмотров: 666; Нарушение авторских прав


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

Ниже приведена программа, в которой организовано перемещение по экрану окружности. В данном случае частоту обновления изображения можно регулировать варьированием продолжительности задержки (time) и величины перемещения (delta), а также размером объекта - переменная radius (чем меньше радиус окружности, тем меньше времени необходимо на ее прорисовку). Перед выполнением примера скопируйте в свой каталог драйвер egavga.bgi;

Program Multik;

Uses Graph, Crt;

Var

x,y,dy,dx,time,delta,radius,Gd,Gm: integer;

Begin

Gd := Detect;

InitGraph(Gd,Gm,''); {Включаем графический режим}

if GraphResult <> grOk then Halt(1);

Rectangle(0,0,GetMaxX,GetMaxY); {Рисуем рамку вокруг экрана}

x:=100; y:=100; { Начальные координаты центра окружности}

delta:=10; { Величина перемещения }

dx:=delta; { Величина перемещения по х }

dy:=delta; { Величина перемещения по у }

radius:=15 ; { Радиус окружности }

time:=10000; { Продолжительность задержки }

Repeat

SetColor(15); { Задание белого цвета для линий }

Circle(x,y,radius);{ Рисование белой окружности}



{ Смена направления движения при достижении края экрана }

{ и включение звукового сигнала }

if y>=GetMaxY-radius then { Нижний край }

begin dy:=-delta; Sound(2000); end;

if y<=radius then { Верхний край }

begin dy:= delta; Sound(3000); end;

if x>=GetMaxX-radius then { Правый край }

begin dx:=-delta; Sound(5000); end;

if x<=radius then { Левый край }

begin dx:= delta; Sound(4000); end;

Delay(time); { Задержка выполнения программы }

NoSound;

SetColor(0); { Задание черного цвета }

Circle(x,y,radius); { Рисование черной окружности }

x:=x+dx; y:=y+dy; { Расчёт новых координат }

{ Выход из программы при нажатии любой клавиши }

Until KeyPressed;

CloseGraph; { Выход из графического режима }

End.

Следующая программа рисует окружности, координаты которых, радиус и цвет определяются значениями функции синуса или косинуса. Параметры синусоид задаются случайными числами, поэтому образующаяся на экране фигура каждый раз будет отличаться от предыдущих.

В первом цикле Forприсходит прорисовка 200 окружностей различными цветами, а во втором закраска их черным цветом. Внутри первого цикла организована задержка с помощью процедуры Delay, для того чтобы между прорисовкой окружностей проходило некоторое время. Также задержка поставлена перед затиранием фигуры черным цветом. Завершение работы программы произойдет при нажатии любой клавиши.

Program Salut;

Uses Graph, Crt;

Var

n,y,x,a,b,c,f,e,i,Gd,Gm: integer;

Begin

Randomize; { Инициируем генератор случайных чисел }

Gd := Detect;

InitGraph(Gd,Gm,''); {Включаем графический режим}

if GraphResult <> grOk then Halt(1);

y:=round(GetMaxY/2); { Координаты центра экрана }

x:=round(GetMaxX/2);

n:=200; { Количество повторов }

c:=50;

Repeat

a:=random(c)+10;

b:=random(c)+10;

e:=5+random(20);

f:=random(120);

For i:=1 to n do

begin

Delay(50);

SetColor(round(i/10)+1);

Circle(round((y-i/e)*sin(i/a))+x,

round((y/2-i/e)*cos(i/b))+y,

f-round(c*sin(i/e)));

end;

delay(65535);

for i:=1 to n do

begin

SetColor(0);

Circle(round((y-i/e)*sin(i/a))+x,

round((y/2-i/e)*cos(i/b))+y,

f-round(c*sin(i/e)));

end;

Until KeyPressed;

CloseGraph;

End.



<== предыдущая лекция | следующая лекция ==>
Построение графика функции | Вычисление определённого интеграла численными методами


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.