Обучающая программа "Графика" программированию в графическом режиме на языке turbo-pascal 7.x

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?ера. Страницы имеют номера 0 и 1 и графический вывод

по умолчанию осуществляется на 0-ю страницу.

 

 

* procedure SetVisualPage(Page:word);

 

Задает номер Page отображаемой на экран дисплейной страницы

видеобуфера. По умолчанию визуализируется страница, на которую нап-

равляется графический вывод.

Приведем пример программы, обеспечивающей создание эффекта

перемещения обьекта как в предыдущем примере:

#

ПРОГРАММИРОВАНИЕ ОЗВУЧЕННЫХ ДИНАМИЧЕСКИХ СЦЕН

 

 

......

var:integer;

......

begin

...... {по умолчанию вывод и визуализация 0-страницы}

for I:=1 to(GetMaxX-50) do

{перемещение обьекта}

begin Bar(I-1,50,I+50-1,100);

{формирование обьекта в (I-1)положении}

SetActivePage(1);

{установка вывода на 1-ю страницу}

ClearDevice;

{очистка 1 страницы}

Bar(I,50,I+50,100);

{формирование обьекта в I положении}

SetVisualPage(1);

{визуализация 1 страницы}

SetActivePage(0);

{установка вывода на 0-ю страницу}

ClearDevice;

{очистка 0-й страницы}

end;

......

end.

#

ПРОГРАММИРОВАНИЕ ОЗВУЧЕННЫХ ДИНАМИЧЕСКИХ СЦЕН

 

 

* procedure Sound(Frequency:word);

 

Включает внутренний звукогенератор компьютера. Параметр

Frequency задает частоту генерации однотонального звука в герцах

в диапазоне от 37 до 32767.

 

Частоты первой октавы нотного ряда

--------------------------------------------------------------------

Ноты До Ре Ми Фа Соль Ля Си

--------------------------------------------------------------------

Частоты 523,3 587,3 659,3 698,5 784,0 880,0 987,7

--------------------------------------------------------------------

 

Частоты нот каждой более высокой или низкой октавы прибли-

женно получаются удвоением или делением на 2 частот одноименных нот

последующей или предыдущей октавы соответственно.

 

Звуковой генератор работает под управлением специальной мик-

росхемы-таймера и центральный процессор после выполнения процедуры

Sound можежтж продолжать вычислительный процесс одновременно с рабо-

той звукогенератора.

 

 

* procedure NoSond;

 

Прекращает работу звукогенератора. Приведем фрагмент программы

программы, обеспечивающий воспроизведение ноты "До" в течение 3 сек.

...... Sound(523);

Delay(3000);

NoSound; ......

ПРОГРАММИРОВАНИЕ ОЗВУЧЕННЫХ ДИНАМИЧЕСКИХ СЦЕН

 

 

2 Приведем пример использования описанных выше процедур.

#

ПРОГРАММИРОВАНИЕ ОЗВУЧЕННЫХ ДИНАМИЧЕСКИХ СЦЕН

 

 

* function ReadKey:char;

 

Считывает символ с клавиатуры не отображая его на экран. Если

перед обращением к данной функции функция KeyPressed имела значение

true , то символ считывается немедленно, в пртивном случае функция

ожидает нажатия клавиши.

Обычные алфавитно-цифровые клавиши возвращают однобайтные коды

в стандарте ASCII. Специальные клавиши (управление курсором, Alt,

Ctrl и т.п. при нажатии возвращают расширение, двухбайтные коды

ASCII. При нажатии специальной клавиши функция возвращает сначала

нулевой символ null,а затем расширенный код клавиши.

Нулевые символы не могут быть получены никаким другим путем.

Этим обеспечивается то, что следующим символом будет расширенный код

клавиши.

В качестве расширения стандарт языка разрешает вставлять в

строку символов управляющие символы, например #.

Приведем фрагмент программы, в котором в переменную с именем Ch

считывается символ или расширенный код клавиши и для переменой

FuncKey булевского типа устанавливается значение true, если символ

является кодом специальной клавиши:

 

......

Ch:=ReadKey;

If Ch<> # then FuncKey:=False

else

begin

FuncKey:=true;

Ch:=ReadKey

end;

......

ПРОГРАММИРОВАНИЕ ОЗВУЧЕННЫХ ДИНАМИЧЕСКИХ СЦЕН

 

 

* procedure SetWriteMode(WriteMode:integer);

 

Устанавливает режим записи при вычерчивании линий с помощью

процедур формирования прямолинейных изображений (кроме процедуры

Bar3D). Процедура описана в модуле Craph. Параметр может принимать

следующие значения:

CopyPut = 0 - простое замещение - вычерчиваемая линия "затирает" то,

что было на экране.

XORPut = 1 - сложение по mod 2 - обеспечивается комбинирование вы-

водимой линии с экранным изображе-

нием на основе выполнения поточеч-

ной поразрядной операции суммиро-

вания по модулю2.

 

Важно, что два одинаковых вывода на экран в режиме XORPut при-

ведут сначала к стиранию линии на экране, а затем в восстановлению

исходного экранного изображения.

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01КАКОВЫ ФУНКЦИИ ПРОЦЕДУРЫ ImageSize?

 

1 Создание новой динамической переменной.

 

2 Сохранение в динамической памяти растрового образа заданной прямоугольной области экрана.

 

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

 

4 Вывод в заданное место экрана хранимого в динамической памяти растров?/p>