Turbo Pascal работает в 2 режимах. Текстовый и графический.
При работе в текстовом режиме экран разбивается на строки, а строки на позиции, в каждую из которых можно поместить только один символ.
При работе в графическом режиме экран разбивается на отдельные точки — "пикселы". Положение пиксела также задается двумя координатами — X и Y. Координата X увеличивается слева направо, а координата Y — сверху вниз. Количество пикселов на экране зависит от типа графического адаптера и для распространённого адаптера VGA составляет 640 х 480
Графический режим работы предоставляет пользователю возможности создания статических и динамических изображений. Для работы в графическом режиме требуется подключить модуль Graph и проинициализировать видеоадаптер.
Пустая графическая программа выглядит приблизительно так
Uses
Graph, CRT;
Var
grDriver,grMode,res:integer;
Begin
grDriver:=detect;
init Graph (grDriver,'путь к файлу BGI');
Операторы графических изображений
Close graph;
End.
В модуле Graph содержится основной код, необходимый для правильной работы в графическом режиме.
Arc(X,Y:integer; U1,U2,R: Word) Строит дугу окружности текущим цветом с текущими праметрами линии. X, Y - координаты центра дуги, U1 - угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо, U2 - угол до конечной точки дуги, отсчитываемый так же, как U1, R - радиус дуги.
Bar(X1,Y1,X2,Y2:integer)
Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, X2 - координаты левого верхнего и правого нижнего углов прямоугольника.
Bar3D(X1,Y1,X2,Y2:integer;Glubina:word;Top:boolean)
Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, X2 - координаты левого верхнего и правого нижнего углов передней грани; Glubina - ширина боковой грани (отсчитывая по горизонтали), Top - признак включения верхней грани (Если True - верхняя грань вычерчивается, False - не вычерчивается).
Circle(X,Y:integer;R:word)
Рисует текущем цветом окружность радиуса R с центром в точке (X,Y).
ClearDevice
Очищает графический экран, закрашивает его в цвет фона.
ClearViewPort
очищает выделенное графическое окно, закрашивает его в цвет фона.
CloseGraph
Закрывает графический режим, т.е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.
Ellipse(X,Y:ineger; U1,U2,XR,YR:word)
Рисует дугу эллипса текущим цветом; X, Y - координаты центра эллипса; U1, U2 - углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, YR - горизонтальная и вертикальная полосы эллипса.
FillEllipse(X,Y:ineger; XR,YR:word)
Рисует заштрихованный эллипс, используя X,Y как центр и XR, YR как горизонтальную и вертикальную полосы эллипса.
FillPoly(N:word;Vwr PolyPoints)
Рисует и штрихует многоугольник, содержащий N вершин с координатами в PolyPoints.
InitGraph(Var Driver, Mode:integer;Path:String)
Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ''), считается что драйвер находится в текущем каталоге.
Line(X1,Y1,X2,Y2:Integer)
Рисует линию от точки X1,Y1 до точки X2,Y2.
LineTo(X,Y:Integer)
Рисует линию от текущего указателя к точке X1,Y1.
MoveTo(X,Y:Integer)
Смещает текущий указатель к точке X, Y.
OutTextXY(X,Y:Integer;TextString:String)
Выводит текст в заданное место экрана
PieSlice(X,Y:Integer;U1,U2,Radius:Word)
Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X,Y - координаты центра сектора круга; U1 и U2 - начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной вправо; Radius - радиус сектора.
PutPixel(X,Y:Integer;Color:Word)
Выводит точку цветом Color с координатами X,Y.
Rectangle(X1,Y1,X2,Y2)
Рисует контур прямоугольника, используя текущий цвет и тип линии. X1,Y1 - координаты левого верхнего угла прямоугольника, X2,Y2 - координаты правого нижнего угла прямоугольника.
Sector(X,Y:Integer; U1,U2,XR,YR:word)
Рисует и штрихует сектор эллипса радиусами XR и YR с центром в X,Y от начального угла U1 к конечному углу U2.
SetBkColor(Color:Word)
Устанавливает цвет фона.
SetColor(Color:Word)
Устанавливает основной цвет, которым будет осуществляться рисование.
SetFillStyle(Pattern,Color:Word)
Устанавливает образец штриховки и цвет.
SetLineStyle(LineStyle,Pattern,Thickness:Word)
Устанавливает толщину и стиль линии.
SetTextStyle(Font,Direction,CharSize:Word)
Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.
SetViewPort(X1,Y1,X2,Y2: Integer; ClipOn:Boolean)
Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет "отсечку" элементов изображения, не умещающихся в окне.
Функции
GetMaxX и GetMaxY
Возвращает значения максимальных координат экрана в текущем режиме работы, соответственно, по горизонтали и вертикали.
GraphResult
Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок.ю или возвращает числовой код ошибки (от -1 до -14).
При работе в текстовом режиме экран разбивается на строки, а строки на позиции, в каждую из которых можно поместить только один символ.
При работе в графическом режиме экран разбивается на отдельные точки — "пикселы". Положение пиксела также задается двумя координатами — X и Y. Координата X увеличивается слева направо, а координата Y — сверху вниз. Количество пикселов на экране зависит от типа графического адаптера и для распространённого адаптера VGA составляет 640 х 480
Графический режим работы предоставляет пользователю возможности создания статических и динамических изображений. Для работы в графическом режиме требуется подключить модуль Graph и проинициализировать видеоадаптер.
Пустая графическая программа выглядит приблизительно так
Uses
Graph, CRT;
Var
grDriver,grMode,res:integer;
Begin
grDriver:=detect;
init Graph (grDriver,'путь к файлу BGI');
Операторы графических изображений
Close graph;
End.
В модуле Graph содержится основной код, необходимый для правильной работы в графическом режиме.
Константы цвета
Black = 0 Blue = 1 Green = 2 Cyan = 3 Red = 4 Magneta = 5 Brown = 6 LightGray = 7 | {Черный} {Синий} {Зеленый} {Голубой} {Красный} {Фиолетовый} {Коричневый} {Светлосерый} | DarkGray = 8 LightBlue = 9 LightGreen = 10 LightCyan = 11 LightRed = 12 LightMagneta = 13 Yellow = 14 White = 15 | {Темносерый} {Яркосиний} {Яркозеленый} {Яркоголубой} {Розовый} {Малиновый} {Желтый} {Белый} |
Константы типов и толщины линий
SolidLn = 0 DottedLn = 1 CenterLn = 2 | {Сплошная} {Точечная} {Штрихпунктирная} | DashedLn = 3 NormWidth = 1 ThickWidrth = 3 | {Пунктирная} {Нормальная толщина} {Тройная толщина} |
Константы шаблона штриховки
EmtyFill = 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 | {Заполнение цветом фона} {Сплошная штриховка} {Горизонтальная штриховка} {/// штриховка} {/// штриховка толстыми линиями} {\\\ штриховка толстыми линиями} {\\\ штриховка} {Заполнение прямой клеткой} {ЗАпонение косой клеткой} {Заполнение частой сеткой} {Заполнение редкими точками} {Заполнение частыми точками} {Тип задается пользователем} |
Процедуры
Arc(X,Y:integer; U1,U2,R: Word) Строит дугу окружности текущим цветом с текущими праметрами линии. X, Y - координаты центра дуги, U1 - угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо, U2 - угол до конечной точки дуги, отсчитываемый так же, как U1, R - радиус дуги.
Bar(X1,Y1,X2,Y2:integer)
Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, X2 - координаты левого верхнего и правого нижнего углов прямоугольника.
Bar3D(X1,Y1,X2,Y2:integer;Glubina:word;Top:boolean)
Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, X2 - координаты левого верхнего и правого нижнего углов передней грани; Glubina - ширина боковой грани (отсчитывая по горизонтали), Top - признак включения верхней грани (Если True - верхняя грань вычерчивается, False - не вычерчивается).
Circle(X,Y:integer;R:word)
Рисует текущем цветом окружность радиуса R с центром в точке (X,Y).
ClearDevice
Очищает графический экран, закрашивает его в цвет фона.
ClearViewPort
очищает выделенное графическое окно, закрашивает его в цвет фона.
CloseGraph
Закрывает графический режим, т.е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.
Ellipse(X,Y:ineger; U1,U2,XR,YR:word)
Рисует дугу эллипса текущим цветом; X, Y - координаты центра эллипса; U1, U2 - углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, YR - горизонтальная и вертикальная полосы эллипса.
FillEllipse(X,Y:ineger; XR,YR:word)
Рисует заштрихованный эллипс, используя X,Y как центр и XR, YR как горизонтальную и вертикальную полосы эллипса.
FillPoly(N:word;Vwr PolyPoints)
Рисует и штрихует многоугольник, содержащий N вершин с координатами в PolyPoints.
InitGraph(Var Driver, Mode:integer;Path:String)
Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ''), считается что драйвер находится в текущем каталоге.
Line(X1,Y1,X2,Y2:Integer)
Рисует линию от точки X1,Y1 до точки X2,Y2.
LineTo(X,Y:Integer)
Рисует линию от текущего указателя к точке X1,Y1.
MoveTo(X,Y:Integer)
Смещает текущий указатель к точке X, Y.
OutTextXY(X,Y:Integer;TextString:String)
Выводит текст в заданное место экрана
PieSlice(X,Y:Integer;U1,U2,Radius:Word)
Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X,Y - координаты центра сектора круга; U1 и U2 - начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной вправо; Radius - радиус сектора.
PutPixel(X,Y:Integer;Color:Word)
Выводит точку цветом Color с координатами X,Y.
Rectangle(X1,Y1,X2,Y2)
Рисует контур прямоугольника, используя текущий цвет и тип линии. X1,Y1 - координаты левого верхнего угла прямоугольника, X2,Y2 - координаты правого нижнего угла прямоугольника.
Sector(X,Y:Integer; U1,U2,XR,YR:word)
Рисует и штрихует сектор эллипса радиусами XR и YR с центром в X,Y от начального угла U1 к конечному углу U2.
SetBkColor(Color:Word)
Устанавливает цвет фона.
SetColor(Color:Word)
Устанавливает основной цвет, которым будет осуществляться рисование.
SetFillStyle(Pattern,Color:Word)
Устанавливает образец штриховки и цвет.
SetLineStyle(LineStyle,Pattern,Thickness:Word)
Устанавливает толщину и стиль линии.
SetTextStyle(Font,Direction,CharSize:Word)
Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.
SetViewPort(X1,Y1,X2,Y2: Integer; ClipOn:Boolean)
Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет "отсечку" элементов изображения, не умещающихся в окне.
Функции
GetMaxX и GetMaxY
Возвращает значения максимальных координат экрана в текущем режиме работы, соответственно, по горизонтали и вертикали.
GraphResult
Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок.ю или возвращает числовой код ошибки (от -1 до -14).
Комментариев нет:
Отправить комментарий