русс | укр

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

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

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

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


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

FreeMem(var P:pointer; size:word),


Дата добавления: 2015-09-15; просмотров: 659; Нарушение авторских прав


где

P - переменная-указатель, которой было присвоено значение функцией GetMem или оператором присваивания;

size - размер в байтах уничтожаемой динамической переменной. Ее размер должен совпадать с числом байт в памяти, распределенной ранее под эту переменную процедурой GetMem.

После вызова FreeMem, значение P становится неопределенным и последующие ссылки P будут ошибочны.

GetImage(X1,Y1,X2,Y2:integer; var BitMap) - процедура сохранения в памяти копии прямоугольного фрагмента изображения. X1,Y1,X2,Y2 - координаты, определяющие прямоугольную область экрана;

BipMap - переменная, куда будет помещена копия изображения. Определение размера для BipMap выполняется функцией ImageSize.

PutImage( X,Y:integer; var BitMap; BitBit:word) - процедура вывода в заданное место экрана копии фрагмента изображения, ранее помещенного в память процедурой GetImage.

X,Y - переменные, определяющие координаты левого верхнего угла того места на экране, куда будет скопирован фрагмент изображения. Координаты правого нижнего угла не указываются, так как они полностью определяются размерами выводимой на экран копии из памяти. Координаты левого верхнего угла могут быть какими угодно, однако если выводимая копия не может разместиться на экране, она не выводится и экран остается без изменений.

BitMap - переменная , откуда будет копироваться изображение;

BitBit - переменная , определяющая способ копирования.

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

Логическая операция определяется константами :

const

NortmalPut = 0; {замена существующего изображения на копию}

XorPut = 1; {исключительное ИЛИ}



OrPut = 2; {объединительное ИЛИ}

AndPut = 3; {логическое И}

NotPut = 4; {инверсия изображения}

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

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

1. определить прямоугольную область экрана, в которой пост-

роить изображение обьекта, используя стандартные подпрограммы модуля Graph;

2. используя процедуру ImageSize, определить размер прямоугольной области в байтах для сохранения изображения;

3. процедурой New создать динамическую переменную для хранения изображения обьекта ;

4. поместить копию обьекта в динамическую память процедурой PutImage и удалить ее с экрана;

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

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

выводить копию изображения процедурой GetImage с предваритель-

ным удалением предыдущей копии с экрана.

Наилучшее изображение обьекта можно получить, создав

несколько копий имитации движения, сохранив их в динамической

памяти и выводя последовательно одну за другой.

Пример. Вывод "летающей " тарелки.

uses Graph,Crt;

var

x,y,Driver,Mode:integer;

p:pointer;

begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

SetColor(2);

FillEllipse(30,40,25,10);

SetColor(3);

Line(38,40,15,10);

Line(22,40,51,10);

GetMem(p,ImageSize(0,0,60,60)); { создание динамической пе-

ременной для хранения прямоугольного фрагмента экрана}

GetImage(0,0,60,60,p^); { сохранение копии в динамической

x:=0; y:=0; памяти}

repeat

PutImage(x,y,p^,XORput);

x:=x+5;

y:=y+1;

PutImage(x,y,p^,XORput);

until KeyPressed;

CloseGraph

end.

 

 



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


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


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

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

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


 


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

 
 

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

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