| |
| | | | |
Антон Григорьев дата публикации 23-10-1999 00:00 Канва и нестандартные приемы рисования
Пример №1 Проект Lines
"Резиновая" линия.
Этот пример показывает, как можно сделать "резиновую" линию - то есть такую,
которая тянется за курсором, пока пользователь удерживает кнопку мыши. Такие
линии применяются во всех современных графических редакторах. Второе, что делает
этот пример - рисует особые линии, которые невозможно нарисовать с помощью
стандартных перьев. В этом примере пять типов линий:
- 1) Линия, состоящая из чередующихся отрезков по пять точек красного, зелёного и
синего цветов.
- 2) Каждая точка линии имеет свой случайным образом выбранный цвет.
- 3) Линия, состоящая из отдельных крестиков.
- 4) Линия с переменной толщиной.
- 5) Линия в виде "ёлочки".
Метод рисования таких линий очень универсален. При этом не надо программировать
алгоритмы построения линий (например, алгоритм Брезенхэма), всё делает Win API.
Создание новых типов линий очень просто и ограничивается, в основном, только
фантазией программиста. Но, к сожалению, описанный метод пригоден только для
прямых линий. Эллипс или дугу так не нарисуешь.
Пример №2 Проект ArcText
Этот пример демонстрирует, как вывести надпись с непрямой базовой линией.
Идея заключается в том, что для каждой буквы рассчитывается свой угол поворота,
зависящий от её положения. В данном случае базовая линия представляет собой дугу
окружности с заданным радиусом. Начальная точка этой дуги задаётся углом её
радиус-вектора с осью Х, конечная определяется длиной надписи. Комментировать в этом
примере особенно нечего, достаточно справки по CreateFontIndirect и знания
элементарной геометрии.
К материалу прилагаются файлы:
[TComponent] [GDI, рисование на канве]
Обсуждение материала [ 02-06-2005 08:55 ] 2 сообщения |
|
| | | | |
| |
Время на сайте: GMT минус 5 часов
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.
©
При использовании любых материалов «Королевства Delphi»
необходимо указывать источник информации.
Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются
собственностью их производителей.