Главная страница

Графика в Т-З. графика. Процедуры. Arc (X,Y Integer U1, U2, R Word)


Скачать 50 Kb.
НазваниеПроцедуры. Arc (X,Y Integer U1, U2, R Word)
АнкорГрафика в Т-З
Дата27.01.2022
Размер50 Kb.
Формат файлаdoc
Имя файлаграфика.doc
ТипДокументы
#344219

Процедуры.

Arc (X,Y:Integer; U1, U2, R:Word)

Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y – координаты центра дуги; U1 – угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной с лева на право; U2 – угол до конечной точки дуги, отсчитываемый так же, как U1; R – радиус дуги.

Bar (X1, Y1, X2, Y2:Integer)

Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего углов прямоугольника.

Bar3D (X1, Y1, X2, Y2:Integer; Glubina: Word; Top:Boolean)

Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего углов передней грани; Glubina – ширина боковой грани (отсчитывается по горизонтали); Top – признак включения верхней грани (если True – верхняя грань вычерчивается, False – не вычерчивается).

Circle (X, Y: Integer; R: word)

Рисует текущим цветом окружность радиуса R с центром в точке (X, Y).

ClearDevice

Очищает графический экран, закрашивает его в цвет фона.

ClearViewPort

Очищает выделенное графическое окно, закрашивает его в цвет фона.

CloseGraph

Закрывает графический режим, т. е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.

Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)

Рисует дугу эллипса текущим цветом. X, Y – координаты центра эллипса; U1, U2 – углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, XY – горизонтальная и вертикальная полуоси эллипса.

Fill Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)

Рисует заштрихованный эллипс, используя X, Y как центр и XR, YR как горизонтальную и вертикальную полуоси эллипса.

FillPoly (N: Word; Var 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)

Рисует линию от текущего указателя к точке X, Y.

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).

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

Пример 8.7. Программа рисует человечка, делающего утреннюю зарядку.

 



 

Демонстрация

 

Внимание: будет работать только если Turbo Pascal установлен в каталог C:\TP и каталог C:\TP\BGI содержит необходимый файл egavga.bgi.

Начало формы

Конец формы

Program Animation; 

  Uses Crt, Graph; 

{подключение к программе библиотек Crt и Graph} 

  Const {вертикальные и горизонтальные координаты положения рук} 

  Vert : Array[1..3] of Integer = (190, 157, 120); 

  Horizont : Array[1..3] of Integer = (200, 190, 200); 

  Var 

  GrDriver, GrMode, GrError, i, j : Integer; 

BEGIN 

  GrDriver := Detect; InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); 

  GrError := GraphResult; If GrError <> GrOk then Halt; 

  SetColor(LightGray); { установка светлосерого цвета для рамки} 

  Rectangle(20, 20, 480, 400); {рисование рамки} 

  SetColor(LightCyan); {установка яркоголубого цвета для текста} 

  OutTextXY(200, 40, 'П Р И В Е Т !'); 

  SetColor(LightGray); Circle (250, 130, 20); {голова} 

  SetColor(Yellow); Arc(250, 130, 0, 180, 26); {волосы} 

  Arc(250, 130, 0, 180, 24); Arc(250, 130, 0, 180, 22); 

  Line(250, 105, 244, 115); Line(250, 105, 250, 116); {чубчик} 

  Line(250, 105, 256, 115); 

  SetColor(LightCyan); Circle(241, 125, 4); {левый глаз } 

  Circle(259, 125, 4); {правый глаз} 

  SetColor(LightRed); 

  SetFillStyle(SolidFill, LightRed); 

  FillEllipse(250, 140, 6, 3); {рот } 

  Setcolor(Green); 

  Line(250, 152, 250, 220); {туловище } 

  Line(250, 220, 210, 290); {левая нога } 

  Line(250, 220, 290, 290); {правая нога} 

  Repeat {цикл прерывается нажатием любой клавиши} 

  For i := 1 to 3 do {Последовательный вывод трех положений рук:} 

  begin { вниз, на уровне плеч, вверх } 

  SetColor(LightCyan); Sound(200*i); 

  Line(250, 157, Horizont[i], Vert[i]); {левая рука} 

  Line(250, 157, 500-Horizont[i], Vert[i]); {правая рука} 

  Delay(300); {задержка} 

  SetColor(Black); {смена цвета на черный для повторного 

  pисования рук в том же положении 

  ("стирания" их с экрана) } 

  Line(250, 157, Horizont[i], Vert[i]); {левая рука } 

  Line(250, 157, 500-Horizont[i], Vert[i]); {правая рука} 

  end 

  until Keypressed; 

  SetColor(LightCyan); 

  Line(250, 157, Horizont[3], Vert[3]); {левая рука поднята } 

  Line(250, 157, 500-Horizont[3], Vert[3]); {правая рука поднята} 

  For i := 1 to 10 do { звуковая трель } 

  begin 

  Sound(1000); 

  Delay(50); 

  Sound(1500); 

  Delay(50) 

  end; 

  NoSound; { выключение звука } 

  CloseGraph;

END.


написать администратору сайта