Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Grafika_Turbo-Pascal.doc
Скачиваний:
24
Добавлен:
08.03.2015
Размер:
362.5 Кб
Скачать

Использование буфера экрана.

Любая информация, выводимая на экран отображается в видеопамяти дисплея. Вся доступная дисплейная память адаптеров CGA,EGA,VGA делится на отдельные образы экрана, называемыми страницами . Каждая страница определяется порядковым номером и задается абсолютным адресом хранения. В реальной работе используется только нулевая страница, адрес которой $B800:$0000.

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

Пример.

{-------------------------------}

{ пример сохранения копии экрана}

{ в динамической памяти }

{-------------------------------}

Program A;

uses Crt;

type Ekr=array[1..4000] of byte; { кол-во байтов для хранения }

var Ekran:Ekr Absolute $B800:0000; { одной копии экрана }

buf:^Ekr;

begin

Clrscr;

for n:=1 to 15 do

writeln(' Экран для сохранения ');

new(buf); { новая динамическая переменная }

buf^:=Ekran; { сохранение в ней копии экрана }

Clrscr;

writeln(' Восстановление экрана');

Delay(3000);

Ekran:=buf^; { восстановление зкраной копии }

dispose(buf);

readln

end.

Управление экраном в графическом режиме.

Экран ПЭВМ в графическом режиме представляется совокупностью светящихся точек - пикселей. Количество пикселей, выводимых на экран, определяется установленным графическим режимом.

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

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

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

Для активизации графического режима работы экрана необходимо иметь библиотеку стандартных графических подпрограмм GRAPH.TPU и графический драйвер (программа, управляющая техническими средствами), например, CGA.BGI. Обычно данные модули находятся в каталоге ТР, содержащем все основные модули TURBO PASCAL, в противном случае необходимо указать путь к соответствующему драйверу, а в OPTIONS\DIRECTORIES меню Turbo Pascal задать путь к библиотеке GRAPH.TPU.

Модуль Graph дает возможность установки графических окон, построения и заполнения различными стилями геометрических фигур: точки, линии, окружности, эллипса, дуги, прямоугольника, диаграммы. Для вывода текста используются разнообразные шрифты, которые можно увеличивать, выравнивать, ориентировать горизонтально и вертикально на экране.

Все процедуры и функции модуля Graph, данные в пособии,по функциональному назначению можно разделить на группы:

  1. Управление графическими режимами и их анализ

( DetectGraph, InitGraph, CloseGraph, GraphResult, GraphErrorsMsg, GraphDefaults, SetWriteMode, SetGraphMode, GetMaxMode, GetGraphMode, GetModeName, GetDriverNamen, ClearDevice, GetGraphName, GetModeRange).

  1. Управление текущим указателем

( MoveTo, MoveRel, GetMaxX, GetMaxY, GetX, GetY).

  1. Управление графическими окнами, страницами

( SetViewPort, ClearViewPort, GetViewSettings, SetActivPage, SetVisualPage).

  1. Управление цветом и шаблоном заполнения изображений.

(SetColor, SetBKColor, SetPalette, SetAllPalette, SetLineStyle, SetFillStyle, SetFillPattern, FloodFill GetColor, GetMaxColor, GetBKColor, GetPalette, GetPaletteSize, GetDefaultPalette, GetLineSettings, GetFillSettings,GetFillPattern).

  1. Изображение геометрических элементов

a) коэффициент сжатия изображений

( SetAspectRatio, GetAspectRatio ).

б) геометрические элементы

( Line, LineTo, LineRel, Arc, GetAspectCoords, Circle, Sector, Ellipse, FillEllipse, Rectangle, Bar, Bar3D, DrawPoly,

FillPoly).

  1. Битовые операции

( PutPixel, GetPixel, ImageSize, GetImage, PutImage).

  1. Вывод текста

(OutTextXY, OutText, SetTextStyle, SetTextJustify,

SetUserCharSize, TextHeight, TextWidth, InstallUserFont, RegisterBGIFont, GetTextSettings).

В данном разделе даны наиболее часто используемые в графическом режиме процедуры и функции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]