- •1. Цель работы
- •2. Сведения из теории
- •2.2. Пространство имен System.Drawing. Служебные типы
- •2.3. Сеансы вывода графики. Класс Graphics
- •2.5. Графический вывод текста. Работа со шрифтами
- •2.6. Рисование графиков функций
- •3. Пример выполнения работы
- •3.1. Визуальное проектирование диалогового окна
- •3.2. Проектирование программного кода
- •4. Варианты заданий для самостоятельной работы
Лабораторная работа №4. Разработка графических приложений с использованием GDI+. Построение графиков функций
1. Цель работы
Изучить пространства имен и классы интерфейса графических устройств .NET, основные свойства и методы этих классов, применяемые при сеансах вывода графики. Научиться использовать классы GDI+ для рисования графиков функций.
2. Сведения из теории
2.1. Пространства имен GDI+
Аббревиатура GDI расшифровывается как Graphics Device Interface (интерфейс графического устройства). Этим термином обозначается подсистема Windows, предназначенная для вывода графических изображений (а Windows вся основана на использовании графики) на экран и на принтер. GDI+ – это новый набор программных интерфейсов, используемых в .NET.
В .NET предусмотрено множество пространств имен, предназначенных для вывода двумерных графических изображений. Помимо ожидаемых стандартных типов (например, для работы с цветом, шрифтами, пером, кистью, изображениями) в этих пространствах имен предусмотрены типы для выполнения достаточно изощренных операций, таких как геометрические преобразования, сглаживание неровностей, подготовка палитры, поддержка вывода на принтер и многие другие. Перечень наиболее важных пространств имен для работы с графическими изображениями представлен в таблице.
Пространство имен |
Описание |
System.Drawing |
Важнейшее пространство имен GDI+, содержит основные типы для вывода графики (работы со шрифтами, перьями, кистью и т.п.), а также очень важный тип Graphics |
System.Drawing.Drawing2D |
Содержит типы для выполнения более сложных операций с двумерной графикой (градиентная заливка, геометрические преобразования и т.п.) |
System.Drawing.Imaging |
Здесь определены типы, которые позволяют напрямую работать с графическими изображениями (менять палитру, работать с метафайлами и т.п.) |
System.Drawing.Printing |
Определяет типы для вывода графики на принтер и взаимодействия с принтером |
System.Drawing.Text |
Позволяет работать с системными шрифтами |
2.2. Пространство имен System.Drawing. Служебные типы
Большинство типов для работы с графикой находятся в пространстве имен System.Drawing. Некоторые наиболее важные типы этого пространства имен представлены в таблице:
Тип |
Описание |
Bitmap |
Содержит файл изображения и определяет набор методов для выполнения операций с этим изображением |
Brush Brushes SolidBrush SystemBrushes TextureBrush |
Объекты Brush (кисть) используются для заполнения пространства внутри геометрических фигур (прямоугольников, эллипсов, многоугольников). Тип Brush – абстрактный базовый класс, остальные – производные от него |
BufferedGraphics |
Новый тип .NET 2.0, обеспечивающий графический буфер для двойной буферизации, которая используется для уменьшения или полного исключения влияния эффекта мелькания, возникающего при перерисовке изображений |
Color SystemColors |
Определяют ряд статических свойств, доступных для чтения и используемых для получения нужного цвета при использовании различных перьев и кистей |
Font FontFamily |
Тип Font содержит характеристики шрифта (имя, начертание, размер и т.д.). FontFamily представляет набор шрифтов, которые относятся к одному семейству, но имеют небольшие отличия |
Graphics |
Представляет реальную поверхность для изображения, а также предлагает ряд методов для вывода текста, изображений и геометрических фигур |
Icon SystemIcons |
Представляют пользовательские и системные иконки |
Image ImageAnimator |
Image – это абстрактный базовый класс для поддержки возможностей типов Bitmap, Icon и Cursor. Тип ImageAnimator обеспечивает показ изображений через указанные интервалы времени |
Pen Pens SystemPens |
Pen – это класс, используемый для построения линий и кривых. Тип Pen определяет ряд статических свойств, позволяющий получить перо с заданными свойствами (например, с заданным цветом) |
Point PointF |
Эти структуры обеспечивают работу с координатами точки. Point работает со значениями типа int, а PointF – с типом float |
Rectangle |
Структуры, предназначенные для работы с прямоугольными областями (int/float) |
RectangleF | |
Size |
Эти структуры обеспечивают работу с размерами: высотой и шириной (int/float) |
SizeF | |
StringFormat |
Используется для форматирования текста (выравнивание, междустрочный интервал и т.д.) |
Region |
Определяет область, занятую геометрической фигурой |
Многие методы требуют указания положения или области для вывода графического объекта. Другим часто используемым методам необходимо передавать размеры (высоту или ширину) прямоугольной области, в которую будет производиться вывод, или, если область вывода будет не прямоугольной, задать эту область другим образом.
Для передачи методам подобной информации в пространстве имен System.Drawing предусмотрены служебные типы Point, Rectangle, Region и Size. Основные свойства данных типов приведены в таблице:
Структура |
Свойство |
Назначение свойства |
Point PointF |
X |
Координата x |
Y |
Координата y | |
Size SizeF |
Width |
Ширина |
Height |
Высота | |
Rectangle RectangleF |
Left |
Координата x левой грани |
Right |
Координата x правой грани | |
Top |
Координата y верхней грани | |
Bottom |
Координата y нижней грани | |
Width |
Ширина прямоугольника | |
Height |
Высота прямоугольника | |
X |
Аналогично Left | |
Y |
Аналогично Top | |
Location |
Левый верхний угол | |
Size |
Размер прямоугольника |