Отображение отрезков прямых линий
Отображение точки
Построение простейших графических изображений
Управление цветом и фоном
Во время инициализации графического режима устанавливается палитра цветов. Палитрой называется максимальный набор цветов, поддерживаемых 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)- стиль линии – сплошная, жирная.