ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI




Холст (канва). На Form или в графических окнах Image, BitMap и PaintBox можно рисовать различные графические примитивы с использованием объекта Canvas (холст).

Цвет, толщина и стиль линий, которым рисуются графические примитивы на холсте, задаются как значения свойства Pen (карандаш).

Для установки цвета линии используется свойство color:

Canvas.Pen.color:=цвет (константа либо шестнадцатеричный код)

Цвет. Значение аргумента color можно задать различными способами:

· с помощью одной из нескольких десятков констант, определяющих цвет (clBlack - черный, clBlue - синий, clGreen - зеленый, clRed - красный, clYellow - желтый, clWhite- белый и т.д.);

· с помощью цветовой модели RGB (красный, зеленый, синий) в шестнадцатеричном представлении, в котором для задания интенсивностей базовых цветов используются по два шестнадцатеричных разряда (например, $00FF0000 - синий, $0000FF00 - зеленый, $000000FF - красный; $00000000 - черный и $00FFFFFF - белый).

В случае отсутствия аргумента color рисование будет производиться цветом, принятым по умолчанию (черным).

Для установки толщины линии используется свойство Width:

Canvas.Pen.Width:= число пикселей;

Для установки типа рисования линии используется свойство Style:

Canvas.Pen.Style:=тип линии

psSolid - сплошная линия psDash - штриховая линия psDot - пунктирная линия psDashDot - штрих-пунктирная линия psDashDotDot - линия чередующая штрих и два пунктира psClear - отсутствие линии

Цвет и стиль заливки внутри геометрических примитивов задаются как значения свойства Brush (кисть).

Для установки цвета заливки используется свойство color:

Canvas.Brush.color:=цвет

Для установки типа заливки используется свойство Style:

Canvas.Brush.Style:=тип заливки

bsSolid - сплошная цветом кистиbsClear - цветом фона bsBDiagonal - диагональ правая bsFDiagonal - диагональ левая bsCrossв - клетку bsDiagCross - диагональная клетка bsHorizontal - горизонтальные линии bsVertical - вертикальные линии

Точка. Pixels - установка точки с заданными координатами и цветом:

Объект.Canvas.Pixels[X,Y]:= цвет;

Аргументами метода являются X,Y - целочисленные координаты точки.

Линия. Метод LineTo - рисование линии:

Объект.Canvas.LineTo(X1,Y1); - рисует прямую линию от текущих координат в точку с координатами X1,Y1.

Переход на требуемые текущие координаты реализуется с помощью метода MoveTo:

Объект.Canvas.MoveTo(X0,Y0)

Ломаная линия

Метод polyline вычерчивает ломаную линию. В качестве параметра метод получает массив типа TPoint. Каждый элемент массива представляет собой запись, поля х и у которой содержат координаты точки перегиба ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д.

var p:array[1..N] of tpoint;[11].x:= p[1].x;p[11].y:= p[1].y;1.Canvas.Polyline(p)

Метод (процедура) FloodFill заполняет замкнутую область канвы текущей кистью начиная с точки Х,У и распространяется во все стороны от неё

Объект.Canvas.FloodFill(X,Y,color,fillStyle); может принимать одно из двух значений: fsBorder (заливка прекращается на точках с цветом color), fsSurfase (заливка распространяется на все точки с цветом color). Перед использованием процедуры надо установить цвет и стиль кисти (Brush)

Многоугольник

Метод Polygon вычерчивает многоугольник. В качестве параметра метод получает массив типа TPoint. Каждый элемент массива представляет собой запись, поля (х,у) которой содержат координаты одной вершины многоугольника. Метод Polygon вычерчивает многоугольник, последовательно соединяя прямыми линиями точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д. Затем соединяются последняя и первая точки.

Цвет и стиль границы многоугольника определяются значениями свойства Реп, а цвет и стиль заливки области, ограниченной линией границы, - значениями свойства Brush, причем область закрашивается с использованием текущего цвета и стиля кисти.

Перо может рисовать не только линии но и фигуры

Прямоугольник. Метод Rectangle - прямоугольника:

Объект.Canvas.Rectangle(X1,Y1,X2,Y2)

Метод Rectangle рисует прямоугольник с координатами верхнего левого (X1, Y1)и правого нижнего угла (X2, Y2) прямоугольника.

Метод RoundRec тоже вычерчивает прямоугольник, но со скругленными углами:

Объект. Canvas.RoundRec(x1,y1,х2, у2, х3, у3)

 

 

где:

· x1, y1, х2, у2 -- параметры, определяющие положение углов прямоугольника, в который вписывается прямоугольник со скругленными углами;

· х3 и у3 - размер эллипса, одна четверть которого используется для вычерчивания скругленного угла.

Есть еще два метода, которые вычерчивают прямоугольник, используя в качестве инструмента только кисть (Brush). Метод FillRect вычерчивает закрашенный прямоугольник, а метод FrameRect - только контур. У каждого из этих методов лишь один параметр - структура типа TRect. Поля структуры TRect содержат координаты прямоугольной области, они могут быть заполнены при помощи функции Rect.

var, r2: TRect; // координаты углов прямоугольников

begin:= Rect(20,20,60,40);:= Rect(10,10,40,50);

Рисование окружностей и эллипсов реализуется методом Ellipse:

Объект.Canvas.Ellipse(X1,Y1,X2,Y2)

X1,Y1,X2,Y2 - определяют координаты верхнего левого (X1, Y1) и правого нижнего угла (X2, Y2) прямоугольника, в которую вписана окружность (эллипс).

Дуга Вычерчивание дуги выполняет метод Arc,:

Объект. Canvas.Arc(x1,y1,х2,у2,х3,у3,х4,у4)

 

 

где:

· x1, y1, х2, у2 - параметры, определяющие эллипс (окружность), частью которого является вычерчиваемая дуга;

· х3, у3 - параметры, определяющие начальную точку дуги; х4, у4 - параметры, определяющие конечную точку дуги.

Начальная (конечная) точка - это точка пересечения границы эллипса и прямой, проведенной из центра эллипса в точку с координатами х3 и у3 (х4, у4). Дуга вычерчивается против часовой стрелки от начальной точки к конечной:

Сектор

Метод pie вычерчивает сектор эллипса или круга:

Объект. Canvas.Pie(x1,y1,x2,y2,х3,у3,х4,у4)

 


 

где:

· x1, y1, х2, у2 - параметры, определяющие эллипс (окружность), частью которого является сектор;

· х3, у3, х4, у4 - параметры, определяющие координаты конечных точек прямых, являющихся границами сектора.

Начальные точки прямых совпадают с центром эллипса (окружности). Сектор вырезается против часовой стрелки от прямой, заданной точкой с координатами (хЗ, уз), к прямой, заданной точкой с координатами (х4, у4)

Вывод текста на холст. Для вывода текста на холст используется метод TextOut:

Объект.Canvas.TextOut(X,Y,Text),Y - координаты точки холста, от которой выполняется вывод текста.Text - строковая переменная или строка, которая выводится на холст.

Область вывода текста закрашивается текущим цветом кисти. Поэтому перед выводом текста свойству Brush.Color нужно присвоить значение bsClear или задать цвет кисти, совпадающий с цветом поверхности, на которую выводится текст.

Координаты правой границы текста, выведенного методом Textout, можно получить, обратившись к свойству PenPos.

После вывода текста методом Textout указатель вывода (карандаш) перемещается в правый верхний угол области вывода текста

Координаты правой границы текста, выведенного методом Textout, можно получить, обратившись к свойству PenPos..

TextOut(PenPos.X, PenPos.Y, ‘text’);

 

ЛИСТИНГ ПРОГРАММЫ

 

// Главный модульUnit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Menus, StdCtrls, ShellAPI;= class(TForm): TLabel;: TLabel;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TButton;: TButton;N1Click(Sender: TObject);N2Click(Sender: TObject);N3Click(Sender: TObject);Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };

: TForm2;olf_;

{$R *.dfm}TForm2.N1Click(Sender: TObject);('Программа написана студентом группы 3ПОВТ-109 Шадриным Ю.');;

TForm2.N2Click(Sender: TObject);('Программа состоит из трех форм');;

TForm2.N3Click(Sender: TObject);;;

TForm2.Button1Click(Sender: TObject);.show;;

TForm2.Button2Click(Sender: TObject);(Handle, nil, PChar('ship.exe'), nil, nil, SW_RESTORE);;.

 

// листинг второго модуляolf_;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class(TForm): TLabel;FormPaint(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;:byte;

{$R *.dfm}

// рисует Олимпийский флагTForm1.FormPaint(Sender: TObject);:=30;Canvas do

// полотнище.Pen.Width:= 1;.Pen.Color:= clBlack;.Brush.Color:= clCream;.Width:= 2;.Style:= bsClear; // область внутри круга не закрашивать.Color:= clBlue;(40-a,40-a,80+a,80+a);.Color:= clBlack;(70-a+20,40-a,110+a+20,80+a);.Color:= clRed;(100-a+40,40-a,140+a+40,80+a);.Color:= clYellow;(55-a,65-a+20,95+a,105+a+20);.Color:= clGreen;(85-a+20,65-a+20,125+a+20,105+a+20);;; end.

 


ЗАКЛЮЧЕНИЕ

 

Программа предназначена для выполнения операции над матрицей. Программа написана на языке Object Pascal. Работает в среде операционных систем Widows 2000/XP. Для полноценной работы данной программы необходимы следующие ресурсы компьютера: процессор Pentium IV или Celeron 2.0Ghz.

Оперативная память не менее 512 Мбайт, достаточное количество свободного места на диске - порядка 1 Гбайт.

Программа запускается нажатием на файл OLF.exe. На открывающем окне формы расположен меню MainMenu, через которого можно открыть справки, помощь и закрыть программу.




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: