русс | укр

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

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

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

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


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

Управление видеостраницами


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


Память видеоадаптеров разделена на так называемые страницы, или видеостраницы. По умолчанию в графическом режиме действия производятся с нулевой страницей, поэтому практически во всех предыдущих примерах было видно, как рисуются на экране фигуры. Однако, если направить вывод изображений на ненулевую страницу (при условии, что такая доступна в текущем режиме видеоадаптера — см. табл. 19.4), то на экране ничего не отобразится, поскольку по умолчанию видимой является нулевая страница. Если же после этого дать команду считать видимой «скрытую» страницу, то она появится на экране буквально мгновенно (конкретно: за один прямой проход луча в кинескопе). Проделать все это позволяют две процедуры:

SetVisualPage(Page : Word)

которая устанавливает «видимой» на экране видеостраницу номер Page, и процедура

SetActivePage( Page : Word ) {454}

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

На рис. 19.30 показан типичный пример использования этих процедур.

(* Пример только для адаптеров EGA и VGA !!! *) USES Graph, CRT; { используется Graph и CRT } {$I initgraf.pas} { процедура инициализации } PROCEDURE Forms(kadr:Byte); { рисование кадров 0..3 } CONST Radius : Array [0..3] of Integer = (20, 40, 60, 80); VAR r, rr : Integer; { радиусы эллипсов в кадрах } BEGIN r := Radius[kadr]; { максимальный радиус } rr := 0; { радиус вложенного эллипса } repeat Ellipse(GetMaxX div 2,GetMaxY div 2, 0, 360, r, rr); Inc(rr, 5) until rr>=r; END; PROCEDURE AnimEGAVGA; { процедура смены кадров } CONST ms = 60; { задержка между кадрами, мс } VAR i : Byte; { параметр циклов смены } BEGIN Repeat { цикл до нажатия клавиши... } for i:=0 to 3 do begin { Смена видеостраниц: прямо } SetVisualPage(i); Delay( ms ) end; for i:=3 downto 0 do begin { ... и обратно } SetVisualPage(i); Delay(ms) end; until KeyPressed; { условие окончания показа } END; VAR (* ОСНОВНАЯ ЧАСТЬ ПРИМЕРА *) i : Byte; { параметр (номер кадра) } BEGIN GrInit; { инициализация графики } SetGraphMode( EGALo ); { режим EGA, 640x200, 4 стр. }

Рис. 19.30 {455}



for i:=3 downto 0 do begin { Цикл заполнения страниц: } SetVisualPage(Succ(i) mod 4); { Видим "пустоту" } SetActivePage(i); {и готовим кадр } Forms(i) { рисунок кадра } end; {for} AnimEGAVGA; { начало "оживления" кадров } CloseGraph { закрытие режима графики } END.

Рис. 19.30 (окончание)

Здесь показано использование процедур SetActivePage и SetVisualPage для алгоритма «кадровой» мультипликации. Особенность ее заключается в том, что все кадры (здесь их четыре) сначала записываются на соответствующие страницы, а затем производится последовательное переключение отображения страниц на дисплей процедурой SetVisualPage.



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


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


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

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

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


 


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

 
 

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

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