* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Рисование сложных фигур
8 февраля 2009

Время от времени приходится рисовать фигуры более сложные, чем прямоугольни-
ки, эллипсы и многоугольники. У объектов простых фигур есть встроенные мето-
ды, облегчающие их рисование, тогда как рисование сложных фигур требует допол-
нительной подготовки. Ключевым для визуализации сложных фигур является объ-
ект Graphics Path из пространства имен System.Drawing. Drawing2D. Он описывает про-
извольный замкнутый контур или набор фигур. Так, можно создать объект Graphics-
Path, образованный эллипсами, прямоугольниками и другими простыми объекта-
ми, представляющий фигуру неправильной формы.
Создание объекта GraphicsPath
Объект GraphicsPath создают вызовом одной из версий его конструктора, Простей-
шая версия конструктора объекта GraphicsPath не принимает параметров:
Visual Basic .NET
Dim rnyPath As New Drawing2D.GraphicsPath()
Visual C#
GraphicsPath myPath = new Drawing2D.GraphicsPath();
Кроме того, объект GraphicsPath допустимо задавать в виде массива точек и зна-
чений типа Byte. Точки определяют координаты контура, а значения Byte — тип
линий, которыми эти точки соединяются. Преобразовав подобный массив из пере-
числимого типа System.Drawing.Drawing2D.PathPointType, вы сможете написать бо-
лее понятный и удобный в сопровождении код. Вот пример кода, создающего очень
простой объект GraphicsPath:
Visual Basic .NET
1 Этот пример предполагает наличие оператора Imports System.Drawing.Drawing2D
Dim friyPatn As New GraphicsPath{New Pointf) {New Point(1, 1),
New Point(32, 54), New Point(33, 5)}, New Byte() _
{CType(PathPointType.Start, Byte), CType(PathPointType.Line, _
Byte), CType(PathPointType.8ezier. Byte)})
Visual C#
// Этот пример предполагает наличие оператора using System. Drawing. Drawing2D
GraphicsPath myPath = new GraphicsPath(new Point[] {new Point(1, 1),
new Point(32, 54), new Point(33, 5)}, new byte[] {
(byte)PathPointType. Start, ( byte) Pat hPointType. Line,
(byte)PathPointType.Bezier});
К созданному объекту GraphicsPath можно добавлять фигуры. Фигура — это зам-
кнутый контур, он может быть простым (как эллипс или прямоугольник) или слож-
ным (как произвольные кривые и контуры символов).
Методы класса GraphicsPath позволяют добавлять к контуру новые фигуры (таб-
лица 7-6).
Таблица 7-6. Методы ,для добавления фигур к объекту GraphicsPath
Имя Что добавляет
AddClosedCurve Замкнутую кривую, заданную массивом точек
AddElUpse Эллипс
AddPath Заданный экземпляр объекта GraphicsPath
AddPie Окружность
AddPolygon Многоугольник, заданный массивом точек
AddRedangle Прямоугольник
AddRecmngles Массив прямоугольников
AddString Графическое представление строки символов с заданным
начертанием
Разрешается не только напрямую добавлять фигуры к объекту GraphicsPath, но и
составлять контуры, добавляя прямые, кривые и дуги. Чтобы начать новый контур,
вызовите метод GraphicsPath. StartFigure. Далее, используя методы класса Graphics-
Path, можно добавлять к контуру новые фигуры. Закончив конструирование фигу-
ры, вызовите метод GraphicsPath. CIoseFigure, чтобы замкнуть ее контур — последняя
точка фигуры автоматически соединяется с первой. Вот пример:
Visual Basic .NET
Dim myPath As New Drawing2D. GraphicsPath()
myPath. StartFiguref)
Здесь должен быть код, добавляющий элементы контура.
[TiyPath.CloseFigure(')
Visual C#
GraphicsPath myPath = new Drawing2D.GraphicsPath();
myPath. StartFigure();
Здесь должен быть код, добавляющий элементы контура.
myPath. CloseFigureO;
Если вызвать метод StartFigure два раза подряд, не вызвав между ними метод Close-
Figure, то фигура, созданная первым вызовом StartFigure, останется незамкнутой.
Примечание При отображении в период выполнения любая незамкнутая фигура ав-
томатически замыкается добавлением прямой, соединяющей первую и последнюю
точку контура этой фигуры.
В таблице 7-7 описаны методы объекта GraphicsPath, позволяющие добавлять
новые элементы контура фигуры.
Table 7-7. Методы для добавления элементов контура
Имя Что добавляет
AddArc Дугу
AddBezier Кривую Безье
AddBeziers Набор кривых Безье
AddCurve Кривую, заданную массивом точек
AddLine Прямую
AddLines Набор соединенных прямых
>• Как нарисовать сложную фигуру
1. Получите ссылку на объект Graphics, связанный с областью рисования, в кото-
рой нужно нарисовать фигуру.
2. Создайте новый экземпляр класса GraphicsPath.
3. Добавьте к нему фигуры при помощи методов класса GraphicsPath.
4. Вызовите метод Graphics. DrawPath, чтобы нарисовать контур, или Graphics. Fill-
Path, чтобы нарисовать закрашенную фигуру, заданную объектом GraphicsPath.
5. Освободите объект Graphics.

Теги: .NET

Статьи по теме:

Создание составных элементов управления
Создание обработчиков событий элементов управления
Оповещение пользователя об ошибках ввода
Извлечение данных с помощью объектов DataAdapter
Абстрактные классы и члены
Blend PDF with Silverlight
Применение трассировочных переключателей
Создание конфигурационного файла
Doxygen – версия 1.5.7
Сокрытие членов базового класса в Visual C#
Отображение текста
Извлечение и обновление данных с помощью объектов DataAdapter и DataSet
Общеязыковая исполняющая среда
Применение отладочных инструментов
Свойства, доступные только для чтения или только для записи
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Рисование сложных фигур. Регион сайта: Москва и Санкт-Петербург