Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Рисование прямых, ломаных и кривых линий

Понятие холста

Формирование изображений программным способом

В любом визуальном компоненте Delphi, будь то форма или управляющий элемент, существует специальный объект, средствами которого выполняется рисование видимых частей компонента. Он называется холстом и оформлен в виде свойства Canvas. Объект Canvas имеет пять главных свойств:

Pen – объект для рисования линий и границ геометрических фигур;

Brush – объект для заполнения фигур;

Font – объект для вывода текста;

PenPos – объект для хранения текущей позиции рисования;

Pixels[X, Y: Integer] – массив для записи и считывания пикселов холста.

Структура объектов Pen и Brush вам знакома по одноименным свойствам компонента Shape, а структура объекта Font – по одноименному свойству формы.

Холст поддерживает такое понятие как текущая позиция рисования. Текущая позиция хранится в свойстве PenPos и используется при рисовании прямых (прямая рисуется от текущей позиции до заданной). Выражение PenPos.X возвращает горизонтальную позицию, а PenPos.Y – вертикальную.

Благодаря свойству Pixels холст интерпретируется как двумерная матрица пикселов. Элемент, стоящий на пересечении столбца X и строки Y матрицы Pixels, кодирует цвет пиксела. Координатная система объекта Canvas выбрана таким образом, что левый верхний пиксел изображения имеет координаты [ 0, 0 ], ось Х направлена вправо, а ось Y – вниз.

Шаг 1. Вывод графических примитивов выполняется с помощью методов объекта Canvas. Для их практического изучения вам понадобится новый проект.

Шаг 2. Активизируйте в Инспекторе Объектов страницу Events и отыщите на ней событие OnPaint. Сделайте двойной щелчок мыши в поле зрения. В результате откроется Редактор Кода с заготовкой обработчика события. В этом обработчике вы будете проверять работу изучаемых методов.

MoveTo(X, Y: Integer) – перемещает указатель текущей позиции в заданную точку.

LineTo(X, Y: Integer) – рисует прямую линию от текущей позиции рисования (PenPos.X, PenPos.Y) до заданной (X, Y) и перемещает указатель текущей позиции в точку (X, Y).

Polyline(Points: array of Tpoint) – рисует ломаную линию, соединяя точки массива Points.

Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer) – рисует дугу эллипса, вписанного в прямоугольник с координатами (X1, Y1) и (X2, Y2). Дуга определяется двумя радиусами эллипса, приходящимися через точки (X3, Y3) и (X4, Y4). Дуга рисуется против часовой стрелки от точки пересечения эллипса с первым радиусом до точки пересечения со вторым радиусом.

Сhord (X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer) – рисует хорду эллипса, вписанного в прямоугольник с координатами (X1,Y1) и (X2, Y2) Хорда лежит на прямой, проходящей через точки (X3, Y3) и (X4, Y4).

Шаг 3. С помощью метода Poleline можно легко нарисовать контур треугольника.

Procedure Tform1. FormPaint (Sender: Tobject);

<== предыдущая лекция | следующая лекция ==>
Графические возможности Delphi 7 | Рисование геометрических фигур
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 815; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.