- •25. Модуль graph
- •25.1. Файлы bgi и содержание модуля Graph.
- •25.2. Инициализация и закрытие графического режима.
- •25.3. Обработка ошибок инициализации.
- •25.4. Классификация и анализ графических режимов.
- •25.5. Диапазоны графических режимов.
- •25.6. Очистка экрана и переключение режимов.
- •25.7. Управление режимом вывода образцов на экран.
- •25.8. Системы координат и текущий указатель.
- •Рисование графических примитивов и фигур. Линии и их
- •25.10. Коэффициент сжатия изображения.
- •25.11. Окружности, эллипсы, дуги.
- •25.12. Построение прямоугольников и ломаных.
- •25.13. Управление цветами и шаблонами заливки.
- •25.14. Заливка областей изображений.
25.12. Построение прямоугольников и ломаных.
Процедура
Rectangle(X1, Y1, X2, Y2: Integer)
изображает прямоугольник с диагональю (Х1,Y1)-(X2,Y2). Для рисования квадрата надо выбрать высоту прямоугольника так, чтобы она равнялась произведению ширины на коэффициент сжатия изображения.
Чтобы построить фигуры с большим количеством вершин (также незамкнутые), используем процедуру
DrawPoly(NumPoints: Word; Var PolyPoints) .
Процедура позволяет рисовать на экране дисплея любую ломаную, заданную набором координат некоторого множества точек. Параметр NumPoints - это количество точек ломаной. Если необходимо нарисовать замкнутый многоугольник с N вершинами, то значение должно быть на единицу больше N, а координаты (N+1)-й точки должны быть такой же как первой. Под бестиповым параметром понимается переменная, состоящая из наборов двухкомпонентных записей. Поля каждой записи должны содержать координаты X и Y очередной точки.
В модуле Graph введён тип
TYPE
PoitType = RECORD
X, Y: Integer;
END;
Набор точек организуется как массив из записей типа PointType.
25.13. Управление цветами и шаблонами заливки.
В модуле предусмотрены процедуры, с помощью которых можно заполнить (залить) Определённым «узором» любую замкнутую область изображения. Вид узора задаётся шаблонами заливки. Предусмотрен ряд стандартных шаблонов. Также имеется возможность конструировать собственные.
Назначение шаблона заполнения производится процедурой
SetFillSryle(Pattern: Word; Color: Word),
где параметр Pattern определяет вид шаблона заливки, Color - цвет.
Стандартные значения параметра Pattern:
CONST
EmptyFill =0;{заливка цветом фона}
SolidFill =1;{заливка текущим цветом}
LineFill =2;{= = =}
LtSlashFill =3;{/ / /}
SlashFill =4;{жирные линии / / /}
BkSlashFill =5;{жирные линии \ \ \}
LtBkSlashFill =6;{\ \ \}
HatchFill =7;{редкая штриховка}
XHatchFill =8;{частая штриховка}
InterLeaveFill =9;{прерывистые линии}
WideDotFill =10;{редкие точки}
CloseDotFill =11;{частые точки}
UserFill =12;{узор определяется программистом}
25.14. Заливка областей изображений.
В Турбо-Паскале имеются процедуры, рисующие графические фигуры и заполняющие их по заданному шаблону.
Bar(X1, Y1, X2, Y2: Integer)
рисует прямоугольник, внутренняя область которого залита по текущему шаблону. Обычно используется для построения столбчатых диаграмм. Параметры (X1, Y1) и (X2, Y2) -координаты верхнего левого и правого нижнего углов прямоугольника.
Bar3D(X1, Y1, X2, Y2:Integer; D3: Word; Top: Boolean)
рисует параллелепипед, лицевая сторона которого заливается по текущему шаблону, а глубина задаётся в пикселах параметром D3. Параметром Top задаётся режим отображения верхней плоскости: True - отображать, False - не отображать.
Рисование сектора эллипса, который будет залит цветом по текущему шаблону:
Sector(X, Y: Integer; StartAngle, EndAngle, XRadius, YRadius: Word)
X, Y- центр,
StartAngle, EndAngle- углы
Для задания кругового сектора задать YRadius с учётом коэффициента сжатия.
Процедура
PieSlice(X, Y: Integer; StartAngle, EndAngle: Word)
рисует сектор окружности, площадь которого заливается по текущему шаблону.
Процедура
FillEllipse(X, Y: Integer; XRadius, YRadius: Word)
рисует эллипс текущим цветом и заполняет его по установленному шаблону.
