Помощничек
Главная | Обратная связь


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

Библиотечный модуль GRAPH. Графические возможности ТП



GRAPH - представляет собой библиотеку подпрограмм, обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA, EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых (многоугольники, сектора, дуги, закрашивание фигур, вывода текста и т.д.).

Для запуска программы с использованием модуля GRAPH необходимо,

чтобы в рабочем каталоге находились графические драйверы с расширением .BGI, также должен быть доступен компилятору модуль GRAPH.TPU.

Файл BGI - графический интерфейс. Он обеспечивает взаимодействие

программ с графическими устройствами.

В начале программы модуль GRAPH должен быть подключен

PROGRAM

USES GRAPH;

описание меток, переменных программы, в частности

VAR driver, Mode: integer;

Begin

Далее инициализируется графический режим работы процедурой

InitGraph(,:integer;

: string);

Графическая информация на экране дисплея отражается совокупностью

светящихся точек - ПИКСЕЛЕЙ.

Режим по вертикали: 0 - 200 пикселей (4 страницы),

1 - 350 пикселей (2 страницы), 2 - 480 пикселей (1 страница).

Режим 2 (640х480, 16 цветов,1 страница)

В текстовом режиме координаты верхнего угла (1,1).

центр (319,239)

нижнего (639,479)

Тип драйвера допускается указывать =0, тогда он устанавливается

по результатам тестирования (авто определение). Путь определяет маршрут поиска графического драйвера.

Пример:

USES GRAPH;

Const driver, mode: intGRAPH - представляет собой библиотеку подпрограмм, обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA, EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников), так и расширяющих возможности базовых (многоугольники, сектора, дуги, закрашивание фигур, вывода текста и т.д.).

Для запуска программы с использованием модуля GRAPH необходимо,

чтобы в рабочем каталоге находились графические драйверы с расширением .BGI, также должен быть доступен компилятору модуль GRAPH.TPU.

Файл BGI - графический интерфейс. Он обеспечивает взаимодействие

программ с графическими устройствами.

В начале программы модуль GRAPH должен быть подключен

PROGRAM

USES GRAPH;

описание меток, переменных программы, в частности

VAR driver, Mode: integer;

Begin

Далее инициализируется графический режим работы процедурой

InitGraph(,:integer;

:string);

Графическая информация на экране дисплея отражается совокупностью

светящихся точек - ПИКСЕЛЕЙ.

Режим по вертикали: 0 - 200 пикселей (4 страницы),

1 - 350 пикселей (2 страницы), 2 - 480 пикселей (1 страница).

Режим 2 (640х480, 16 цветов,1 страница)

В текстовом режиме координаты верхнего угла (1,1).

центр (319,239)

нижнего (639,479)

Тип драйвера допускается указывать =0, тогда он устанавливается

по результатам тестирования (авто определение). Путь определяет маршрут поиска графического драйвера.

Пример:

USES GRAPH;

Const driver, mode: integer;

Begin

driver:=VGA; (9)

mode:=VGAH; (2)

InitGraph(driver, mode, 'e:\TP\BGI'); тип string.

DetectGraph(var Diver, Mode: integer) - возвращает тип драйвера и текущий режим его работы.

Основные цвета задаются от 0 до 15:

0- черный 8 - темно-синий

1- синий 9 - ярко-синий

2- зеленый 10 - ярко-зеленый

3- голубой 11 - ярко-голубой

4- красный 12 - розовый

5- фиолетовый 13 - малиновый

6- коричневый 14- желтый

7 - светло-серый 15- белый.

 

Если Х и У вещественные , то их нужно преобразовать к целым координатам (в пределах раздела экрана). Для этого используются функции ROUND или TRUNC прямого преобразования к целому значению LineTo(trunc(x),trunc(y));

Также необходимо следить, чтобы значения не выходили за пределы

экрана (рассчитывайте коэффициенты увеличения или уменьшения и пара-

метры смещения)

ПРОЦЕДУРЫ И ФУНКЦИИ модуля GRAPH

установочные

ClearDevice - Очищает экран и помещает курсор в точку (0,0);

SetViewPort(x1,y1,x2,y2:integer; Clip: boolean) - Устанавливает

текущее окно для графического вывода. X1,y1 – координата верхнего левого угла; x2,y2 - координата нижнего правого угла. Если Clip=true, то все изображения отсекаются на границах вывода;

ClearViewPort - Очищает текущее окно;

GetMax X: integer - возвращает максимальную горизонтальную координату

графического экрана;

GetMax Y :integer - возвращает максимальную вертикальную координату

графического экрана;

Get X: integer - возвращает координату Х текущего указателя в окне;

Get Y: integer - возвращает координату Y курсора в окне;

SetLineStyle(Line, Pattern, Thickness: word) - Устанавливает стиль

(0..4), шаблон штриховки (0..12) и толщину (1-ноpм, 3-утpоенная);

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

цвет (0..15 и 128-меpцание);

SetGraphMode(Mode: integer) - Устанавливает новый графический режим и

очищает экран;

SetColor(Color: word) - Устанавливает основной цвет, которым выполняется рисование (0..15);

SetBkColor(Color: word) - Установка цвета фона.

Гpафические примитивы

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

LineTO(X, Y: integer) - Рисует линию от текущего указателя к точке с координатой Х,У;

LineRel(DX, DY: integer) - Рисует линию от текущего указателя к точке, заданной приращением координат;

Line(X1,Y1,X2,Y2:integer) - Рисует линию от точки (X1,Y1) к точке с

координатой Х2,У2;

MoveTO(X, Y: integer) - Смещает текущий указатель к точке с координатой Х,У;

MoveRel(DX, DY: integer) - Смещает текущий указатель к точке, заданной

приращением координат;

Rectangle(X1,Y1,X2,Y2:integer) - Рисует прямоугольник, используя

текущий цвет и тип линии по верхней левой и нижней правой точкам;

Bar(X1,Y1,X2,Y2:integer) - Рисует закрашенный прямоугольник, используя установку SetFillStyle;

Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:Bolean) - Рисует закрашенный паpаллелипипед. Depth - глубина в Pixel (1/4 ширины).

Если Тор=True, то рисуется верхняя грань пеpеллелипипеда;

Circle(X,Y:integer;R:word) - Рисует окружность радиуса R, используя

X,Y как координаты центра;

Fillellipse(X,Y: integer; XR,YR: word) - Рисует защтpихованный эллипс,

используя X,Y как центр и XR,YR как горизонтальный и

вертикальный радиусы.

RestorCRTMode - Восстанавливает текстовый режим работы экрана;

OutText(Text: string) - Выводит текстовую строку на экран.

OutTextXY(X,Y: integer; Text: string) - Выводит текст в заданное

место экрана.

 

Пример программы построения графика функции у=2+х*х.

program graphik; {файл grafikf.pas}

uses graph; {подключение модуля GRAPF}

var a,b,x,y: integer; {a,b-переменные, определяющие тип драйвера и

видеорежим соответственно}

begin

detectgraph(a,b); {авто определение типа драйвера и видеорежима}

initgraph (a,b,'E:\TP\BGI'); {инициализация графического режима}

setgraphmode(2); {установка нового режима (2), очистка экрана}

setBKcolor(0); {основной цвет фона - черный}

setcolor(4); {основной цвет рисования - красный}

moveTO(100,100); {смещает курсор}

lineRel(50,50); {вычерчивание линии по приращению от текущего

указателя}

readln; {пауза до нажатия клавиши }

setcolor(2); {основной цвет рисования - зеленый}

line(100,100,100,50);{рисует линию от т.Х1,У2 до т.Х2,У2}

readln; {пауза до нажатия }

setcolor(5); {основной цвет рисования - фиолетовый}

putPixel(0,0,12); {выводит точку цветом 12 с координатой 0,0}

readln; {пауза до нажатия }

moveTO(1,2); {смещает курсор к точке с координатой 1,2}

for x:=0 to 20 do

begin

y:=2+ x*x;

lineTO(x,y); {рисует линию от текущего

указателя к точке с координатой Х,У}

end;

readln; {пауза до нажатия ввода}

Settextstyle(1,0,5);

OutTextXY(50,400,'график функции у=2+х*х'); {выводит текст в

заданное место экрана}

readln; {пауза до нажатия }

putPixel(639,479,14);{выводит точку цветом 14 с координатой 639,479}

readln; {пауза до нажатия }

closegraph;{закрывает графический режим и восстанавливает текстовый}

end.

 

Begin

driver:=VGA; (9)

mode:=VGAH; (2)

InitGraph(driver, mode, 'e:\TP\BGI'); тип string.

DetectGraph(var Diver, Mode: integer) - возвращает тип драйвера и текущий режим его работы.

Основные цвета задаются от 0 до 15:

0- черный 8 - темно-синий

1- синий 9 - ярко-синий

2- зеленый 10 - ярко-зеленый

3- голубой 11 - ярко-голубой

4- красный 12 - розовый

5- фиолетовый 13 - малиновый

6- коричневый 14- желтый

7 - светло-серый 15- белый.

 

Если Х и У вещественные , то их нужно преобразовать к целым координатам (в пределах раздела экрана). Для этого используются функции ROUND или TRUNC прямого преобразования к целому значению LineTo(trunc(x),trunc(y));

Также необходимо следить, чтобы значения не выходили за пределы

экрана (рассчитывайте коэффициенты увеличения или уменьшения и пара-

метры смещения)

ПРОЦЕДУРЫ И ФУНКЦИИ модуля GRAPH

установочные

ClearDevice - Очищает экран и помещает курсор в точку (0,0);

SetViewPort(x1,y1,x2,y2:integer; Clip: boolean) - Устанавливает

текущее окно для графического вывода. X1,y1 - координата

верхнего левого угла; x2,y2 - координата нижнего правого угла.

Если Clip=true, то все изображения отсекаются на границах вывода;

ClearViewPort - Очищает текущее окно;

GetMaxX: integer - возвращает максимальную горизонтальную координату

графического экрана;

GetMaxY: integer - возвращает максимальную вертикальную координату

графического экрана;

GetX: integer - возвращает координату Х текущего указателя в окне;

GetY: integer - возвращает координату Y курсора в окне;

SetLineStyle(Line, Pattern, Thickness: word) - Устанавливает стиль

(0..4), шаблон штриховки (0..12) и толщину (1-ноpм, 3-утpоенная);

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

цвет (0..15 и 128-меpцание);

SetGraphMode(Mode: integer) - Устанавливает новый графический режим и

очищает экран;

SetColor(Color: word) - Устанавливает основной цвет, которым выполняется рисование (0..15);

SetBkColor(Color: word) - Установка цвета фона.

Гpафические примитивы

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

LineTO(X,Y: integer) - Рисует линию от текущего указателя к точке с координатой Х,У;

LineRel(DX,DY: integer) - Рисует линию от текущего указателя к точке, заданной приращением координат;

Line(X1,Y1,X2,Y2:integer) - Рисует линию от точки (X1,Y1) к точке с

координатой Х2,У2;

MoveTO(X,Y: integer) - Смещает текущий указатель к точке с координатой Х,У;

MoveRel(DX,DY: integer) - Смещает текущий указатель к точке, заданной

приращением координат;

Rectangle(X1,Y1,X2,Y2:integer) - Рисует прямоугольник, используя

текущий цвет и тип линии по верхней левой и нижней правой точкам;

Bar(X1,Y1,X2,Y2:integer) - Рисует закрашенный прямоугольник, используя установку SetFillStyle;

Bar3D(X1,Y1,X2,Y2:integer;Depth:word;Top:Bolean) - Рисует закрашенный паpаллелипипед. Depth - глубина в Pixel (1/4 ширины).

Если Тор=True, то рисуется верхняя грань пеpеллелипипеда;

circle(X,Y:integer;R:word) - Рисует окружность радиуса R, используя

X,Y как координаты центра;

Fillellipse(X,Y: integer; XR,YR: word) - Рисует защтpихованный эллипс,

используя X,Y как центр и XR,YR как горизонтальный и

вертикальный радиусы.

RestorCRTMode - Восстанавливает текстовый режим работы экрана;

OutText(Text: string) - Выводит текстовую строку на экран.

OutTextXY(X,Y: integer; Text: string) - Выводит текст в заданное

место экрана.

 

Пример программы построения графика функции у=2+х*х.

program graphik; {файл grafikf.pas}

uses graph; {подключение модуля GRAPF}

var a,b,x,y: integer; {a,b-переменные, определяющие тип драйвера и

видеорежим соответственно}

begin

detectgraph(a,b); {авто определение типа драйвера и видеорежима}

initgraph(a,b,'E:\TP\BGI'); {инициализация графического режима}

setgraphmode(2); {установка нового режима (2), очистка экрана}

setBKcolor(0); {основной цвет фона - черный}

setcolor(4); {основной цвет рисования - красный}

moveTO(100,100); {смещает курсор}

lineRel(50,50); {вычерчивание линии по приращению от текущего указателя}

readln; {пауза до нажатия клавиши }

setcolor(2); {основной цвет рисования - зеленый}

line(100,100,100,50);{рисует линию от т.Х1,У2 до т.Х2,У2}

readln; {пауза до нажатия }

setcolor(5); {основной цвет рисования - фиолетовый}

putPixel(0,0,12); {выводит точку цветом 12 с координатой 0,0}

readln; {пауза до нажатия }

moveTO(1,2); {смещает курсор к точке с координатой 1,2}

for x:=0 to 20 do

begin

y:=2+ x*x;

lineTO(x,y); {рисует линию от текущего указателя к точке с координатой Х,У}

end;

readln; {пауза до нажатия ввода}

Settextstyle(1,0,5);

OutTextXY(50,400,'график функции у=2+х*х'); {выводит текст в заданное место экрана}

readln; {пауза до нажатия }

putPixel(639,479,14);{выводит точку цветом 14 с координатой 639,479}

readln; {пауза до нажатия }

closegraph;{закрывает графический режим и восстанавливает текстовый}

end.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.