Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Карандаш и кисть

Читайте также:
  1. Важное примечание: бумага, карандаши, угольники и линейка должны быть обязательно на каждом занятии! А без чертежной доски и рейсшины обойтись будет очень трудно!
  2. Оборудование: карандаш, бумага.
  3. Обратно к карандашу

Методы, обеспечивающие вычерчивание на поверхности канвы графических примитивов используют карандаш и кисть. Первый предназначен для вычерчивания линий, вторая – для заливки областей, ограниченных линиями.

Карандашу соответствует свойство Pen – перо класса TPen. Это объект, в свою очередь имеющий ряд свойств. Одно из них - уже известное свойство Color - цвет, которым наносится рисунок. Второе свойство - Width (ширина линии), которое задается в пикселях и по умолчанию равно 1 пикселю. Третье свойство Style определяет вид линии. В таблице 2 приведены именованные константы, которые можно использовать в качестве значения свойства Style.

 

Таблица 2

Константа Стиль линии
psSolid Сплошная линия
psDash Пунктирная линия, длинные штрихи
psDot Пунктирная линия, короткие штрихи
psDashDot Пунктирная линия, чередование длинного и короткого штрихов
psDashDotDot Пунктирная линия, чередование одного длинного и двух коротких штрихов
psClear Линия не отображается (когда не нужно изображать границу области)

 

Примечание. Все пунктирные линии имеют толщину равную 1 пикселю.

 

По умолчанию линия вычерчивается цветом, определяемым значением свойства Pen.Color.

 

У канвы имеется свойство PenPos класса TРoint (предопределенный тип TРoint представляет собой запись, поля х и y которой содержат координаты точки). Это свойство определяет в координатах канвы текущую позицию пера. Перемещение пера без прорисовки линии, т.е. изменение PenPos, производится методом канвы MoveTo (x, y). Точка с координатами (x, y) становится текущей и от нее методом LineTo (x, y) можно провести линию в точку с другими координатами (x, y). При этом PenPos определяет уже конечную точку линии, и новый вызов LineTo будет проводить линию из этой новой текущей точки.

Кисти соответствует свойство канвы Brush – кисть класса TBrush. Оно определяет фон и цвет заполнения замкнутых фигур. Brush - это объект, имеющий в свою очередь ряд свойств. Свойство Color определяет цвет заполнения фигуры, а свойство Style - шаблон (штриховку). В таблице 3 приведены именованные константы, которые можно использовать в качестве значения свойства Style:

Таблица 3

Константа Стиль заполнения области
bsSolid Сплошная заливка
bsClear Область не закрашивается
bsHorisontal Горизонтальная штриховка
bsVertical Вертикальная штриховка
bsFDiagonal Диагональная штриховка с наклоном линий вперед
bsBDiagonal Диагональная штриховка с наклоном линий назад
bsCross Горизонтально-вертикальная штриховка, в клетку
bsDiagCross Диагональная штриховка, в клетку

 

В таблице 4 приведены некоторые методы канвы для рисования фигур:

Таблица 4

Метод Описание
Arc (x1, y1, x2, y2, x3, y3, x4, y4: integer ) Рисует дугу окружности или эллипса. Точки (x1, y1) и (x2, y2) определяют прямоугольник, описывающий эллипс. Начальная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x3, y3). Конечная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x4, y4). Дуга рисуется против часовой стрелки от начальной до конечной точки.
Chord (x1, y1, x2, y2, x3, y3, x4, y4: integer) Рисует дугу окружности или эллипса, замкнутую хордой. Точки (x1, y1) и (x2, y2) определяют прямоугольник, описывающий эллипс. Начальная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x3, y3). Конечная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x4, y4). Дуга рисуется против часовой стрелки от начальной до конечной точки. Хорда соединяет точки (x3, y3) и (x4, y4).
Ellipse (x1, y1, x2, y2: integer) Рисует заполненную окружность или эллипс. Точки(x1, y1) и (x2, y2) определяют прямоугольник, описывающий эллипс.
Pie (x1, y1, x2, y2, x3, y3, x4, y4: integer) Рисует замкнутую фигуру - сектор окружности или эллипса. Точки (x1, y1) и (x2, y2) определяют прямоугольник, описывающий эллипс. Начальная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x3, y3). Конечная точка дуги определяется пересечением эллипса с прямой, проходящей через его центр и точку (x4, y4). Дуга рисуется против часовой стрелки от начальной до конечной точки. Рисуются прямые, ограничивающие сектор и проходящие через центр эллипса и точки (x3, y3) и (x4, y4).
Polygon (Points: array of TPoint) Рисует замкнутый многоугольник по координатам угловых точек, заданных массивом Points. Первая из указанных точек соединяется с последней.
PolyLine (Points: array of TPoint) Рисует кусочно-линейную незамкнутую кривую по координатам точек, заданных массивом Points. При этом текущая позиция PenPos пера не изменяется.
Rectangle (x1, y1, x2, y2: integer) Рисует прямоугольник, верхний левый угол которого имеет координаты (x1, y1), а нижний правый - (x2, y2).
RoundRect (x1, y1, x2, y2, x3, y3: integer) Рисует прямоугольник со скругленными углами, верхний левый угол которого имеет координаты (x1, y1), а нижний правый - (x2, y2). Углы скругляются с помощью эллипсов с шириной x3 и высотой y3.  

 

Примечание. Д ля изображения закрашенной фигуры перед использованием соответствующего метода (Chord, Ellipse, Pie, Polygon и др.) необходимо заказать цвет и стиль её закраски (Brush.Color и Brush.Style).

Для заполнения замкнутых областей произвольной формы можно использовать метод

FloodFill (x, y: integer; Color: TColor; FillStyle: TFillStyle). Тип TFillStyle определен следующим образом:

type TFillStyle = (fsSurface, fsBorder);

Точка с координатами (x, y) является произвольной внутренней точкой заполняемой области. Граница этой области определяется сочетанием параметров Color и FillStyle. Параметр Color указывает цвет, который используется при определении границы заполняемой области, а параметр FillStyle определяет, как именно по этому цвету определяется граница. Если FillStyle = fsSurface, то заполняется область, окрашенная цветом Color, а на других цветах метод останавливается. Если FillStyle = Border, то наоборот, заполняется область, окрашенная любыми цветами, не равными Color, а на цвете Color метод останавливается.

 

Для вывода текста на графическую поверхность используется метод TextOut (x, y: integer; text: string). Для определения параметров выводимого текста используется свойство канвы Font – шрифт класса TFont, которое в свою очередь является объектом и имеет ряд свойств.

В таблице 5 приведены свойства объекта Font.

Таблица 5

Свойство Назначение
Name Определяет вид (название) шрифта (Arial, Times New Roman, Courier, и т.д.)
Size Pазмер шрифта в пунктах (points). Один пункт равен 1/72 дюйма.
Style Стиль начертания символов задается с помощью предопределенных констант: fsItalic (курсив), fsBold (полужирный), fsUnderLine (подчеркнутый), fsStrikeOut(перечеркнутый). Это свойство является множеством, что позволяет комбинировать нужные стили
Color Цвет символов
Height Размер шрифта в пикселях

 

Текст выводится на графическую поверхность в позицию с координатами (x, y) в соответствии с текущими установками шрифта Font. Фон надписи определяется установками текущей кисти Brush (если нет необходимости в фоне для надписи, то перед выводом текста свойству Brush.Style нужно присвоить значение bsClear или задать свойству Brush.Color цвет, совпадающий с цветом поверхности, на которую выводится текст – например, clBtnFace). По завершении метода текущей позицией PenPos пера Pen становится конец выведенного текста.

Перечисленные свойства и методы представляют не все графические возможности Delphi. Однако, они обеспечивают около 80% потребностей, обычно возникающих при работе с графикой.

 




Дата добавления: 2015-04-20; просмотров: 20 | Поможем написать вашу работу | Нарушение авторских прав

1 | 2 | <== 3 ==> |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав