Отображение отрезков прямых линий

Отображение точки

Построение простейших графических изображений

Управление цветом и фоном

Во время инициализации графического режима устанавливается палитра цветов. Палитрой называется максимальный набор цветов, поддерживаемых BGI–драйвером. Она включает 16 цветов, пронумерованных от 0 до 15, которые используются по умолчанию в режимах 640´480 для VGA (и для EGA) как в текстовом, так и в графическом режиме.

Таблица 2 Названия цветов на английском и русском языках и их номера.

Имя цвета Номер цвета Название цвета
Black Blue Green Cyan Red Magenta Brown LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White черный синий зеленый голубой красный фиолетовый коричневый светло-серый темно-серый светло-синий светло-зеленый светло-голубой светло-красный светло-фиолетовый желтый белый

Для установки цвета изображения и окна применяются процедуры SetColorи SetBkColor.

Процедура SetColor(<цвет>:word); служит для задания цвета, которым будут обозначены контуры фигуры или текста. Если в качестве цвета указан недопустимый номер цвета, то текущий цвет не изменяется.

Процедура SetBkColor (<цвет>:word); устанавливает новый цвет фона.

Какие бы изображения не выводились на экран, все они построены из точек.

Процедура PutPixel(X,Y:integer; Color:word); отображает точку на экране, где Х и Y – экранные координаты точки, Color – ее цвет.

Пример 2. Пример программы, при выполнении которой создается интересный визуальный эффект путем заполнения экрана множеством точек различных цветов.

Uses Graph;

Var Driver, Mode:integer;

Color:word;

X,Y:word;

Procedure GrInit;

Begin

Driver:=Detect; { автораспознавание драйвера }

InitGraph (Driver, Mode, ‘’);

If GraphResult<>0 then

begin

Writeln ('Ошибка инициализации!');

Writeln ('Работа программы прервана');

Halt (1) { остановить выполнение программы с кодом завершения – 1 }

End

End;

Begin

GrInit; { графические действия }

Color:=0;

Randomize;

Repeat {выберем случайным образом координаты точки}

X:=Random(GetMaxX);

Y= Random(GetMaxY);

PutPixel(X,Y,Color); {вывод точки}

Inc (Color); {изменение цвета}

If Color=GetMaxColor Then Color:=0; {не превышает ли значение цвета}

{максимального значения, которое}

{определяет функция GetMaxColor?}

Until KeyPressed; {повторять до нажатия любой клавиши}

ClearDevice;

CloseGraph

End.

Процедура Line(X1,Y1,X2,Y2:integer); выводит на экран отрезок прямой линии. Здесь X1,Y1 – координаты начальной точки, а X2,Y2 – координаты конечной точки отрезка.

Для построения отрезков можно применять также следующие процедуры:

LineTo(X,Y); – проводит отрезок из текущей точки до точки с координатой (X,Y);

LineRel(dX,dY); – проводит отрезок из текущей точки до точки, удаленной от нее на расстояние (dX,dY). Линии можно вычерчивать самых различных стилей: тонкие, широкие, штриховые, пунктирные и т.д.

Процедура SetLineStyle(<тип линии>:word;<узор(шаблон)>:word;<толщина линии>:word); производит установку стиля.

Таблица 3. Константы типа линий и их толщины

Константа Значение Характеристика линии
SolidLn DottedLn CenterLn DashedLn UserBitLn Сплошная линия Точечная линия Штрихпунктирная линия Пунктирная линия Тип линии, определяемый пользователем
NormWidth ThickWidth Нормальная толщина линии Жирная линия

Если тип линии не равен UserBitLn, то параметр “узор(шаблон)” не используется и обычно задается равным нулю, например SetLineStyle(0,0,3)- стиль линии – сплошная, жирная.