Графические возможности Delphi позволяет программисту























Delphi_графика_1.ppt
- Количество слайдов: 23
Графические возможности Delphi позволяет программисту разрабатывать программы, которые могут выводить графику: схемы, чертежи, иллюстрации. Программа выводит графику на поверхность объекта (формы или компонента Image ). Поверхности объекта соответствует свойство canvas. Для того чтобы вывести на поверхность объекта графический элемент (прямую линию, окружность, прямоугольник и т. д. ), необходимо применить к свойству canvas этого объекта соответствующий метод. Например, для вычерчивания в окне программы прямоугольника, задается команда: Form 1. Canvas. Rectangle (10, 100, 100) Объект Свойство Метод
Свойство canvas — это объект типа TCanvas. (0, 0) Х Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т. д. ), Свойства задают характеристики выводимых графических У примитивов: цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации. Холст состоит из отдельных точек — пикселей. Положение пиксела характеризуется его координатами (X, Y). Левый верхний пиксель имеет координаты (0, 0). Координаты возрастают сверху вниз и слева направо. Значения координат правой нижней точки холста зависят от размера холста. Размер холста можно получить, обратившись к свойствам Height и width области иллюстрации (image) или к свойствам формы: Client. Height и Clientwidth.
Карандаш и кисть Художник в своей работе использует карандаши и кисти. Методы, обеспечивающие вычерчивание на поверхности холста графических примитивов, тоже используют карандаш и кисть. Карандаш применяется для вычерчивания линий и контуров, а кисть — для закрашивания областей, ограниченных контурами. Карандашу и кисти, используемым для вывода графики на холсте, соответствуют свойства Реn (карандаш) и Brush (кисть), которые представляют собой объекты типа TPen и TBrush, соответственно. Значения свойств этих объектов определяют вид выводимых графических элементов.
Карандаш используется для вычерчивания точек, линий, контуров геометрических фигур: прямоугольников, окружностей, эллипсов, дуг и др. Вид линии, которую оставляет карандаш на поверхности холста, определяют свойства объекта Pen Свойства объекта карандаш Свойство Определяет Color Цвет линии Width Толщину линии Style Вид линии Mode Режим отображения
Значение свойства Color определяет цвет линии Константа Цвет cl. Black Черный cl. Navy Темно-синий cl. Silver Серебристый cl. Fuchsia Ярко-розовый cl. Maroon Каштановый cl. Purple Розовый cl. Red Красный cl. Aqua Бирюзовый cl. Green Зеленый cl. Teal Зелено-голубой cl. Lime Салатный cl. White Белый cl. Olive Оливковый cl. Gray Серый cl. Blue Синий Свойство width задает толщину линии (в пикселах). Например, инструкция Canvas. Pen. width: =2 устанавливает толщину линии в 2 пиксела.
Значение свойства Реn. Style определяет вид линии Константа Вид линии ps. Solid Сплошная линия ps. Dash Пунктирная линия, длинные штрихи ps. Dot Пунктирная линия, короткие штрихи Пунктирная линия, чередование длинного ps. Dash. Dot и короткого штрихов Пунктирная линия, чередование одного ps. Dash. Dot длинного и двух коротких штрихов Линия не отображается (используется, ps. Clear если не надо изображать границу области, например, прямоугольника)
Значение свойства Реn. Mode влияет на цвет линии Свойство Mode определяет, как будет формироваться цвет точек линии в зависимости от цвета точек холста, через которые эта линия прочерчивается. Константа Цвет линии Черный, не зависит от значения свойства pm. Black Pen. Color Белый, не зависит от значения свойства Pen. pm. White Color Цвет линии определяется значением pm. Copy свойства Pen. Color Цвет линии является инверсным по pm. Not. Copy отношению к значению свойства Pen. Color Цвет точки линии определяется как pm. Not инверсный по отношению к цвету точки холста, в которую выводится точка линии
Кисть (canvas. Brush) используется методами, обеспечивающими вычерчивание замкнутых областей, например геометрических фигур, для заливки (закрашивания) этих областей. Кисть, как объект, обладает двумя свойствами: Свойство Определяет Color Цвет закрашивания замкнутой области Style Стиль (тип) заполнения области
Значения свойства Brush. Style определяют тип закрашивания Константа Тип заполнения (заливки) области bs. Solid Сплошная заливка bs. Clear Область не закрашивается bs. Horizontal Горизонтальная штриховка bs. Vertical Вертикальная штриховка Диагональная штриховка с наклоном bs. FDiagonal линий вперед Диагональная штриховка с наклоном bs. BDiagonal линий назад Горизонтально-вертикальная bs. Cross штриховка, в клетку bs. Diag. Cross Диагональная штриховка, в клетку
Пример стилей заполнения областей,
Рисовать на поверхности формы можно c помощью процедуры TForm 1. On. Paint procedure TForm 1. On. Paint(Sender: TObject); Для сокращения записи длинных свойств и методов рисования используется оператор with: with Form 1. Canvas do begin // установить характеристики кисти Brush. Color : = cl. Red; Brush. Style : = bs. Diag. Cross; // нарисовать заштрихованный в клеточку прямоугольник Rectangle(10, 100, 100) ; end;
Вывод текста Для вывода текста на поверхность графического объекта используется метод Text. Out. Инструкция вызова метода Text. Out в общем виде выглядит следующим образом: Объект. Canvas. Text. Out(x, у, Текст) где: объект — имя объекта, на поверхность которого выводится текст; х, у — координаты точки графической поверхности, от которой выполняется вывод текста; Текст — переменная или константа символьного типа, значение которой определяет выводимый методом текст.
Свойства объекта TFont Шрифт определяется значением свойства Font объекта canvas. Свойство Font представляет собой объект типа TFont. Свойство Определяет Используемый шрифт. В качестве значения следует Name использовать название шрифта, например Arial Размер шрифта в пунктах (points). Пункт— это единица Size измерения размера шрифта, используемая в полиграфии. Один пункт равен 1/72 дюйма Стиль начертания символов. Константы: fs. Bold (полужирный), fsltalic (курсив), fs. Underline Style (подчеркнутый), f s. Strike. Out (перечеркнутый). Можно комбинировать необходимые стили. Например, Объект. Canvas. Font. Style : = [fs. Bold, fs Italic] Цвет символов. В качестве значения можно использовать Color константу типа Tcolor
Область вывода текста закрашивается текущим цветом кисти. Поэтому перед выводом текста свойству Brush. Color нужно присвоить значение bs. Clear или задать цвет кисти, совпадающий с цветом поверхности, на которую выводится текст.
Следующий фрагмент программы демонстрирует использование функции Textout для вывода текста на поверхность формы: with Form 1. Canvas do begin // установить характеристики шрифта Font. Name : = 'Tahoma'; Font. Size : = 20; Font. Style : = [fsltalic, fs. Bold] ; Brush. Style : = bs. Clear; // область вывода текста не //закрашивается Text. Out(0, 10, 'Borland Delphi 7'); end; После вывода текста методом Textout указатель вывода (карандаш) перемещается в правый верхний угол области вывода текста.
Методы вычерчивания графических примитивов Любая картинка, чертеж, схема могут рассматриваться как совокупность графических примитивов: точек, линий, окружностей, дуг и др. Таким образом, для того чтобы на экране появилась нужная картинка, программа должна обеспечить вычерчивание (вывод) графических примитивов, составляющих эту картинку. Вычерчивание графических примитивов на поверхности компонента (формы или области вывода иллюстрации) осуществляется применением соответствующих методов к свойству Canvas этого компонента.
Точка Поверхности, на которую программа может осуществлять вывод графики, соответствует объект Canvas. Свойство Pixels , представляющее собой двумерный массив типа TColor , содержит информацию о цвете каждой точки графической поверхности. Используя свойство Pixels , можно задать требуемый цвет для любой точки графической поверхности, т. е. "нарисовать" точку. Например, инструкция Form 1. Canvas. Pixels[10, 10]: =cl. Red окрашивает точку поверхности формы в красный цвет. Размерность массива Pixels определяется размером графической поверхности. Свойство Pixels можно использовать для построения графиков.
Линия Вычерчивание прямой линии осуществляет метод Linе. То , инструкция вызова которого в общем виде выглядит следующим образом: Компонент. Canvas. Line. To(x, у) Метод Linе. То вычерчивает прямую линию от текущей позиции карандаша в точку с координатами, указанными при вызове метода. Начальную точку линии можно задать, переместив карандаш в нужную точку графической поверхности. Сделать это можно при помощи метода Move. To , указав в качестве параметров координаты нового положения карандаша. Вид линии (цвет, толщина и стиль) определяется значениями свойств объекта Pen графической поверхности, на которой вычерчивается линия.
Прямоугольник вычерчивается методом Rectangle, инструкция вызова которого в общем виде выглядит следующим образом: Объект. Canvas. Rectangle(x 1, y 1, x 2, y 2) где: объект — имя объекта (компонента), на поверхности которого выполняется вычерчивание; x 1, y 1 и х2, у2 — координаты левого верхнего и правого нижнего углов прямоугольника.
Прямоугольник со скругленными углами Метод Round. Rec тоже вычерчивает прямоугольник, но со скругленными углами. Объект. Canvas. Round. Rec(x 1, y 1, х2, у2, х3, у3) где: x 1, y 1, х2, у2 -- параметры, определяющие положение углов прямоугольника, в который вписывается прямоугольник со скругленными углами; х3 и у3 — размер эллипса, одна четверть которого используется для вычерчивания скругленного угла.
Окружность и эллипс Метод Ellipse вычерчивает эллипс или окружность, в зависимости от значений параметров. Инструкция вызова метода в общем виде выглядит следующим образом: Объект. Canvas. Ellipse(x 1, y 1, х2, у2); где: объект — имя объекта (компонента), на поверхности которого выполняется вычерчивание; x 1, y 1, х2, у2 — координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность
Дуга Вычерчивание дуги выполняет метод Arc: Объект. Canvas. Arc(x 1, y 1, х2, у2, х3, у3, х4, у4), где: x 1, y 1, х2, у2 — параметры, определяющие эллипс (окружность), частью которого является вычерчиваемая дуга; х3, у3 — параметры, определяющие начальную точку дуги; х4, у4 — параметры, определяющие конечную точку дуги. Начальная (конечная) точка — это точка пересечения границы эллипса и прямой, проведенной из центра эллипса в точку с координатами (х3, у3) и (х4, у4). Дуга вычерчивается против часовой стрелки от начальной точки к конечной
Сектор Pie вычерчивает сектор эллипса или круга. Метод Объект. Canvas. Pie(x 1, y 1, x 2, y 2, х3, у3, х4, у4) где: x 1, y 1, х2, у2 — параметры, определяющие эллипс (окружность), частью которого является сектор; х3, у3, х4, у4 — параметры, определяющие координаты конечных точек прямых, являющихся границами сектора. Начальные точки прямых совпадают с центром эллипса (окружности). Сектор вырезается против часовой стрелки от прямой, заданной точкой с координатами (х3, у3), к прямой, заданной точкой с координатами (х4, у4)

