Опубликован: 31.08.2006 | Уровень: специалист | Доступ: платный
Лекция 17:

Добавление графики и эффектов анимации

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >
Аннотация: В этой лекции вы узнаете, как добавлять в ваши программы интересные "фишки". Вы узнаете, как создавать красивые изображения, с помощью элементов управления PictureBox и Timer создавать простые эффекты анимации

В этой лекции вы узнаете, как:

  • использовать пространство имен System.Drawing для добавления графики в формы;
  • создавать эффекты анимации;
  • расширять или сжимать объекты ваших форм во время выполнения программы;
  • изменять прозрачность формы.

Для многих разработчиков добавление в приложение графики и специальных эффектов является наиболее захватывающей и притягательной частью программирования. К счастью, создание впечатляющих и полезных графических эффектов с помощью Microsoft Visual Basic .NET очень просто и эффективно. В этой лекции вы узнаете, как добавлять в ваши программы интересные "фишки". Вы узнаете, как создавать красивые изображения, с помощью элементов управления PictureBox и Timer создавать простые эффекты анимации, и расширять или сжимать с помощью свойств Height и Width элементы управления во время выполнения программы. В итоге у вас будет достаточно знаний, чтобы создать полностью завершенный интерфейс пользователя.

Что нового в Visual Basic .NET?

  • В Visual Basic 6 для создания простых линий, прямоугольников и окружностей использовались элементы управления Line и Shape. Область элементов Visual Basic .NET больше не предоставляет элементов управления для рисования. Вместо этого вы должны непосредственно использовать графические службы GDI+, доступные через пространство имен System.Drawing.
  • Ключевые слова Visual Basic 6 Circle, Line и PSet заменены двумя методами: DrawEllipse и DrawLine и структурой Point, принадлежащими классу System.Drawing.Graphics.
  • Координатная система Visual Basic по умолчанию теперь использует пиксели, а не твипы.
  • В Visual Basic 6 многие элементы управления могли быть перемещены или анимированы в форме с помощью быстрого вызова метода элемента управления Move. Элементы управления Visual Basic .NET не имеют метода Move, но они могут быть быстро перемещены, если вы обновите одно из свойств элемента управления Left, Top или Location, или если вы используете метод SetBounds.
  • Элементы управления Visual Basic .NET продолжают поддерживать эффекты drag-and-drop, но обрабатывают их иначе. Хотя Visual Basic .NET и продолжает поддерживать событие DragDrop, свойства DragIcon и DragMode больше не доступны.
  • Microsoft Visual Studio .NET может работать с множеством форматов изображений. Пространство имен System.Drawing.Imaging содержит функции для работы со следующими форматами изображений: BMP, EMF, EXIF, GIF, ICON, JPEG, MemoryBMP, PNG, TIFF и WMF.

Добавление графики с помощью пространства имен System.Drawing

В лекциях "Ваша первая программа" , "Работа с элементами управления из области элементов" и "Циклы и таймеры" вы экспериментировали с добавлением в форму растровых изображений и значков с помощью объектов области вывода изображений. Теперь вы узнаете, как с помощью функций GDI+ из пространства имен System.Drawing, являющегося новым API (application programming interface - интерфейсом прикладного программирования ) для создания графики, в ваших формах создавать уникальные изображения. Создаваемые вами изображения могут добавить в ваши формы цвет, геометрические фигуры и текстуры, при этом использовать их очень легко.

Использование координатной системы формы

Первое, что требуется изучить при работе с графикой - это координатную систему формы. В Visual Basic каждая форма имеет свою систему координат. Начальная точка системы координат находится в верхнем левом углу формы. Система координат по умолчанию состоит из строк и столбцов аппаратно-независимых графических элементов -пикселей. Они представляют собой наименьшие точки, которые вы можете использовать в форме Visual Basic.

В системе координат Visual Basic строки пикселей расположены вдоль оси x (горизонтальная ось), а столбцы пикселей располагаются вдоль оси y (вертикальная ось). Вы можете определить положение в системе координат, указав пересечение строки и столбца с помощью записи (x, y). Координаты (x, y) верхнего левого угла формы всегда равны (0, 0). На следующей иллюстрации показано, как описывается в системе координат Visual Basic расположение в форме объекта области вывода изображений.


Visual Basic общается с драйвером видеокарты вашего компьютера и с его помощью определяет, как в форме отображаются пиксели и различные фигуры (линии, прямоугольники, кривые и окружности). Для отображения конкретных фигур, таких, как линия, показанная на следующей иллюстрации, используется много пикселей. Логика, которая используется для отображения этого типа графики - не ваша забота, она выполняется графическим адаптером и процедурами рисования из графической библиотеки GDI+. На следующей иллюстрации показано увеличенное изображение искажений или ломаных краев, которые вы иногда можете видеть в приложениях Visual Basic и Windows.


Класс System.Drawing.Graphics

Пространство имен System.Drawing включает многочисленные классы для создания графики. В этом разделе вы узнаете о классе System.Drawing.Graphics, который предоставляет методы и свойства для рисования геометрических фигур. О других классах вы можете узнать в справочной системе Visual Basic .NET.

Независимо от того, создаете ли вы простую фигуру или сложный чертеж, важно иметь возможность рисовать в ваших программах большую часть стандартных геометрических фигур. Следующая таблица содержит перечень базовых фигур и методов класса System.Drawing.Graphics.

Фигура Метод Описание
Линия DrawLine Простая линия, построенная по двум точкам
Прямоугольник DrawRectangle Прямоугольник или квадрат с четырьмя точками
Дуга DrawArc Изогнутая линия с двумя точками (часть эллипса)
Окружность/эллипс DrawEllipse Округлая фигура, вписанная в прямоугольник.
Полигон, многоугольник DrawPolygon Сложная фигура с произвольным числом вершин и сторон (хранящихся в массиве)
Кривая DrawCurve Изогнутая линия, проходящая через произвольное количество точек (хранящихся в массиве); также называется фундаментальным сплайном
Кривые (сплайны) Безье DrawBezier Кривая, построенная с помощью четырех точек (точки номер 2 и 3 являются "управляющими" точками)

В дополнение к приведенным здесь методам, которые создают пустые или "незаполненные" фигуры, существует несколько методов, которые рисуют фигуры, автоматически заполняемые каким-либо цветом. Эти методы обычно имеют префикс "Fill" (заполнить) и включают FillRectangle, FillEllipse и FillPolygon. Когда вы используете графический метод класса System.Drawing.Graphics, вы должны создать в вашем коде объект Graphics, представляющий этот класс, и либо объект Pen (перо), либо Brush (кисть), указывающий атрибуты фигуры, которую вы хотите нарисовать, такие, как толщина линии и цвет заливки. Объект Pen передается как один из аргументов в методы, которые не заполняют фигуру цветом. Объект Brush передается как аргумент, когда необходимо выполнить цветную заливку. Например, следующий вызов метода DrawLine для рисования линии, которая начинается с пикселя (20, 30) и заканчивается пикселем (100, 80), использует объект Pen и четыре целых значения. Объект Graphics объявляется с использованием имени GraphicsFun, а объект Pen объявляется с использованием имени PenColor.

Dim GraphicsFun As System.Drawing.Graphics
Dim PenColor As New System.Drawing.Pen(System.Drawing.Color.Red)
GraphicsFun = Me.CreateGraphics
GraphicsFun.DrawLine(PenColor, 20, 30, 100, 80)

Синтаксис метода DrawLine важен, но обратите также внимание на предшествующие ему три строчки, которые требуются для использования класса System.Drawing.Graphics. Вы должны создать переменные для представления обоих объектов Graphics и Pen, и переменная Graphics должна быть создана с помощью метода CreateGraphics, принадлежащего форме Windows. Заметьте, что пространство имен System.Drawing.Graphics включается в ваш проект автоматически - вам не требуется включать в ваш код оператор Imports для объявления требуемого класса.

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >
Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Виталий Григорьев
Виталий Григорьев
Россия, москва, мгсги, 2011
Надежда Серекпаева
Надежда Серекпаева
Россия, Тюмень, Тюменский индустриальный институт, 1992