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



Объект Graphics
8 февраля 2009

Ключевую роль в формировании и отображении графики играет класс Graphics из
пространства имен System.Drawing. Объект Graphics представляет область для рисо-
вания, расположенную на поверхности графического элемента, — формы, элемен-
та управления или объекта Image. Co всеми этими сущностями связан объект
Graphics, который позволяет рисовать на их поверхности и отображает все графи-
ческие элементы, размещенные на ней.
Поскольку объект Graphics должен быть связан с графическим элементом, его
нельзя создать, вызвав конструктор этого класса напрямую. Вместо этого следует
вызвать конструктор объекта Graphics из графического элемента. Любой класс-по-
томок Control (включая Form) поддерживает метод CrealeGraphics. Последний воз-
вращает ссылку на объект Graphics, связанный с данным элементом управления.
Следующий пример демонстрирует получение доступа к объекту Graphics формы
ту Form:
Visual Basic .NET
Dim my/Graphics as System. Drawing. Graphics
myGraphics = myForm.CreateGraphicsO
Visual C#
System.Drawing.Graphics myGraphics;
myGraphics = myForm.CreateGraphicsO;
В результате исполнения этого кода создается объект Graphics, которым можно
пользоваться для отображения графики на поверхности формы.
При работе с изображениями метод Graphics. From Image позволяет создать объект
Graphics, связанный с заданным объектом /mage. Это статический метод, поэтому
для его вызова ссылка на объект Graphics не требуется. Объектом Image считается
любой объект-потомок класса Image, например Bitmap. Вот как создать из файла
объект Bitmap и получить связанный с ним объект Graphics:
Visual Basic .NET
Dim mylmage As New Bitmap("C:\myImage.bmp")
Dim myGraphics As System.Drawing.Graphics
myGraphics = Graphics. Fromlmage(rnylmage)
Visual C#
Bitmap mylmage = new Bitmap("C:\\myImage. bmp"};
System.Drawing.Graphics myGraphics;
myGraphics = Graphics. Fromlmage(rnylmage);
Заметьте, что даже невидимый объект Image позволяет создать объект Graphics и
манипулировать им,
Координаты
Формирование изображения происходит в области, заданной границами элемента
управления. Здесь действует двухмерная система координат, каждая точка которой
задана парой значений — X и Y. По умолчанию начальная точка системы коорди-
нат (0,0) каждого элемента находится в его верхнем левом углу, а координаты зада-
ются в пикселах. Пространство имен System. Drawing содержит ряд структур (табли-
ца 7-2), описывающих точку или область в данной системе координат.
Таблица 7-2. Структуры, описывающие координаты точек и фигур
Имя Описание
Point Представляет точку с координатами X и Y, заданными значениями
типа Integer (Int)
PointF Представляет точку с координатами Хн Y, заданными значениями
типа Single (float)
Size Представляет прямоугольную область, размеры которой заданы парой
значений Height и Width типа Integer
SizeF Предстаатяет прямоугольную область, размеры которой заданы парой
значений Height и Width типа Single (float)
Rectangle Представляет прямоугольную область, границы которой заданы
значениями Top, Bottom, Left и Right типа Integer (Int)
RectangleF Представляет прямоугольную область, границы которой заданы
значениями Top, Bottom, Left и Right типа Single (float)
Как видно из таблицы 7-2, существует два типа подобных структур: те, что при-
нимают целочисленные значения, и те, что используют числа с плавающей точкой.
Структуры Point, Size и Rectangle первого типа разрешается явно преобразовывать в
соответствующие структуры второго типа. Чтобы выполн ить такое преобразование,
следует явно преобразовать каждую координату из типа с плавающей точкой в це-
лочисленный тип, например:
Visual Basic .NET
Dim myPoint As Point
Dim myPointF As New PointF(13.5,33.21)
nyPoint = New Point{CInt(myPointF.X), Clnt(myPointF.Y))
Visual C#
Point myPoirit;
PointF myPointF = new PointF(13.5F,33.21F);
myPoint = new Point<(int)myPointF.X, (int)myPointF.Y);
Обратите внимание на важную особенность структур Size и Rectangle: обе они
определяют прямоугольную часть клиентской области, однако Size определяет лишь
размер, но не положение прямоугольника, тогда как структура Rectangle задает ре-
альное положение прямоугольника в клиентской области. Для создания Rectangle
требуются две структуры: Size и Point, указывающие положение верхнего левого угла
прямоугольника:
Visual Basic .NET
Dim mydrigin As New Point(10, 10)
Dim mySize As New Size(20, 20}
Создать прямоугольник размером 20 на 20 пикселов, верхний
левый угол которого расположен в точке с координатами (10,10).
Dim inyRectangle As New Rectangle(myOrigin, mySize)
Visual C#
Point myOrigin = new Point(10, 10);
Size mySize = new Size(20r 20);
// Создать прямоугольник размером 20 на 20 пикселов, верхний
// левый угол которого расположен в точке с координатами (10,10),
Rectangle myRectangle - new Rectangle(myOrigin, mySize);
Рисование фигур
Объект Graphics инкапсулирует множество методов для рисования на экране про-
стых и сложных фигур. Существует две основных разновидности этих методов. К
первой относятся методы, имена которых начинается с «Draw» (таблица 7-3). Эти
методы используются для рисования прямых, дуг и контуров фигур. Другая разно-
видность методов, имена которых начинается с «Fill» (таблица 7-4), служит для ри-
сования залитых фигур — прямоугольников, эллипсов и многоугольников.
Эти методы принимают различные комбинации параметров, определяющих раз-
меры и положение отображаемых фигур. Кроме того, им требуется объект, форми-
рующий изображение фигуры, Для контурных фигур это Реп, а для закрашенных —
Brush.
Таблица 7-3. Методы для рисования контурных фигур
Имя Описание
DrawArc Рисует дугу, представляющую часть эллипса
DrawBezier Рисует кривую Безье
DrawBeziers Рисует несколько кривых Безье
DrawClosedCurve Проводит через несколько точек замкнутую кривую
DrawCurve Проводит через несколько точек незамкнутую кривую
DrawEliipse Рисует эллипс, вписанный в прямоугольник
DrawLine Соединяет две точки линией
DrawLines Соединяет линиями несколько точек
DrawPafh Рисует заданный объект GraphicsPath, представляющий сложную
фигуру
DrawPie Рисует сектор окружности
DrawPolygon Рисует многоугольник по заданному числу точек
DrawRectangle Рисует прямоугольник
Draw Rectangles Рисует несколько прямоугольников
Таблица 7-4. Методы для рисования закрашенных фигур
Имя Описание
FHICIosedCurve Рисует замкнутую кривую, заданную массивом точек, и закрашивает
полученную фигуру
Fill Ellipse Рисует закрашенный эллипс
Fill Path Рисует и закрашивает объект Graphics Path, представляющий сложную
фигуру
Fil/Pie Рисует закрашенный сектор
ПИ Polygon Рисует многоугольник, заданный массивом точек, и закрашивает его
HHRectangte Рисует закрашенный прямоугольник
Fill Rectangles Рисует несколько закрашенных прямоугольников
Fill Region Рисует и закрашивает объект Region, обычно представляющий
сложную фигуру

Теги: .NET

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

Мемоизация (memoization)
Структуры CTS
Защита приложений
Проверка разрешений, запрашиваемых установленной сборкой
Применение элемента управления PrintPreviewControl
Подключение к БД
Распространение приложений через Интернет
Boost – версия 1.36.0
Применение встроенной функциональности типов данных
Лямбда-выражения
Создание DataAdapter с помощью окна Server Explorer
Свойства, доступные только для чтения или только для записи
Локализация формы
Реализация обработчиков событий
Классы и структуры
| .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 | Объект Graphics. Регион сайта: Москва и Санкт-Петербург