Вычерчивание линий различных стилей
Отображение отрезков прямых линий
Процедура вывода отрезка прямой на экран
Line(X1,Y1,X2,Y2:Integer);
X1,Y1 - координаты начальной точки линии
X2,Y2 - координаты конечной точки линии
Процедура
LineTo(X,Y)
строит отрезок из текущего положения указателя до точки с координатами X,Y.
Процедура
LineRel(dX,dY)
строит отрезок от точки текущего положения указателя до точки (CPX+dX,CPY+dY), где CPX и CPY – текущие координаты CP.
Пример. Заполнение экрана множеством отрезков различных цветов.
USES Graph,Crt;
VAR
Gd,Gm:Integer;
Begin
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
Randomize;
Repeat
SetColor(Random(15)); {случайный выбор цвета}
{построение линий с использованием различных процедур}
Line(Random(GetMaxX),Random(GetMaxY),GetX,GetY);
LineTo(Random(GetMaxX),Random(GetMaxY));
LineRel(50,-50)
Until KeyPressed;
CloseGraph;
End.
Возможно вычерчивать линии самых различных стилей
SetLineStyle(LineStyle,Pattern,Thickness)
LineStyle – задает тип строки
Pattern – шаблон (если параметр LineStyle не равен 4, то Pattern не используется и задается равным нулю)
Thickness – задает толщину линии.
Значение
Характеристики линий
Сплошная
Пунктирная
Штрих-пунктирная
Штриховая
Заданная пользователем
Нормальной толщины
Большой толщины
Например. Задание стиля линии и построение отрезка.
USES Graph,Crt;
VAR
Gd,Gm:Integer;
Ch:Char;
Begin
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
End;
Randomize;
Repeat
ClearDevice; {чистка экрана}
{определение типа линии}
SetLineStyle(3,0,1);
Line(1,1,GetMaxX,GetMaxY);
Ch:=ReadKey;
Until Ch=#27;
CloseGraph;
End.
11.10.1 Построение прямоугольника на плоскости
Rectangle(X1,Y1,X2,Y2)
X1,Y1 – координаты левого верхнего угла
X2,Y2 - координаты правого нижнего угла
Пример. Построение последовательности прямоугольников.
USES Graph,Crt;
VAR
Gd,Gm:Integer;
I:Word;
Begin
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
End;
For I:=1 To GetMaxY Do Rectangle(1,1,I,I);
ReadLn;
SetWriteMode(XorPut); {режим вывода}
{построенная последовательность стирается}
For I:=GetMaxY DownTo 2 Rectangle(1,1,I,I);
ReadLn;
CloseGraph;
End.
11.10.2 Построение закрашенного прямоугольника
Внутренняя область прямоугольника залита по текущему шаблону
Bar(X1,Y1,X2,Y2);
X1,Y1 – координаты левого верхнего угла
X2,Y2 - координаты правого нижнего угла
3. Отображение параллелепипеда
Bar3D(X1,Y1,X2,Y2,D3,Top);
отображается параллелепипед, «лицевая сторона» которого заливается по текущему шаблону, а глубина задается в пикселах параметром D3. Параметр Top задает режим отображения верхней плоскости.
TopOn - верхняя плоскость отображается
TopOff - верхняя плоскость не отображается