
Свойство Pеn
Свойство реn типа Tреп определяет атрибуты пера, применяемого для рисования линий и границ геометрических фигур. Управление атрибутами пера осуществляется через его свойства, основными из которых являются: Сolor, Style Width, Mode.
Color – определяет цвет линии и имеет тип Tcolor;
Style - определяет тип линии и принимает значения:
psSolid — сплошная линия (по умолчанию)
psDash — штриховая линия
psDot — пунктирная линия
psDashDot — штрихпунктирная линия
psDashDotDot — линия вида штрих точка-точка
psСlear — невидимая линия
Width - толщина рисуемой линии в пикселях.
Mode – способ в соответствии с которым цвет пера взаимодействует с цветом пикселей на холсте. Принимает следующие значения:
pmCopy – совпадает с цветом Color ( по умолчанию )
pmNotCopy – инверсия цвета пера
pmNot – инверсия цвета на поверхности рисования
pmMerge – объединение цвета поверхности рисования и пера
pmBlack - всегда черный,
pmWhite — всегда белый,
pmNop — не изменяется,
pmxor — объединение цветов, различных для поверхности рисования и пера
pmNotXor — инверсия эффекта, создаваемого pmXor
Свойство Brush
Свойство Brush типа TBrush определяет атрибуты кисти, используемой для заполнения цветом геометрических фигур. Управление атрибутами пера осуществляется через его свойства, основными из которых являются: Сolor, Style, BitMap.
Color – определяет цвет заливки и имеет тип Tcolor;
Style - определяет тип заливки и принимает значения:
bsSolid — сплошная заливка;
bsClear — заливка отсутствует.
bsHorizontal - параллельные горизонтальные линии,
bsVertical — параллельные вертикальные линии;
bsDiagonal - параллельные диагональные линии, направленные вверх;
bsCross — прямая решетка,
bsDiagCross — косая решетка.
Bitmap типа TBitmap - растровое изображение, используемое для заполнения
Свойство Font
Свойство Font типа TFont устанавливает параметры шрифта при выводе текста на поверхность рисования. Управление атрибутами шрифта через его свойства, основными из которых являются: Name, Size, Style, Сolor.
Name – определяет название шрифта тип String , например ‘Arial’ или ‘Times New Roman’
Size– определяет размер шрифта имеет тип Integer.
Style - определяет тип шрифта множественного типа со значениями:
fsItalic - курсив
fsBold - жирный
fsUnderline - подчеркнутый
fsNormal- нормальный
Color – определяет цвет шрифтов и имеет тип Tcolor;
Для отображения текста на поверхности рисования используется метод
TextOut( X, Y : Integer; Text: String ) x, y – координаты места вывода
Примеры использования графических примитивов
Пример 1 прямая на форме
Form1.Canvas.Pen.Color:=clRed; //цвет пера
Form1.Canvas.Pen.Width:=2; // ширина пера
Form1.Canvas.MoveTo(10,20); // установка в точку (10,20)
Form1.Canvas.LineTo(10,70); // рисование линии от точки(10,20)до (10,70)
Пример 2 прямая на области рисования PaintBox ( PB)
with PB.Canvas do
begin
Pen.Color:=clBlack;// цвет пера
Brush.Color:=clYellow;// цвет кисти
Brush.Style:=bsHorizontal; // стиль заливки
Rectangle(0,0,PB.Width, PB.Height div 2 );// закрашенный прямоугольник
end;
Пример 3 случайные точки произвольного цвета на области рисования PaintBox ( PB)
with PB.Canvas do
begin
for i:=1 to 1000 do
Pixels[Random(PB.Width),Random(PB.Height)]:=Random(256*256*256)// цвет
end
Пример 4 градации красного на области рисования PaintBox ( PB)
with PB.Canvas do
begin
for i:=0 to 255 do
begin
Pen.Color:=i;// цвет пера
MoveTo(0,i); // установка в точку начала линии
LineTo(PB.Width,i); // рисование линии
end; end
Пример 5 Рисование дуги 270 – 90 градусов на области рисования PaintBox ( PB)
with PB.Canvas do
begin
PBW:=PB.Width; PBH:=PB.Height;
Arc(0, 0, PBW, PBH, PBW div 2, PBH, PBW div 2, 0);// рисование дуги
end
Пример 6 концентрических окружностей разного цвета в области рисования PaintBox ( PB)
with PB.Canvas do
begin
X1:=0; Y1:=0; X2:=200; Y2:=200; D:=20;
for i:=1 to 5 do
begin
Brush.Color:=Random(256*256*256);// цвет кисти
X1:=X1+D; Y1:=Y1+D; X2:=X2-D; Y2:=Y2-D;
Ellipse(x1,y1,x2,y2); // рисование окружностей
end;
end
Пример 7 Рисование восьмиугольника в области рисования PaintBox ( PB)
var
P:array of TPoint; // массив точек
Alfa:Real; R, i:Integer;
begin
with PB.Canvas do
begin
SetLength(P,8); // задание размерности динамического массива
Alfa:=2*Pi/8; R:=PB.Height div 2; // вычисление угла и радиуса
for i:=0 to 7 do
begin // формирование массива точек ( 8 вершин многоугольника )
P[i].X:=Trunc(R*Cos(i*Alfa))+PB.Width div 2;
P[i].Y:=Trunc(R*Sin(i*Alfa))+PB.Height div 2;
end;
PB.Canvas.Polygon(P); // рисование замкнутого многоугольника
end;
end;
Пример 8 Рисование мышкой в области
procedure TForm1.PBMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
PB.Canvas.Pen.Color:=clGreen;
// рисование при нажатой левой кнопки мыши
if ssLeft in Shift then PB.Canvas.LineTo(X,Y)
else PB.Canvas.MoveTo(X,Y);
Form1.Cursor:=crCross;// установка курсора мыши ( + ) на области рисования
end;
Пример 9 вывод текста в прямоугольнике
with PB.Canvas do
begin
Pen.Color:=clBlack;// цвет пера
Brush.Color:=clYellow;// цвет кисти
Rectangle(0, 0, PB.Width, PB.Height div 2 );// закрашенный прямоугольник
Font.Name:=’Arial’;
Font.Size:=14;
Font.Style:=[fsItalic,fsBold]; // установка стиля жирный италик
Font.Color:=clRed;
TextOut( 30,20,’Пример’); // вывод текста
end;