Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Процедуры и функции для работы с экраном в графическом режиме.



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

Открытие графической системы InitGraph(var Driver, Mode: integer; Path: string);

Эта процедура всегда должна быть выполнена первой до начала работы в графическом режиме. Параметры Driver и Modeпозволяют указать явно тип видеоадаптера и режим его работы. Если до обращения к процедуре параметру Driver присвоить значение 0, то произойдет автоопределение адаптера и автоматически будет выбран оптимальный его тип и режим работы. Параметр Path задает путь нахождения драйвера графического интерфейса. Это файл, имеющий расширение bgi (Borland graphic interface). Для стандартного SVGA режима нужен драйвер egavga.bgi. Если такой драйвер находится в текущей директории, то строку Path можно задать пустой.

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

If GraphResult<>0 then

Begin

Writeln(‘’);

Halt;

End;

Процедура ClearDevice– очищает графический экран. После обращения к процедуре указатель устанавливается в левый верхний угол экрана, а сам экран заполняется цветом фона, заданным процедурой SetBkColor.

Процедура SetColor (Color: word) – устанавливает цвет выводимых линий и символов.

Процедура SetBkColor (Color: word) – устанавливает цвет фона.

В графическом режиме не выполняются процедуры write, writeln, read, readln. Потому что они настроены на текстовый режим работы. Вместо read в графическом режиме следует использовать для ввода символов функцию ReadKey. Следует иметь в виду, что в отличие от read, ReadKey не обеспечивает эхо печати введенного символа. Вывод на экран в графическом режиме обеспечивается процедурами OutText и OutTextXY.

В графическом режиме отсутствует курсор, однако, имеется невидимый указатель, аналогичный курсору, который характеризуется своими координатами (X, Y).

Процедура OutText (Text: string) выводит строку, начиная с текущего нахождения этого указателя, а OutTextXY(X, Y: integer, S: string)выводит строку, начиная с заданного положения, которое определяется координатами X, Y. Эта процедура не меняет положение указателя.

Позиционирование указателя можно выполнять процедурой MoveTo(x,y: integer). Вывод отдельной светящийся точки выполняется процедурой PutPixel(x, y: integer; c: word), где x, y - координаты точки, с – координаты ее цвета.

Функции GetMaxX и GetMaxY возвращают значения типа Word, содержащие максимальные координаты экрана в текущем режиме работы соответственно по горизонтали и вертикали.

Функции GetX и GetY возвращают значения типа Integer, содержащие текущие координаты указателя соответственно по горизонтали и вертикали.

Функция GetPixel(x,y: integer):wordопределяет цвет точки с заданными координатами.

Изображение геометрических фигур.

Процедура Line(xн,yн,xк,yк: integer) вычерчивает линию с указанными координатами начала (x н, yн) и конца(xк, yк).

Процедура LineTo(x, y: integer) вычерчивает линию от текущего положения указателя до положения, заданного координатами x, y.

Процедура SetLineStyle(Type, Pattern, Trick: word) устанавливает новый стиль вычерчивания линий (Type, Pattern, Thick – соответственно тип, образец и толщина линии). Тип линии может быть задан с помощью одной из следующих констант: 0-4

Процедура Rectangle (x1, y1, x2, y2: integer) вычерчивает прямоугольник с указанными координатами левого верхнего (x1, y1) и правого нижнего (x2, y2) углов прямоугольника.

Процедура Circle(x,y: integer; r: word) вычерчивает окружность радиуса r и координатами центра x и y.

Процедура Arc(x, y: integer; BegA, EndA, R: word) чертит дугу окружности радиуса r с координатами центра x и y. BegA, EndA – начальный и конечный углы дуги.

Процедура Arc(X,Y: Integer; BegA,EndA,R: Word); чертит дугу окружности. Здесь X, Y - координаты центра; BegA, EndA - соответственно начальный и конечный углы дуги; R - радиус.

Углы отсчитываются против часовой стрелки и указываются в градусах. Нулевой угол соответствует горизонтальному направлению вектора слева направо. Если задать значения начального угла 0 и конечного - 359, то будет выведена полная окружность. При вычерчивании дуги окружности используются те же соглашения относительно линий и радиуса, что и в процедуре Circle.

Процедура Ellipse(X,Y: Integer; BegA,EndA,RX,RY: Word); вычерчивает эллипсную дугу. Здесь X, Y - координаты центра; BegA, EndA - соответственно начальный и конечный углы дуги; RX, RY- горизонтальный и вертикальный радиусы эллипса в пикселях.

Процедура SetTextStyle(Font,Direct,Size: Word);устанавливает стиль текстового вывода на графический экран. Здесь Font - код (номер) шрифта; Direct - код направления; Size - код размера шрифта. Для указания кода шрифта можно использовать следующие предварительно определенные константы: 0-4

Для заливки указанных областей экрана можно задавать не только цвет заливки, но и тип орнамента, который может быть как стандартным, так и пользовательским. Такие установки выполняются при помощи процедур:

Процедура SetFillStyle(Fill,Color: Word);устанавливает стиль (тип и цвет) заполнения. Здесь Fill - тип заполнения; Color - цвет заполнения. С помощью заполнения можно покрывать какие-либо фрагменты изображения периодически повторяющимся узором. Для указания типа заполнения используются следующие предварительно определенные константы: 0-12

Процедура SetFillPattern(Pattern: FillPatternType;Color: Word);устанавливает образец рисунка и цвет штриховки. Здесь Pattern - выражение типа FillPatternType; устанавливает образец рисунка для Fill - UserFill в процедуре SetFillStyle; Color - цвет заполнения. Образец рисунка задается в виде матрицы из 8x8 пикселей и может быть представлен массивом из 8 байт следующего типа: type FillPatternType = array [1..8] of Byte; каждый разряд любого из этих байтов управляет светимостью пикселя, причем первый байт определяет 8 пикселей первой строки на экране, второй байт - 8 пикселей второй строки и т.д.

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