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

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

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

*

*

081Ответ неверный. Использовать можно столько нестандартных шрифтов, 002

сколько файлов с такими шрифтами содержится в Вашем компьютере.

*

2Ответ неверный. Использовать можно стольконестандартных шрифтов, 002

сколько файлов с такими шрифтами содержится в Вашем компьютере.

*

3Ответ правильный. 005

*

4Ответ неверный . Такая возможность имеется . 002

*

*

091Ответ неврный. Таблица может содержать до 10 шрифтов, из них 6 002

нестандартных.

*

2Ответ правильный. 005

*

3Ответ неверный. Таблица может содержать до 10 шрифтов, из них 6 002

нестандартных.

*

4Ответ неверный. Таблица может содержать до 10 шрифтов, из них 6 002

нестандартных.

*

*

101Ответ правильный. 005

*

2Ответ неверный. Процедура GetTextSettings возвращает текущий тип 002

текстового шрифта.

*

3Ответ неверный. Процедура SetUserCharSize используется для изменения002

пропорций символов.

*

4Ответ неверный. Процедура SetTextJustify обеспечивает привязку 002

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

*

*

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

В данном разделе Вы ознакомитесь с возможностями компьютера

в области мультипликации, т.е. созданием эффекта движения статичес-

ких изображений.

Этот эффект можно достич используя динамическую и видеопамять

компьютера, одноканальный звукогенератор, возможность сдвига и нало-

жение изображений. Динамическая память используется для сохранения

образа подвижного обьекта и ,возможно, образа фона изображения и не

связывает пргограммиста с предопределенными размерами сохраняемых

фрагментов экрана.

Эффект движения создается циклическим уничтожением обьекта в

старом положении и выводом его образа из динамической памяти на

экран в новое положение. Уничтожение осуществляется либо заменой

соответствующего фрагмента экранного изображения образом фона из

динамической памяти, либо наложением на него образа такого же обь-

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

операции суммирования по mod 2.

Имеется возможность создания изображения одновременно на двух

страницах видеобуфера и таким образом осуществлять мгновенную смену

изображений на экране дисплея.

Рассмотрим процедуры, обеспечивающие эти возможности.

#

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

 

 

* function ImageSize(X1,Y1,X2,Y2:word):word;

 

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

области экранного изображения.Параметры (X1,Y1),(X2,Y2) задают соот-

ветственно координаты левого верхнего и правого нижнего узлов сохра-

няемой области экрана. Определяемый обьем памяти включает в себя

обьем растрового образа сохраняемой области экрана и два двухбайтных

слова, используемые для хранения ширины Width=X2-X1+1 и высоты

heidht=Y2-Y1+1 этой области.

Если обьем памяти, необходимый для сохранения области экрана,

превышает или равен 64К, то функция возвращает значение 0, а вспомо-

гательная функция GraphResult возвращает значение - 11(константа

grError). Учитывая, что в системе Turbo-Pascal при использовании

графического адаптера EGA независимо от графического режима полному

экрану соответствует дисплейная страница обьемом 128К. Указанное

ограничение по памяти эквивалентно ограничению площадей сохраняемых

областей до 1/2 площади экрана.

Для сохранения фрагмента экрана в динамической памяти компью-

тера необходимо создать соответствующую динамическую переменную. Это

делает процедура GetMem.

 

* procedure GetMem(var p:pointer; Size:word);

 

Создает новую динамическую переменную размера Size, которая

указывает размер динамической области в байтах, и помещает адрес

начала этого блока памяти в ссылочную переменную p, совместимую по

типу со всеми другими типами указателей.

На новую динамическую переменную можно ссылаться через указа-

тель р^. Наибольший размер блока, который можно разместить единовре-

менно, составляет 65 521 байт, наименьший - 1 байт.

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

 

 

Если динамическая область не фрагментирована, например в нача-

ле программы, последовательные вызовы данной процедуры возвращают

соседние блоки памяти. Когда в динамической области недостаточно

места для размещения новой переменной, возникает ошибка времени вы-

полнения программмы. Чтобы избежать этого можно использовать следу-

ющую функцию.

 

 

* function MaxAvail:longint;

 

Возвращает размер наибольшего непрерывного свободного блока,

имеющегося в динамической области памяти компьютера в текущий

момент.

 

 

* procedure GetImage(X1,Y1,X2,Y2:word;var BitMap);

 

Сохраняет в динамической памяти растровый образ заданной

прямоугольной области экрана. Параметры (X1,Y1),(X2,Y2) - коорд