- •Введение
- •Управление экраном в текстовом режиме
- •Установка текстового режима
- •Установка цвета и фона
- •Управление курсором.
- •Управление строками.
- •Управление звуком.
- •Текстовые окна.
- •Использование клавиатуры.
- •Организация меню пользователя. Элементы псевдографики.
- •Виды меню
- •Использование буфера экрана.
- •Управление экраном в графическом режиме.
- •Стандартные подпрограммы для работы в графическом режиме
- •Установка графического режима.
- •InitGraph (var Driver,Mode:integer; DriverPath:string) -
- •Координаты, графические окна.
- •Выбор цвета, стиля заполнения.
- •Геометрия
- •Точки и линии.
- •Многоугольники
- •Дуги, окружности, эллипсы
- •Вывод текста
- •Сохранение и выдача изображений
- •Дополнительные стандартные подпрограммы для работы в графическом режиме. Анализ графического режима
- •Установки графических окон, страницы
- •Выбор палитры, заполнения
- •Геометрия
- •Установки вывода текста.
- •Организация библиотек пользователя
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Приложение 1. Кодировочная таблица пэвм.
- •Приложение 2. Константы графического режима.
Выбор цвета, стиля заполнения.
Для вывода информации на экран с использованием цвета в Graph.tpu определены процедуры позволяющие выбирать цвет выводимого изображения, текущий фон : SetColor, SetBKColor
При построении линий, многоугольников пользователь может задать вид линий (сплошные, пуктирные, состоящие из точек и тире, заданные самим пользователем) и цвет процедурой SetLineStyle. Для вывода закрашенных изображений используются различные виды штриховки, устанавливаемые процедурами SetFillStyle и SetFloodPattern.
Константы цветности следующие:
const
Black (черный) = 0;
Blue (голубой) = 1;
Green (зеленый) = 2;
Cyan (бирюзовый) = 3;
Red (красный) = 4;
Magents (малиновый) = 5;
Brown (коричневый) = 6;
LightGray (светло-серый) = 7;
DarkGray (темно-серый) = 8;
LightBlue (светло-голубой) = 9;
LightGreen (светло-зеленый) = 10;
LightCyan (светло-бирюзовый) = 11;
LightRed (светло-красный) = 12;
LightMagenta (светло-малиновый) = 13;
Yellow (желтый) = 14;
White (белый) = 15;
MaxColor (максимальное количество
цветов ) = 15;
SetColor( Color : word) - процедура установки цвета изображения , указанного значением Сolor, из текущей палитры. По умолчанию выбирается максимальный цвет палитры.
SetBkColor (Color : word) - процедура установки текущего фонового цвета, используя заданную палитру. Выполнение процедуры для Color, равного 0, т.е. SetBkColor(0) всегда приводит к установке черного цвета фона, этот же режим устанавливается по умолчанию. Пример программы, выводящей различные линии на различном фоне.
Uses Crt,Graph;
Var Driver,Mode:integer;
Palette:PaletteType;
Begin
Driver:=Detect;
InitGraph(Driver,Mode,'');
Randomize;
repeat
SetBKColor(Random(GetPaletteSize));
SetColor(Random(GetMaxColor)+1);
LineTo(Random(GetMaxX),Random(GetMaxY));
Delay(200);
until KeyPressed;
CloseGraph;
End.
Все допустимые значения цветов зависят от текущего графического драйвера и установленного графического режима.
SetLineStyle(LineStyle,Pattern,Thickness:word) - процедура установки стиля вычерчивания линии, где :
LineStyle - тип линии, задается константами:
const
SolidLine = 0 { сплошная }
DottedLine= 1 { точки }
CenterLn = 2 { точки и тире }
DashedLn = 3 { пунктирная }
UserBitLn = 4 { определяется пользователем }
Thickness - толщина линии, задается константами:
const
NormWidth = 1 { нормальная }
ThickWidth= 3 { увеличенная }
Если стиль выводимой линии использует тип линии от 0 до 3, то параметр Pattern игнорируется , в противном случае пользователь должен задать шаблон линии параметром Pattern, который определяет отрезок линии в 16 пикселей, устанавливая в 1 бит для светящегося символа, 0 - для несветящегося, повторяющийся по всей длине линий.
Пример. Вывод линий всех видов.
Uses Graph;
Var Driver,Mode,i:integer;
Begin
Driver:=Detect;
InitGraph (Driver, Mode,'');
if GraphResult=0 then
begin
SetColor(2);
for i:=0 to 3 do
begin
SetLineStyle(i,0,NormWidth);
SetColor(i+1);
Line(10,i*50+1,250,i*50+1);
end
end;
readln;
CloseGraph
end.
Для управления стилем заполнения изображений определена
процедура :
SetFillStyle(Pattern:word; Color:word) - установка шаблона Pattern и цвета Color заполнения перед выполнением процедур FillPoly, Bar, Bar3D, PieSlise. По умолчанию данные процедуры используют сплошной шаблон заполнения с MaxColor в палитре.
Константы шаблона заполнения области:
const
EmptyFill =0; {штриховка фоном (узор отсутствует)}
SolidFill =1; {сплошная штриховка)}
LineFill =2; {штриховка линиями)}
LtSlaashFill =3; {штриховка ///////}
SlashFill =4; {штриховка утолщенными /////}
BkSlashFill =5; {штриховка \\\\\\\}
LtBkSlashFill =6; {штриховка утолщенными \\\\\\\}
HatchFill =7; {штриховка +++++++}
XHatchFill =8; {штриховка xxxxxxx}
InterleaveFill=9; {штриховка в прямоугольную клеточку}
WideDotFill =10;{штриховка редкими точками}
CloseDotFill =11;{штриховка частыми точками}
UserFill =12;{штриховка определяется пользователем}
Если Pattern выбирается равным UserFill, то шаблон заданный пользователем становится активным. Пример шаблона, заполнен ного пользователем см. в разделе 3.2. Данная процедура игнорируется, если какая-либо часть области не вмещает три элемента шаблона.
Пример.
Uses Graph;
Var Driver,Mode,i:integer;
Begin
Driver:=Detect;
InitGraph (Driver, Mode,'');
Randomize;
if GraphResult=0 then
begin
SetColor(2);
for i:=1 to 11 do
begin
SetFillStyle(i,1);
SetColor(Random(GetMaxColor));
Bar(10,10,200,150);
readln
end
end;
readln;
CloseGraph
end.
FloodFill(X,Y:integer; Border:word) - процедура заполнения, ограниченной замкнутой линией цвета Border. Образец заполнеия из SetFiilStyle или SetFillPattern. Если точка (X,Y) является внутренней точкой заполняемой области, то закрашивается область. Иначе происходит заполнение внешней части области.
Пример заполнения окружности штриховкой частыми точками зеленого цвета.
Uses Graph;
Var Driver,Mode,i:integer;
Begin
Driver:=Cga;
Mode:=0;
InitGraph (Driver, Mode,'');
SetColor(2);
Circle(50,50,30);
SetFillStyle(CloseDotFill,1)
FloodFill(50,50,2)
CloseGraph
End.