Рисование графических примитивов осуществляется пером и кистью. При
этом линии рисуются с помощью пера, а если получаемая фигура имеет внутренность, то эта внутренность закрашивается кистью. Перо и кисть имеют различные свойства, которые можно изменять в процессе рисования.
Перейдем к рассмотрению свойств пера. К ним относятся координаты,
цвет, ширина и стиль.
Текущие координаты пера возвращаются функциями PenX и PenY. Для
изменения текущих координат пера предназначены следующие процедуры:
MoveTo(x,y) – перемещение пера к точке с координатами (x,y);
LineTo(x,y) – рисование отрезка от текущего положения пера до точки
(x,y); координаты пера при этом становятся равными (x,y).
Имеется два способа работы со свойствами пера. Первый способ – проце-
дурный. Рассмотрим его подробнее.
Цвет пера устанавливается с помощью процедуры SetPenColor(c), а его текущее значение возвращается функцией PenColor. Процедура SetPen-Width(w) устанавливает ширину пера, равную w пикселам, а функция Pen-Width целого типа возвращает текущую ширину пера. По умолчанию перо имеет черный цвет и ширину, равную 1. Стиль пера устанавливается процедурой SetPenStyle(ps), его текущее значение возвращается функцией PenStyle. Имеются следующие стили пера, определяемые именованными константами целого типа:
psSolid – сплошная линия
psDash – пунктирная линия
psDot – линия из точек
psDashDot – точка-тире
psDashDotDot – тире-точка-точка
psClear - линия не рисуется
Второй способ работы со свойствами пера – с помощью объекта Pen, имеющего свойства Color, Width и Style. Так, чтобы установить пунктирное перо красного цвета, достаточно написать
Pen.Color := clRed;
Pen.Width := 3;
Такой способ является более современным и предпочтительным для обучения, однако, нуждается в минимальном представлении об объектах, их свойствах и методах на уровне понимания точечной нотации. К счастью, точечная нотация легко усваивается даже младшими школьниками.
Кисти
Начнем с рассмотрения свойств кисти. К ним относятся цвет, стиль, штриховка и второй цвет для градиентной кисти.
Для установки цвета кисти служит процедура SetBrushColor(color).Функция BrushColor возвращает текущий цвет кисти. По умолчанию кисть имеет белый цвет.
Имеется четыре стиля кисти: сплошная, пустая, штриховая и градиентная, задаваемые константами bsSolid, bsClear, bsHatch и bsGradient соответственно. Для установки стиля кисти служит процедура SetBrushStyle(bs). Функция BrushStyle возвращает текущий стиль кисти.
Пустая кисть используется для рисования замкнутых графических примитивов с пустой внутренностью. Аналогичную работу можно выполнить, используя графические примитивы с приставкой Draw.
Вид штриховки штриховой кисти задается более чем 50 именованными константами, основные из которых приведены ниже:
bhBDiagonal – линии, идущие направо и вверх
bhFDiagonal – линии, идущие налево и вверх
bhHorizontal – горизонтальные линии
bhCross – горизонтальные и вертикальные линии
bhVertical – вертикальные линии
bhDiagCross – диаганальная сетка
Штриховка кисти устанавливается процедурой SetBrushHatch(bh), а возвращается функцией BrushHatch. Штриховка работает только для кисти, имеющей стиль bsHatch. Штриховка закрашивается текущим цветом кисти, а область вне штриховки – цветом, устанавливаемым процедурой SetHatchBrushBackgroundColor(c) и возвращаемым функцией HatchBrushBackgroundColor (по умолчанию – белый цвет).
Градиентная кисть в настоящей реализации GraphABC поддерживает только линейный градиент от левого верхнего до правого нижнего угла. Цвет левого верхнего угла определяется текущим цветом кисти, а цвет правого нижнего угла задается процедурой SetGradientBrushSecondColor(c), а возвращается функцией GradientBrushSecondColor.
Второй способ работы со свойствами кисти – с помощью объекта Brush, имеющего свойства Color, Style, Hatch, HatchBackgroundColor и GradientSecondColor. Так, задание штриховой кисти с горизонтальной штриховкой осуществляется следующим образом:
Brush.Style := bsHatch;
Brush.Hatch := bhHorizontal;
Brush.GradientSecondColor := clRed;
Шрифты
Кроме пера и кисти с графическим окном связывается шрифт. Шрифт имеет следующие свойства: цвет, размер, наименование и стиль. Текущие свойства шрифта используются при выводе текста в графическое окно с помощью процедуры TextOut. Приведем список процедур и функций для работы со шрифтом графического окна:
SetFontColor(color) – процедура, устанавливающая цвет шрифта;
FontColor – функция, возвращающая текущий цвет
шрифта;
SetFontSize(sz) – процедура, устанавливающая размер шриф-
та в пунктах;
FontSize – функция, возвращающая текущий размер
шрифта в пунктах;
SetFontName(s) – процедура, устанавливающая наименование
шрифта;
FontName – функция, возвращающая текущее наимено-
вание шрифта;
SetFontStyle(fs) – процедура, устанавливающая стиль шрифта;
FontStyle – функция, возвращающая текущий стиль
шрифта;
TextWidth(s) – функция, возвращающая ширину строки s в
пикселах при текущих настройках шрифта;
TextHeight(s) – функция, возвращающая высоту сроки s в
пикселах при текущих настройках шрифта.
По умолчанию установлен черный шрифт Arial размера 10 пунктов. Наиболее распространенные шрифты — это «Times New Roman», «Arial» и «Courier New». Наименование шрифта можно набирать без учета регистра.
Для установки стиля шрифта удобно пользоваться следующими именованными константами:
Второй способ работы со свойствами шрифта – с помощью объекта Font, имеющего свойства Color, Style, Size, Name. Так, задание жирного наклонного синего шрифта Times в 12 пунктов осуществляется следующим образом: