Меню
  Список тем
  Поиск
Полезная информация
  Краткие содержания
  Словари и энциклопедии
  Классическая литература
Заказ книг и дисков по обучению
  Учебники, словари (labirint.ru)
  Учебная литература (Читай-город.ru)
  Учебная литература (book24.ru)
  Учебная литература (Буквоед.ru)
  Технические и естественные науки (labirint.ru)
  Технические и естественные науки (Читай-город.ru)
  Общественные и гуманитарные науки (labirint.ru)
  Общественные и гуманитарные науки (Читай-город.ru)
  Медицина (labirint.ru)
  Медицина (Читай-город.ru)
  Иностранные языки (labirint.ru)
  Иностранные языки (Читай-город.ru)
  Иностранные языки (Буквоед.ru)
  Искусство. Культура (labirint.ru)
  Искусство. Культура (Читай-город.ru)
  Экономика. Бизнес. Право (labirint.ru)
  Экономика. Бизнес. Право (Читай-город.ru)
  Экономика. Бизнес. Право (book24.ru)
  Экономика. Бизнес. Право (Буквоед.ru)
  Эзотерика и религия (labirint.ru)
  Эзотерика и религия (Читай-город.ru)
  Наука, увлечения, домоводство (book24.ru)
  Наука, увлечения, домоводство (Буквоед.ru)
  Для дома, увлечения (labirint.ru)
  Для дома, увлечения (Читай-город.ru)
  Для детей (labirint.ru)
  Для детей (Читай-город.ru)
  Для детей (book24.ru)
  Компакт-диски (labirint.ru)
  Художественная литература (labirint.ru)
  Художественная литература (Читай-город.ru)
  Художественная литература (Book24.ru)
  Художественная литература (Буквоед)
Реклама
Разное
  Отправить сообщение администрации сайта
  Соглашение на обработку персональных данных
Другие наши сайты
Приглашаем посетить
  Литература (lit-info.ru)

   

Графические возможности языка Паскаль

Графические возможности языка Паскаль

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

Подпрограммы модуля GRAPHмогут поддерживать различные типы аппаратных графических средств. Настройка на конкретные технические средства осуществляется с помощью специальных программ — драйверов, поставляемых вместе с данным модулем.

Установка графического режима работы

InitGraph(varDriver, Mode:integer; Path:string),

Параметр Pathопределяет маршрут поиска файла графического адаптера.

начало координат (0,0) располагается в левом верхнем углу экрана; горизонтальная координата Xувеличивается слева направо, вертикальная координата Yувеличивается сверху вниз. При стандартном графическом адаптере VGA(в режиме 640x480) правый нижний угол экрана имеет координаты (639,479), а центр экрана - координаты (319,239).

Язык программирования Паскаль 7. 0 поддерживает 16 основных цветов, обозначаемых соответственно номерами от 0 до 15 (см. таблицу 1).

Таблица 1 Константы цвета

Константа цвета Цвет Константа цвета Цвет
Черный 8 (DarkGray) Гемносерый
1 (Blue) Синий 9 (LightBlue) Яркосиний
2 (Green) Зеленый lO(LightGreen)
3 (Cyan) Голубой 11 (LightCyan) Яркоголубой
4 (Red) Красный 12 (LightRed) Розовый
5 (Magenta) 13 (LightMagenta) Малиновый
6 (Brown) Коричневый 14 (Yellow) Желтый
7 (LightGray) Светлосерый 15 (White) Белый

Основными графическими операторами по работе с цветами являются процедуры модуля GRAPHпод именами SetBkColor(служит для установки цвета фона) и SetColor(для установки цвета рисования).

". SetBkColor (Color: word);

SetColor (Color: word),

где переменная Color, имеющая целочисленный тип word, служит для указания требуемого номера цвета.

Например, операторы SetBkColor (I); SetColor(14) позволяют установить режим рисования желтым цветом по синему фону.

Создание графических объектов

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

Rectangle(xl, yl, х2, y2: integer) - служит для рисования прямоугольников, задаваемых координатами двух своих противоположных углов;

Bar(xl, yl, x2, y2: integer) - служит для рисования заштрихованных прямоугольников, используя при этом текущий стиль и цвет штриховки;

SetFillStyle(Pattern, Color: word) - устанавливает образец штриховки и ее цвет, где переменная Patternобозначает номер шаблона штриховки (см. таблицу 2), aColor- номер цвета штриховки (см. таблицу 1);

PieSHce(x, у: integer; StAngle, EndAngle, nword) - рисует и заштриховывает сектор окружности радиусом г с центром в (х, у) от начального угла StAngleк конечному углу EndAngle. При этом используется текущий стиль и цвет штриховки (см. процедуру SetFillStyle);

PutPixel(x, у: integer; Color:word) - выводит на экран точку цвета Colorс координатами (х, у);

OutTextXY(x, y:integer; TextString:string) — выводит техт TextStringв заданное координатами (х, у) место экрана.

Номер Стиль штриховки Номер Стиль штриховки
0 Нет штриховки 6 Наклонная влево
1 7 В клетку по образцу +++
2 Горизонтальными линиями 8 В клетку по образцу ххх
3 Наклонная вправо 9 Штриховка в мелкую клетку
4 10 Редкими точками
5 Наклонная влево толстыми линиями 11 Частыми точками

Стандартный режим работы в среде Турбо Паскаля - текстовый. В этом режиме на экран выводятся только известные компьютеру символы.

В графическом режиме экран дисплея можно рассматривать как совокупность близко расположенных точек. Точку экрана называют пиксель или пиксел (pixel). Светимость этих точек может регулироваться программой. Пикселы образуют прямоугольную таблицу - растр с нумерацией элементов относительно левого верхнего угла экрана - точки с координатами (0; 0).

Для представления символов текстовой информации используется матрица с фиксированным количеством пикселов. Знакоместо каждого символа - прямоугольник размером, к примеру, 8x8, 8x14, 8x16 и т. д.; - в знакоместо при помощи программы помещается растровое изображение символа.

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

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

Драйвер - это программа, управляющая определенным устройством ПК. Графический драйвер управляет дисплейным адаптером в графическом режиме. Графические драйверы обычно располагаются на диске в подкаталоге BGIрабочего каталога в виде файлов с расширением. BG1 (BorlandGraphicInterface).

В ТП 7. 0 есть стандартный библиотечный модуль Graph- библиотека подпрограмм, обеспечивающих управление графическими режимами видеоадаптеров: CGA, EGA, VGA, MCGA, Hercules, PC3270, AT&T6300, IBM8514.

Библиотека Graphсодержит около 80 графических процедур и функций, а также десятки констант и описаний типов данных [6, 7]. Подключение модуля происходит при помощи зарезервированного слова USES (usesGraph;).

Модуль Graph- файл GRAPH. TPU. Для работы с графикой этот файл должен быть доступным для компилятора, т. к. GRAPH. TPUне входит в состав библиотеки TURBO. TPL. В поле UNITопции DIRECTORIES / OPTIONSглавного меню среды Турбо Паскаля следует указать каталог, в котором размещен файл GRAPH. TPU.

каталог.

Любая программа для работы с графикой должна содержать блоки вызова процедуры инициализации графического режима InitGraph- правильность выполнения этой процедуры проверяется функцией GraphResult(0-в случае успеха) - и процедуры выхода из графического режима CloseGraph.

Обращение Действие

CloseGraphЗавершает работу адаптера в графическом режиме

RestoreCrtModeСлужит для кратковременного возврата в текстовый режим

ClearDeviceОчищает экран, закрашивает его в цвет фона

ClearViewPortОчищает графическое окно

главы

верхнего, Х2, Y2 - координаты правого нижнего углов окна, Т - выражение типа Boolean, определяющее

"отсечку" не умещающихся в окне элементов изображения (True- "отсекать")

SetPalette(Reg, Col) Формирует новое значение Colв регистре с номером Reg(установка одного цвета

SetAllPalette(Palette) Производит смену кодов цветности во всех регистрах палитры

SetBkColor (Color) Устанавливает цвет фона (целое число от 0 до 15)

PutPixel (X, Y, Color) Выводит точку с координатами X, Yцветом Color

Line (XI, Yl, X2, Y2) Рисует отрезок линии по коордимнатам его концов

LineRel (Xh, Yh) Вычерчивает линию от текущего положения указателя до положения, заданного

LineTo (X, Y)

Вычерчивает линию от текущего положения указателя до положения, заданного его новыми координатами

MoveRel (DX, DY) Устанавливает новое положение указателя в координатах относительно предыдущего

MoveTo (X, Y) Устанавливает новое положение указателя

OutTextXY (X, Y, Т) Выводит текст Т, начиная с позиции Xстроки Y

Bar3D (XI, Yl, X2, Y2, D, Top) Чертит трехмерное изображение параллелепипеда (D-глубина) и

закрашивает его переднюю грань; Тор - выражение типа Boolean, если Тор = True, верхняя грань

вычерчивается, если False- нет

Rectangle (XI, Yl, X2, Y2) Вычерчивает прямоугольник по координатам левого верхнего и правого нижнего

углов

Arc (X, Y, А, В, R) Чертит дугу окружности: X, Y- координаты центра, А, В - начальный и конечный углы

дуги(в градусах), отсчет углов ведется против часовой стрелки^ - радиус (в пикселах);

Ellipse (X, Y, А, В, RX, RY) Чертит эллипсную дугу: X, Y- координаты центра, А, В - начальный и

конечный углы дуги (в градусах), RX, RY- горизонтальный и вертикальный радиусы

Sector (X, Y, А, В, RX, RY) Рисует и штрихует сектор эллипса радиусами RXи RYс центром в точке X, Yот

угла А к углу В

SetFillStyle (Pattern, Color) Устанавливает образец штриховки и цвет

SetLineStyle (LineStile,Pattern,Thickness) Устанавливаеттолщинуистильлинии

SetTextStyle (Font, Direction,CharSize) Устанавливает текущий шрифт (0-9), направление (по горизонтали-

FillEllipse (X, Y, RX, RY) Рисует закрашенный эллипс

FloodFill (X, Y, С) Заполняет любую замкнутую фигуру, используя текущий стиль заполнения (узор и цвет),

FillPoly (N, Coords) Обводит линией и закрашивает замкнутый многоугольник; N - количество вершин,

Coords- переменная типа PointType, содержащая координаты вершин (см. сноску под таблицей)

Getlmage (X1,Y1, X2,Y2, Bui) Помещает в буфер памяти Bufкопию прямоугольного фрагмента

изображения

копию фрагмента изображения из буфера Buf, ModePut- способ копирования (в конце главы)

ImageSize (X1,Y1,X2,Y2) Возвращает размер памяти в байтах, необходимый для размещения

прямоугольного фрагмента изображения

GraphResultВозвращает 0, если последняя графическая операция выполнилась без ошибок

GraphErrorMsg (Code) Возвращает значение типа Stringс текстовым сообщением об ошибке; Code- код

ошибки

графического адаптера

GetXВозвращает текущую координату указателя по горизонтали / вертикали (тип Integer)

GetY

GetMaxXВозвращает максимальную координату экрана по горизонтали / вертикали (тип Word) в текущем