Реферат Графические возможности языка Паскаль
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Графические возможности языка Паскаль
Язык программирования Паскаль 7.0 содержит обширный набор типов, констант и функций для управления графическим режимом работы экрана, объединенных в стандартный библиотечный модуль GRAPH. С помощью подпрограмм, входящих в данный модуль, можно создавать сложные графические изображения, основанные на использовании разнообразных геометрических фигур- При необходимости замкнутые фигуры могут быть закрашены различными цветами и стилями (образцами) закраски. Для вывода текстовых надписей на графический экран могут быть использованы четыре штриховых и один матричный шрифт.
Подпрограммы модуля GRAPH могут поддерживать различные типы аппаратных графических средств. Настройка на конкретные технические средства осуществляется с помощью специальных программ — драйверов, поставляемых вместе с данным модулем.
Установка графического режима работы
Переход в графический режим в среде Паскаль осуществляется с помощью входящей в модуль GRAPH процедуры InitGraph, служащей для инициализации графического экрана. Данная процедура имеет следующий формат:
InitGraph(var Driver, Mode:integer; Path:string),
где переменные Driver и Mode должны содержать тип графического драйвера и его режим работы. Допускается указать Driver=0 для автоматического определения данных параметров по результатам тестирования аппаратуры. Параметр Path определяет маршрут поиска файла графического адаптера.
Графические операторы языка Паскаль позволяют адресоваться к любому элементу (пикселю) графического окна и управлять светимостью этого элемента. Для указания пикселя используется следующая система координат: начало координат (0,0) располагается в левом верхнем углу экрана; горизонтальная координата X увеличивается слева направо, вертикальная координата Y увеличивается сверху вниз. При стандартном графическом адаптере VGA (в режиме 640x480) правый нижний угол экрана имеет координаты (639,479), а центр экрана - координаты (319,239).
Для выхода из графического режима достаточно воспользоваться процедурой CloseGraph. Использование цветов
Язык программирования Паскаль 7.0 поддерживает 16 основных цветов, обозначаемых соответственно номерами от 0 до 15 (см. таблицу 1).
Таблица 1 Константы цвета
Константа цвета | Цвет | Константа цвета | Цвет |
0(Black) | Черный | 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), a Color - номер цвета штриховки (см. таблицу 1);
Circle(x, у: integer; r: word) - рисует окружность радиуса г с центром в точке (х, у); Line(xl, yl, x2, y2: integer) - рисует линию от точки (xl, yl) до точки (х2, у2);
PieSHce(x, у: integer; StAngle, EndAngle, nword) - рисует и заштриховывает сектор окружности радиусом г с центром в (х, у) от начального угла StAngle к конечному углу EndAngle. При этом используется текущий стиль и цвет штриховки (см. процедуру SetFillStyle);
PutPixel(x, у: integer; Color:word) - выводит на экран точку цвета Color с координатами (х, у);
OutTextXY(x, y:integer; TextString:string) — выводит техт TextString в заданное координатами (х, у) место экрана.
Таблица 2 Шаблоны штриховки
Номер | Стиль штриховки | Номер | Стиль штриховки |
0 | Нет штриховки | 6 | Наклонная влево |
1 | Сплошная (заливка) | 7 | В клетку по образцу +++ |
2 | Горизонтальными линиями | 8 | В клетку по образцу ххх |
3 | Наклонная вправо | 9 | Штриховка в мелкую клетку |
4 | Наклонная вправо толстыми линиями | 10 | Редкими точками |
5 | Наклонная влево толстыми линиями | 11 | Частыми точками |
Стандартный режим работы в среде Турбо Паскаля - текстовый. В этом режиме на экран выводятся только известные компьютеру символы.
В графическом режиме экран дисплея можно рассматривать как совокупность близко расположенных точек. Точку экрана называют пиксель или пиксел (pixel). Светимость этих точек может регулироваться программой. Пикселы образуют прямоугольную таблицу - растр с нумерацией элементов относительно левого верхнего угла экрана - точки с координатами (0; 0).
Для представления символов текстовой информации используется матрица с фиксированным количеством пикселов. Знакоместо каждого символа - прямоугольник размером, к примеру, 8x8, 8x14, 8x16 и т.д.; - в знакоместо при помощи программы помещается растровое изображение символа.
Графические возможности конкретного видеоадаптера (видеокарты) определяются разрешающей способностью (разрешением) монитора, т.е. общим количеством пикселов, а также количеством цветов (оттенков), которыми может светиться каждый из них. Современные мониторы поддерживают разрешение
800x600 точек, 1024x768 точек и более. Чем выше разрешающая способность монитора, тем качественнее изображение. Многие видеоадаптеры могут работать с несколькими графическими страницами.
Графическая страница - область оперативной памяти, используемая для создания "карты" экрана -информации о светимости (цвете) каждого пиксела. На одном и том же компьютере количество точек и количество возможных цветов можно изменять в процессе работы, выбирая графический режим - одну из предусмотренных в конструкции компьютера комбинаций значений.
Драйвер - это программа, управляющая определенным устройством ПК. Графический драйвер управляет дисплейным адаптером в графическом режиме. Графические драйверы обычно располагаются на диске в подкаталоге BGI рабочего каталога в виде файлов с расширением .BG1 (Borland Graphic Interface).
В ТП 7.0 есть стандартный библиотечный модуль Graph - библиотека подпрограмм, обеспечивающих управление графическими режимами видеоадаптеров: CGA, EGA, VGA, MCGA, Hercules, PC 3270, AT&T 6300, IBM 8514.
Библиотека Graph содержит около 80 графических процедур и функций, а также десятки констант и описаний типов данных [6, 7]. Подключение модуля происходит при помощи зарезервированного слова USES (uses Graph;).
Модуль Graph - файл GRAPH.TPU. Для работы с графикой этот файл должен быть доступным для компилятора, т.к. GRAPH.TPU не входит в состав библиотеки TURBO.TPL. В поле UNIT опции DIRECTORIES / OPTIONS главного меню среды Турбо Паскаля следует указать каталог, в котором размещен файл GRAPH.TPU.
Для использования различных шрифтов при выводе текста (кроме кириллицы) нужно скопировать файлы с расширением .CHR в рабочий каталог. При запуске программы с кириллицей скопируйте файл EGAVGA.BGI в рабочий каталог.
Любая программа для работы с графикой должна содержать блоки вызова процедуры инициализации графического режима InitGraph - правильность выполнения этой процедуры проверяется функцией GraphResult (0-в случае успеха) - и процедуры выхода из графического режима CloseGraph.
Процедуры и функции из библиотеки Graph
Обращение Действие
InitGraph (Driver, Mode, F) Инициирует графический режим работы адаптера
CloseGraph Завершает работу адаптера в графическом режиме
RestoreCrtMode Служит для кратковременного возврата в текстовый режим
ClearDevice Очищает экран, закрашивает его в цвет фона
ClearViewPort Очищает графическое окно
SetGraphMode(Mode) Устанавливает новый графический режим работы адаптера; значения Mode - в конце
главы
SetViewPort(Xl, Yl, X2, Y2, Т) Устанавливает прямоугольное окно на экране: X1,Y1 - координаты левого
верхнего, Х2, Y2 - координаты правого нижнего углов окна, Т - выражение типа Boolean, определяющее
"отсечку" не умещающихся в окне элементов изображения (True - "отсекать")
SetPalette(Reg, Col) Формирует новое значение Col в регистре с номером Reg (установка одного цвета
палитры)
SetAllPalette(Palette) Производит смену кодов цветности во всех регистрах палитры
SetBkColor (Color) Устанавливает цвет фона (целое число от 0 до 15)
SetColor (Color) Устанавливает цвет для выводимых символов и линий, Color - выражение типа Word
PutPixel (X, Y, Color) Выводит точку с координатами X, Y цветом Color
Line (XI, Yl, X2, Y2) Рисует отрезок линии по коордимнатам его концов
LineRel (Xh, Yh) Вычерчивает линию от текущего положения указателя до положения, заданного
приращениями его координат Xh и Yh (выражения типа Integer)
LineTo (X, Y)
Вычерчивает линию от текущего положения указателя до положения, заданного его новыми координатами
MoveRel (DX, DY) Устанавливает новое положение указателя в координатах относительно предыдущего
MoveTo (X, Y) Устанавливает новое положение указателя
OutText (Т) Выводит текст Т (кроме кириллицы), начиная с текущего положения указателя
OutTextXY (X, Y, Т) Выводит текст Т, начиная с позиции X строки Y
Circle (X, Y, R) Рисует окружность радиуса R типа Word с центром в точке с координатами (X; Y)
Ваг (XI, Y1, Х2, Y2) Заполняет прямоугольную область экрана, заданную координатами диагонали
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), направление (по горизонтали-
0/вертикали-1) и размер символов (0-13)
FillEllipse (X, Y, RX, RY) Рисует закрашенный эллипс
FloodFill (X, Y, С) Заполняет любую замкнутую фигуру, используя текущий стиль заполнения (узор и цвет),
X, Y - координаты точки внутри этой области, С - цвет границы
FillPoly (N, Coords) Обводит линией и закрашивает замкнутый многоугольник; N - количество вершин,
Coords - переменная типа PointType, содержащая координаты вершин (см. сноску под таблицей)
Getlmage (X1,Y1, X2,Y2, Bui) Помещает в буфер памяти Buf копию прямоугольного фрагмента
изображения
Putlmage (X,Y, Buf, ModePut) Выводит в заданное место экрана (X,Y - координаты верхнего левого угла)
копию фрагмента изображения из буфера Buf, ModePut - способ копирования (в конце главы)
ImageSize (X1,Y1,X2,Y2) Возвращает размер памяти в байтах, необходимый для размещения
прямоугольного фрагмента изображения
GraphResult Возвращает 0, если последняя графическая операция выполнилась без ошибок
GraphErrorMsg (Code) Возвращает значение типа String с текстовым сообщением об ошибке; Code - код
ошибки
GetGraphMode Возвращает значение типа Integer, в котором содержится код текущего режима работы
графического адаптера
GetX Возвращает текущую координату указателя по горизонтали / вертикали (тип Integer)
GetY
GetMaxX Возвращает максимальную координату экрана по горизонтали / вертикали (тип Word ) в текущем
режиме работы