[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 8.2. Эта программа демонстрирует возможности изображения линий в графическом режиме.
 
 
Демонстрация
 
Внимание: будет работать только если Turbo Pascal установлен в каталог C:\TP и каталог C:\TP\BGI содержит необходимый файл egavga.bgi.
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.

[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]