Информатика на пять О нас
 Добавить в избранное
5byte.ru
 Теория
 8 класс
 9 класс
 10 класс
 11 класс
Задания
 8 класс
 9 класс
 10 класс
 11 класс
Книги
Тесты
ЕГЭ
Turbo Pascal 7
 Описание
 Задачи
HTML
Рефераты

16.4. Модуль Graph

Модуль Graph содержит типы, константы, переменные и подпрограммы, позволяющие программисту создавать изображения с использованием широкого набора графических адаптеров (CGA, MCGA, EGA, VGA, Hercules, AT&T400, 3270РС, IBM8514).

При работе с этими адаптерами весь экран разбивается на отдельные "точки" - пиксели, которые можно закрасить в тот или иной цвет. Каждый пиксель имеет две координаты: X и Y. Координата X увеличивается по горизонтали слева направо, начиная от нуля, координата Y увеличивается по вертикали сверху вниз, также начиная от нуля. Таким образом левый верхний пиксель имеет координаты (0,0). Количество пикселей зависит от типа адаптера и режима его работы (см. табл. 17).

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

Так же как и в текстовом режиме при использовании модуля Crt, модуль Graph позволяет выделять окна на экране дисплея. Графические процедуры и функции в этом случае используют координаты в пределах окна, причем левый верхний угол окна получает координаты (0,0).

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

Стандартные типы, используемые в модуле, позволяют компактно представить информацию, необходимую для графических изображений. Эти типы приведены в табл. 16.

Таблица 16. Стандартные типы модуля Graph


Имя                                   Определение

     Цвета палитры
PaletteType   record
             Size: Byte;                  {Количество цветов}
             Colors: array[0..MaxColors]
               of Shortint                {используемые цвета}
            end;


     Характеристики линии
LineSettingsType   record
             LineStyle: Word;              {тип линии}
             Pattern: Word;                {шаблон линии}
             Thickness: Word               {толщина линии}
            end;


     Характеристики текста
TextSettingsType   record
             Font: Word;                   {тип шрифта}
             Direction: Word;              {направление текста}
             CharSize: Word;               {размер символов}
             Horiz: Word;                  {гориз. выравнивание}
             Vert: Word                    {вертик. выравнивание}
            end;


     Орнамент и цвет заполнения
FillSettingsType record
             Pattern: Word;                 {шаблон}
             Color: Word                    {цвет заполнения}
            end;


     Задаваемый пользователем орнамент заполнения
FillPatternType array [ 1. . 8 ] of Byte;

     Координаты точки
PointType record
             X,Y: Integer
            end;


     Окно вывода графической информации
ViewPortType record
             X1,Y1,X2,Y2: Integer;           {координаты окна}
             Clip: Boolean.                  {признак усечения}
            end;


     Данные о дуге
ArcCoordsType record
             X,Y: Integer;                    {центр дуги}
             Xstart,Ystart: Integer;          {начало дуги}
             Xend,Yend: Integer               {конец дуги}
            end;



Тип PaletteType содержит количество цветов (Size) и сами цвета (Colors).

Тип LineSettingsType содержит тип линии (см. табл. 23), шаблон (задается пользователем, если выбран тип линии UserBitLn, - см. процедуру SetLineStyle) и толщину линии (см. табл. 24).

Тип TextSettingsType содержит тип шрифта (стандартные шрифты см. в табл. 29), направление размещения текста (по горизонтали или вертикали - см. там же), размер символов, а также выравнивание по горизонтали и вертикали (см. табл. 30).

Тип FillSettingsType содержит код орнамента заполнения фигур (см. табл. 27) и цвет заполнения.

Тип FillPatternType содержит кодировку задаваемого пользователем орнамента заполнения. Величина такого типа содержит информацию о заполнении участка экрана 8x8 пикселей (каждому пикселю отводится один бит информации). Если соответствующий бит содержит 1, пиксель закрашивается в цвет заполнения, в противном случае - в цвет фона.

Тип PointType содержит координаты точки экрана, отсчитываемые в пикселях, причем самая левая или верхняя координата имеет значение 0.

Тип ViewPortType содержит параметры окна экрана (координаты левого верхнего и правого нижнего углов, признак усекания изображаемых фигур - если он равен True, отсекаются участки фигур, не помещающиеся в текущем окне).

Тип ArcCoordsType содержит параметры дуги (центр дуги, начальную и конечную точки, лежащие на дуге).

Список констант модуля, определяющих графический режим, см. в табл. 17.

Таблица 17. Константы графических режимов модуля Graph

Имя Значение Размер поля Палитра Число страниц
АТТ400С0
АТТ400С1
АТТ400С2
АТТ400СЗ
ATT400Med
ATT400Hi

CGAC0
CGAC1
CGAC2
CGAC3
CGAHi

EGALo
EGAHi
EGA64LO
EGA64Hi
EGAMonoHi

HercMonoHi

IBM8514LO
IBM8514Hi

MCGAC0
MCGAC1
MCGAC2
MCGAC3
MCGAMed
MCGAHi

РС3270Hi

VGALo
VGAMed
VGAHi
0
1
2
3
4
5

0
1
2
3
4

0
1
0
1
0

0

0
0

0
1
2
3
4
5

0

0
1
2
320x200
320x200
320x200
320x200
640x200
640x400

320x200
320x200
320x200
320x200
640x200

640x200
640x350
640x200
640x350
640x350

720x348

640x480
1024x768

320x200
320x200
320x200
320x200
640x200
640x480

720x350

640x200
640x350
640x480
С0
С1
С2
СЗ
2 цвета
2 цвета

С0
C1
С2
С3
2 цвета

16 цветов
16 цветов
16 цветов
4 цвета
2 цвета

2 цвета

256 цветов
256 цветов

С0
С1
С2
С3
2 цвета
2 цвета

2 цвета

16 цветов
16 цветов
16 цветов
1
1
1
1
1
1

1
1
1
1
1

4
2
1
1
1 или 2

2




1
1
1
1
1
1

1

4
2
1

В этой таблице палитра СО включает цвета: светло-зеленый, розовый и желтый, палитра С1 - цвета светло-голубой, светло-фиолетовый и белый, палитра С2 - цвета зеленый, красный и коричневый, палитра СЗ - голубой, фиолетовый и светло-серый. Остальные константы модуля приведены в табл. 18-30.

Таблица 18. Коды драйверов графических устройств

Имя Значение Назначение
Detect
CGA
MCGA
EGA
EGA64
EGAMono
IBM8514
HercMono
АТТ400
VGA
PC3270
CurrentDriver
0
1
2
3
4
5
6
7
8
9
10
-128
Автоматический выбор драйвера










Текущий драйвер

Таблица 19. Коды ошибок, возвращаемые функцией GraphResult

Имя Значение Назначение
grOk
grNoInitGraph
grNotDetected
grFileNotFound
grInvalidDriver
grNoLoadMem
grNoScanMem
grNoFloodMem
grFontNotFound
grNoFontMem
grInvalidMode
grError
grIOerror
grInvalidFont
grInvalidFontNum
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
Успешное выполнение
Не установлен графический режим
Графический режим не предусмотрен
Нет драйвера устройства
Ошибка в драйвере
Нет памяти для загрузки драйвера
Нет памяти для сканирования
Нет памяти для закраски
Не найден файл со шрифтом
Нет памяти для загрузки шрифта
Недопустимый режим для выбранного драйвера
Ошибка графической системы
Ошибка ввода-вывода графической системы
Ошибка в файле со шрифтом
Неверный номер шрифта

Таблица 20. Коды цветов (для процедур SetPalette и SetAllPalette)

Имя Значение Назначение
Black
Blue
Green
Cyan
Red
Magenta
Brown
LightGray
DarkGray
UghtBlue
LightGreen
LightCyan
LightRed
LightMagenta
Yellow
White
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Черный
Синий
Зеленый
Голубой
Красный
Фиолетовый
Коричневый
Светло-серый
Темно-серый
Светло-синий
Светло-зеленый
Светло-голубой
Розовый
Светло-фиолетовый
Желтый
Белый

Таблица 21. Коды цветов (для процедуры SetRGBPalette)

Имя Значение Назначение
EGABlack
EGABlue
EGAGreen
EGACyan
EGARed
EGAMagenta
EGABrown
EGALightGray
EGADarkGray
EGALightBlue
EGALightGreen
EGALightCyan
EGALightRed
EGALightMagenta
EGAYellow
EGAWhite
0
1
2
3
4
5
20
7
56
57
58
59
60
61
62
63
Черный
Синий
Зеленый
Голубой
Красный
Фиолетовый
Коричневый
Светло-серый
Темно-серый
Светло-синий
Светло-зеленый
Светло-голубой
Розовый
Светло-фиолетовый
Желтый
Белый

Таблица 22. Максимальное количество цветов в палитре

Имя Значение
MaxColors 15

Таблица 23. Коды типов линий для процедур GetLineStyle, SetLineStyle и GetLineSettings

Имя Значение Назначение
SolidLn
DottedLn
CenterLn
DashedLn
UserBitLn
0
1
2
3
4
Сплошная
Пунктирная
Штрихпунктирная
Штриховая
Заданная пользователем

Таблица 24. Толщины линий для процедур GetLineStyle, SetLineStyle и GetLineSettings

Имя Значение Назначение
NormWidth
ThickWidth
1
3
Нормальная
Толстая

Таблица 25. Управление отсечением фигур для процедуры SetViewPort

Имя Значение Назначение
ClipOn
ClipOff
True
False
Отсекаются не помещающиеся в окне части фигур
He отсекаются не помещающиеся в окне части фигур

Таблица 26. Константы изображения параллелепипеда для процедуры Ваr3D

Имя Значение Назначение
TopOn
TopOff
True
False
Закрашивается верхняя грань
He закрашивается верхняя грань

Таблица 27. Константы орнамента заполнения для процедур GetFillStyle и SetFillStyle

Имя Значение Назначение
EmptyFill
SolidFill
LineFill
LtSlashFill
SlashFill
BkSlashFill
LtBkSlashFill
HatchFill
XHatchFill
InterleaveFill
WideDotFill
CloseDotFill
UserFill
0
1
2
3
4
5
6
7
8
9
10
11
12
Заполнение цветом фона
Однородное заполнение цветом
Заполнение ---
Заполнение ///
Заполнение /// толстыми линиями
Заполнение \\\ толстыми линиями
Заполнение \\\
Заполнение клеткой
Заполнение косой клеткой
Заполнение частой сеткой
Заполнение редкими точками
Заполнение частыми точками
Заполнение определяется пользователем

Таблица 28. Константы битовых операций для процедур Putlmage и SetWriteMode

Имя Значение Назначение
CopyPut
XORPut
OrPut
AndPut
NotPut
0
1
2
3
4
MOV
XOR
OR только для PutImage
AND только для PutImage
NOT только для PutImage

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

Таблица 29. Характеристики шрифтов для процедур SetTextStyle и GetTextStyle

Имя Значение Назначение
DefaultFont
TriplexFont
SmallFont
Sans Serif Font
GothicFont
HorizDir
VertDir
UserCharSize
0
1
2
3
4
0
1
0
Коды шрифтов




Горизонтальное расположение строк
Вертикальное расположение строк
Размер шрифта задается пользователем

Таблица 30. Константы выравнивания текста для процедуры SetTextJustify

Имя Значение Назначение
LeftText
CenterText
RightText
BottomText
TopText
0
1
2
0
2
Левое выравнивание
Выравнивание по центру
Правое выравнивание
Нижнее выравнивание
Верхнее выравнивание

Таблица 31. Переменные модуля Graph (указатели на динамически распределяемую память)

Имя Тип Назначение
GraphGetMemPtr
GraphFreeMemPtr
Pointer
Pointer
Выделяемая область
Освобождаемая область

Таблица 32. Процедуры и функции

Имя Назначение
Процедуры управления графическим режимом
CloseGraph
DetectGraph
GetModeRange
GraphDefaults
InitGraph
RestoreCrtMode
SetGraphBufSize
SetGraphMode
Прекращение работы графического режима
Проверка оборудования и режима
Получение минимального и максимального номера графического режима
Сброс параметров графического режима
Инициализация графического режима
Возвращение в текстовый режим
Изменение размера графического буфера
Вход в графический режим и очистка экрана
Функции управления графическим режимом
GetGraphMode
GetMaxMode
GetModeName
GraphErrorMsg
GraphResult
GetDriverName
InstallUserDriver
InstallUserFont
RegisterBGIdriver
RegisterBGIfont
Получение номера текущего графического режима
Максимальное число режимов текущего драйвера
Получение имени заданного графического режима
Формирование сообщения об ошибке
GraphResult Получение кода ошибки
Получение имени текущего драйвера
Размещение драйвера в таблице
Установка нового шрифта
Регистрация драйвера
Регистрация шрифта
Процедуры управления экраном, окном, страницей
ClearDevice
Clear ViewPort
GetAspectRatio

GetViewSettings
SetActivePage
SetAspectRatio

SetViewPort
SetVisualPage
Очистка графического экрана
Очистка графического окна
Получение относительного масштаба изображения по горизонтали и вертикали
Получение параметров текущего графического окна
Задание активной страницы
Изменение относительного масштаба изображения по горизонтали и вертикали
Задание размеров окна
Задание отображаемой на экране страницы
Процедуры управления цветом и палитрой
GetDefaultPalette
GetPalette
SetAllPalette
SetBkColor
SetColor
SetPalette
SetRGBPalette
Получение исходных параметров палитры
Получение параметров палитры
Задание всех цветов палитры
Задание цвета фона экрана
Задание текущего цвета
Задание одного цвета палитры
Задание палитры для адаптеров IBM-8514 и VGA
Функции управления цветом и палитрой
GetBKColor
GetColor
GetMaxColor
GetPaletteSize
Получение цвета фона
Получение текущего цвета
Получение максимального кода цвета
Получение количества цветов в палитре
Функции работы с точками
GetMaxX
GetMaxY
GetPixel
GetX
GetY
Получение максимального значения координаты X
Получение максимального значения координаты Y
Получение цвета пикселя активной страницы
Получение координаты X текущей позиции на экране
Получение координаты Y текущей позиции на экране
Процедуры работы с точками
PutPixel Помещение пикселя в активную страницу
Процедуры работы с линиями
GetLineSettings
Line
LineRel
LineTo
MoveRel
MoveTo
SetLineStyle
SetWriteMode
Получение параметров линии
Построение линии от одной точки до другой
Построение линии с относительными координатами
Построение линии с абсолютными координатами
Перемещение указателя в точку с относительным координатами
Перемещение указателя в точку с абсолютными координатами
Задание характеристик линии
Задание способа построения линии
Процедуры построения фигур из линий
Ваr
Bar3D
DrawPoly
FillPoly
FloodFill
GetFillPattern
GetFillSettings
Rectangle
SetFillPattern
SetFillStyle
Построение закрашенного прямоугольника
Построение закрашенного параллелепипеда
Построение многоугольника
Построение закрашенного многоугольника
Заполнение области текущим орнаментом
Получение орнамента заполнения фигур
Получение параметров заполнения фигур
Построение прямоугольника
Задание произвольных параметров заполнения фигур
Задание стандартных параметров заполнения фигур
Процедуры построения криволинейных фигур
Arc
Circle
Hllipse
FillEllips
GetArcCoords
PieSlice
Sector
Построение дуги окружности
Построение окружности
Построение дуги эллипса
Построение закрашенного эллипса
Получение координат последней дуги
Построение закрашенного сектора круга
Построение закрашенного сектора эллипса
Процедуры работы с текстом
GetTextSettings
OutText
OutTextXY
SetTextJustify
SetTextStyle
SetUserCharSize
Получение характеристик текста
Вывод последовательности символов
Вывод последовательности символов, начиная с заданных координат
Задание способа выравнивания текста
Задание типа, начертания шрифта и коэффициента увеличения символов
Задание высоты и ширины символов
Функции работы с текстом
TextHeight
TextWidth
Получение высоты строки в пикселях
Ширина строки в пикселях
Процедуры обмена с памятью
Getlmage
Putlmage
Сохранение изображения в буфере
Вывод изображения из буфера на экран
Функции обмена с памятью
ImageSize Получение размера требуемой для изображения памяти

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





 У Вас есть материал пишите нам
 
    Copyright © 2008    
  Top.Mail.Ru