Программа демонстрирует возможности изображения линий в графическом режиме.

{        Внимание! Для работы этой программы необходимо, чтобы:

          1) Turbo Pascal был установлен в каталог  C:\TP;
          2) каталог C:\TP\BGI содержал файл  egavga.bgi ;
          3) в меню  Options/Directories  был указан путь
             к файлу  graph.tpu,  например,  С:\TP\UNITS.

        Если Turbo Pascal установлен в другом каталоге, нужно изменить
        путь к нему в процедуре  InitGraph  (10-я строка программы).
}

 Program Lines;
   Uses Graph, Crt; {подключение к программе библиотек Crt и Graph}
   Var
     Key              : Char;
     LineStyle        : Word;    { номер стиля рисования линии }
     Style            : String;  { название стиля              }
     GrDriver, GrMode : Integer; { тип и режим работы графического драйвера }
     GrError          : Integer; { код ошибки графики          }
  BEGIN
   GrDriver := Detect;         { автоопределение типа графического драйвера }
   InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); { установка графического режима}
   GrError := GraphResult;
   If GrError<>GrOk then begin Writeln('Обнаружена ошибка!'); Halt
                         end;
   SetBkColor(LightGray); SetColor(Red);     { цвет фона и цвет рисования }
  {------------------------------------------------------------}
   OutTextXY(120, 100, 'Рисуем линию от точки (200,200) к точке (400,280)');
   Line(200, 200, 400, 280);
   Key:=ReadKey;    { приостановление исполнения программы }
   ClearViewPort;   { очистка окна}
  {-----------------------------------------------------------}
   OutTextXY(240, 80, 'Рисуем ломанную');
   Rectangle(110, 120, 520, 400);              { рисование рамки         }
   MoveTo(Round(GetMaxX/2), Round(GetMaxY/2)); { указатель в центре окна }

   Repeat {цикл прерывается нажатием любой клавиши}
     LineTo(Random(GetMaxX-250)+120, Random(GetMaxY-210)+120);
     Delay(100);
   until KeyPressed;

   Key := ReadKey; ClearViewPort;
  {-----------------------------------------------------------}
   OutTextXY(190, 80, 'Mеняем стили рисования линий');

   For LineStyle := 0 to 3 do
     begin
       SetLineStyle(LineStyle, 0, 1);
       Case LineStyle of
         0: Style:='Сплошная';
         1: Style:='Точечная';
         2: Style:='Штрихпунктирная';
         3: Style:='Пунктирная'
       end;
       Line(120, 150+LineStyle*50, 430, 150+LineStyle*50);
       OutTextXY(450, 145+LineStyle*50, Style);
     end;

   Key:=ReadKey; ClearViewPort; {очистка окна}
  {-----------------------------------------------------------}
   OutTextXY(180, 80, 'Меняем толщину рисования линий');
   SetLineStyle(0, 0, 1); {толщина 1 пиксел }
   Line(140, 200, 430, 200); OutTextXY(450, 195, 'Нормальная');
   SetLineStyle(0, 0, 3); {толщина 3 пиксела}
   Line(140, 250, 430, 250); OutTextXY(450, 245, 'Тройная');
   ReadLn; CloseGraph; {закрытие графического режима}
 END.

Leave a Comment

− 1 = 1