Пример 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.