Некоторые сведения о драйверах н определяемых ими режимах

 

Адаптер   Драйвер   Режим (Номер, имя)   Разрешимость   Число страниц  
EGA   EGA   OEgalo   640х200    
1 Egahi   640х350    
VGA   VGA   OVgalo   640х200    
IVgalo   640х350    
2Vgalo   640х480    

 

Процедура инициализации в Турбо-Паскале имеет три аргумента:

Initgraph(<драйвep>, <режим>, '<путь к драйверу>').

Она может быть выполнена так:

uses graph;

var gd, gm: integer; {переменные gd и gm определяют драйвер и режим}

begin

gd:=vga; gm:=vgahi;

initgraph(gd,gm.'d:\tp551);

 

Первые две команды можно заменить одной:

gd:=detect

Целая константа detect=0 в модуле Graph автоматически распознает драйвер и устанавливает режим максимального разрешения для данной машины.

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

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

uses graph; var gd, gm, errorcod: integer;

begin

gd:=detect; initgraph(gd,gm,");

errorcod'=graphresult;

if errorcod <>grok then

Begin

writeln('ошибка графики');

writeln(grapherrormsg(errorcod));

halt

end;

Процедура Halt останавливает выполнение программы и возвращает управление операционной системе.

Для формирования палитры используется система смешения красного, зеленого и синего цветов и изменения яркости луча. Цвет задается номером из списка цветов палитры в интервале 0 .. 15.

Процедуры sе1со1ог(<цвет>) и setbkcolor(<цвет>) устанавливают текущий цвет рисунка и цвет фона. При инициализации графики по умолчанию устанавливается черный фон и белый цвет рисунка.

В табл. 3.2 указаны основные процедуры для модуля Graph, применяющиеся для построения простейших геометрических примитивов.

Координаты точек воспринимаются в «экранной» системе координат, в которой начало - верхний левый угол экрана, ось «х» направлена вниз, ось «у» -направо. Максимальные значения координат определяются разрешимостью экрана (см. табл. 3.1).

Первый аргумент процедуры setlinestyle(a,b,t) а - стиль линии второй параметр b -«образец» - имеет значение 4, если а=4, в остальных случаях b=0; третий параметр t -толщина линии - может иметь значение 1 (нормальная толщина) или 3 (жирная линия).

 

Таблица 3.2

Основные процедуры модуля Graph

 

Заголовок процедуры   Геометрический смысл  
putpixel(x,y,c)   Построить точку (х,у) цветом с  
setlinestyle(a,b,t)   Установить стиль, образей и толщину линий  
line(xl,yl,x2,y2)   Соединить две точки отрезком  
rectangle(xl,yl.x2.y2)   Построить прямоугольник с заданными концами диагонали и  
    сторонами, параллельными осям координат  
circle(x,y,r)   Построить окружность с центром (х,у) и радиусом г  
arc(x,y,a,b,r)   Построить дугу окружности: a,b - начальный и конечный угол в  
    Градусах  
ellipse(x,y,a,b,rx,ry)   Построить эллиптическую дугу: rx, rу - полуоси эллипса  
setfillstyle(t,c)   Установить стиль закраски и ее цвет  
fillellipse(x,y,rx,ry)   Построить закрашенный эллипс, используя цвет рисунка  
floodfill(x,y,cg)   Закрасить фигуру до границы с цветом cg; (x,y) - внутренняя  
    точка фигуры  
bar(xl,yl,x2,y2)   Построить столбец, используя тип и цвет закраски  
pieslice(x,y,a,b.r)   Построить и закрасить сектор круга  
sector(x,y.a,b,rx,ry)   Построить и закрасить эллиптический сектор  
settextsiyle(f,n,d)   Установить шрифт, направление вывода и размер символа текста '  
outtextxy(x,y,st)   Вывести строку st, начиная с точки (х,у)  
outtext(st)   Вывести строку, начиная с точки расположения текущего указателя  

 

Первый аргумент процедуры setfillstyle(t,c) - тип закраски t - принимает значения из интервала 0..12. Наиболее употребителен тип t = 1 - заполнение фигуры текущим цветом.

Для вывода текста на графический экран сначала выполняется процедура settextstyle(f,n,d), устанавливающая шрифт f, направление вывода п и размер символов (параметр d). При f = 0 используется стандартный точечный шрифт, встроенный в систему Турбо-Паскаль. С использованием других шрифтов познакомимся ниже. Направление вывода п принимает значения 0 (горизонтальный вывод) и 1 (вертикальный вывод).

Размер букв определяется параметром d, принимающим значения из интервала 1..10. Если d = 1 и f = 0, то каждый символ занимает квадрат 8*8 точек, при d > 1 сторона квадрата умножается на d.

Далее, с помощью процедуры outtextxy(x,y,st) строка st выводится на экран, начиная с точки (х,у).

Например:

settextstyle(0,0,2); оuttехtху(100,200,'горизонтальная строка');

оuttехtху(100,230,'размер увеличен вдвое');