Тема: МодульGraph.

 

План занятия:

  1. Организация модулей.
  2. Модуль Graph.
  3. Инициализация и выход из графического режима.
  4. Вывод графической информации.
  5. Управление цветом, фоном, стилем, шаблоном, толщиной линий, заполнением.
  6. Управление графическим курсором.
  7. Вывод текстовой информации.

Скачать:

ВложениеРазмер
Microsoft Office document icon lekciya_9.doc66.5 КБ

Предварительный просмотр:

Лекция №9

Тема: Модуль Graph.

План занятия:

  1. Организация модулей.
  2. Модуль Graph.
  3. Инициализация и выход из графического режима.
  4. Вывод графической информации.
  5. Управление цветом, фоном, стилем, шаблоном, толщиной линий, заполнением.
  6. Управление графическим курсором.
  7. Вывод текстовой информации.

  1. Организация модулей

Использование модулей позволяет расширить возможности составления программ. Каждый модуль представляет собой набор констант, типов данных, переменных, процедур  и функций. Каждый модуль по своей структуре аналогичен отдельной программе. Вместе с тем структура модуля позволяет использовать его как своеобразную библиотеку описаний. Каждый модуль записывается в отделльном файле с расширением tpu.

  1. Модуль Graph

Модуль Graph поддерживает графический режим работы дисплея. В этом режиме любое изображение на экране дисплея синтезируется из множества мельчайших элементов, называемых пикселами. Каждый пиксел представляет собой светящуюся точку таких размеров, при которых промежуток между соседними пикселами отсуствует.

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

В графическом режиме курсор невидим, хотя и присутствует.

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

Реализация графического режима в ЭВМ обеспечивается с помощью видеоадаптера. Работу графического адаптера поддерживает драйвер адаптера. Для графических адаптеров VGA и EGA, которые используются в данном классе, используется драйвер EGAVGA.BGI.

Светлые цвета:

DarkGray    

8

LightBlue    

9

LightGreen  

10

LightCyan    

11

LightRed    

12

LightMagenta

13

Yellow      

14

White        

15

Для определиния цвета выводимых на экран различных геометрических фигур в модуле Graph описаны следуфщие константы:               Тёмные цвета:

Black  

0

Blue    

1

Green    

2

Cyan    

3

Red      

4

Magenta

5

Brown    

6

LightGray

7

  1. Инициализация и выход из графического режима

Графический режим инициализируется с помощью стандартной процедуры.

procedure InitGraph(var GraphDriver:Integer; var GraphMode: Integer;

   PathToDriver: string);

При этом в переменной GraphDriver задается тип загружаемого драйвера (Detect(автоопределение), EGA,VGA…).

После загрузки драйвера, происходит его настройка на режим, заданный в переменной GraphMode (для VGA лучший режим –VGAHi(2), для EGA – EGAHi (1)).

В переменной PathToDriver задается путь к графическому драйверу.

Ошибки, каторые могут возникать в процессе инициализации графического режима, анализируют с помощью функции GraphRezult.

Для выхода из графического режима используетя стандартная функция CloseGraph.

Пример инициализации графического режима.

        uses Graph;

var

  grDriver: Integer;

  grMode: Integer;

  ErrCode: Integer;

begin

  grDriver := Detect;

  InitGraph(grDriver, grMode,'');

  ErrCode := GraphResult;

  if ErrCode = grOk then

          begin  

                    { Выполнение работы в граф. режиме }

                    CloseGraph;

          end

                          else Writeln('Ошибка:', GraphErrorMsg(ErrCode));

end.


  1. Вывод графической информации

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

Arc(X,Y,StAngle,EndAngle,Radius:Integer); - рисует дугу с центром в точке (х,у), от начального угла StAngle до конечного EndAngle, радиусом Radius;

Bar(X1,Y1,X2,Y2); - выводит на экран закрашенный прямоугольник с координатами левого верхнего угла (Х1,У1) и правого нижнего угла (Х2,У2);

Circle(X,Y,Radius:Integer); - выводит на экран изображение окружности с центром (X,Y), радиусом Radius;

FillEllipse(X,Y,Xradius,Yradius: Integer);- выводит на экран изображение полного закрашенного эллипса с центром X,Y с горизонтальной и вертикальной полуосями Xradius,Yradius;

Line(X1,Y1,X2,Y2:Integer);- выводит на экран линию, соединяющую точки с координатами (X1,Y1) и (X2,Y2);

LineTo(X,Y:Integer) – выводит на экран линию, соединяющую точку, в которой находится курсор с точкой (X,Y);

PutPixel(X,Y,Color); - выводит на экран пиксел в точке X,Y, цветом Color;

Rectangle(X1,Y1,X2,Y2:Integer); – выводит на экран изображение прямоугольника;

  1. Управление цветом, фоном, стилем, шаблоном, толщиной линий, заполнением

Для управления цветом и фоном используются следующие процедуры и функции:

SetBkColor(Color:integer); – устанавливает текущий фоновый цвет Color.

SetColor(Color: integer); – устанавливает текущий цвет изображения.

        SetLineStyle(LineStile,Pattern,Thinkness:Integer); - определяет тип и толщину линии.

Стиль линии:

Line Styles:

 SolidLn    

0

 DottedLn  

1

 CenterLn  

2

 DashedLn  

3

 UserBitLn  

Определяется пользователем

4

Ширина линии:

 Нормальная ширина 1

 Жирная линия  3

Pattern, если не определяется пользоваетелем, то ставится =0.

SetFillPattern(Pattern:FillPatternType; Color:Integer);

,где

FillPatternType=Array[1..8]Of Byte;

-Устанавливает шаблон и цвет.

SetFillStile(Pattern,Color:Integer);

Устанавливает шаблон и цвет заполнения.

Pattern выбирается из констант:

Имя константы

Значение

 Результат:

 EmptyFill      

    0  

 Использовать цвет фона

 SolidFill        

    1  

 Использовать цвет рисования

 LineFill        

    2  

 Пунктирная линия

 LtSlashFill    

    3  

 /// Наклонные линии

 SlashFill      

    4  

 /// Жирные наклонные линии

 BkSlashFill  

    5  

 \\\ Жирные наклонные линии

 LtBkSlashFill

    6  

 \\\ наклонные линии

 HatchFill        

    7  

 «Светлая штриховка»

 XHatchFill      

    8  

 «Жирные» кресты

 InterleaveFill  

    9  

 Прерывистая линия

 WideDotFill    

   10  

 Редкие точки

 CloseDotFill    

   11  

 Частые точки

 UserFill            

   12  

 Определяется пользователем

, если Pattern=UserFill, то становится активным шаблон, заполненный в SetFillPattern.

  1. Управление графическим курсором

Курсор в графическом режиме представляет собой точку с координатами (X,Y). Для управления курсором определены следующие процедуры и функции:

GetMaxX:Integer - возвращает максимальное значение координаты X;

GetMaxY:Integer - возвращает максимальное значение координаты Y;

GetX:Integer – возвращает координату Х курсора;

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

MoveRe(Dx,Dy:Integer); - перемещает курсор в точку, которая находится на расстоянии Dx, Dy от курсора;

MoveTo(X,Y:Integer); - перемещает указатель в точку X,Y;

  1. Вывод текстовой информации

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

Вывод текстовой информации в графическом режиме осуществляется с помощью следующих процедур:

OutText(TextString:String); - вывод строки TextString, начиная с позиции курсора;

OutTextXY(X,Y:Integer; TextString:String); - вывод строки TextString, начиная с позиции X,Y.