1.6. Графические возможности объективно-ориентированного языка программирования
На форме и элементах управления можно рисовать линии, прямоугольники, окружности и другие графические фигуры. Для рисования необходимо определить объекты Graphics (Область рисования), Реп (Перо) и Brush (Кисть).
Область рисования. Объект Graphics (Область рисования) позволяет выбрать в качестве области рисования определенный элемент управления и обладает методами рисования графических фигур. Сначала необходимо в разделе объявления переменных определить имя объекта, например:
Dim Graphl As Graphics
Затем в программном коде обработчика события необходимо указать определенный элемент управления в качестве области рисования. Обычно в качестве области рисования выбирается размещенное на форме графическое поле (например, PictureBoxl):
Graphl = Me.PictureBoxl.CreateGraphics()
Имя Me в программном коде используется вместо имени формы (например, Forml), если производятся операции над самой формой.
Перо. Объект Реп (Перо) определяет цвет и ширину линии рисования. Сначала необходимо в разделе объявления переменных определить имя объекта (например, Penl), установить цвет (например, красный Color . Red) и ширину линии в пикселях (например, 3):
Dim Pen1 As New Pen(Color.Red, 3)
Затем в программном коде обработчика события можно установить новые значения цвета и ширины линии, например:
Pen1.Color = Color.Green
Pen1.Width = 15
Кисть. Объект Brush (Кисть) определяет цвет и стиль закрашивания прямоугольников, окружностей и других замкнутых фигур. Сначала необходимо в разделе объявления переменных определить имя объекта (например, Brushl) и установить тип закраски и цвет (например, сплошная закраска синего цвета SolidBrush (Color . Blue)):
Dim Brushl As New SolidBrush(Color.Blue)
Затем в программном коде обработчика события можно установить новый цвет закраски (например, пурпурный):
Brush1.Color = Color.Magenta
Графические методы. Графические фигуры рисуются с использованием графических методов. Замкнутые фигуры, такие как прямоугольники или эллипсы, состоят из двух частей — контура и внутренней области. Контур рисуется с использованием заданного пера, а внутренняя область закрашивается с использованием заданной кисти (табл. 1.7).
Цвет. Цвет устанавливается как значение свойства Color. Можно установить цвет с использованием нескольких десятков цветовых констант. Ниже приведены примеры установки зеленого цвета для объекта Penl и желтого цвета для объекта Brushl:
Penl.Color = Color.Green
Brushl.Color = Color.Yellow
Для установки цвета в 24-битовой палитре цветов RGB используется метод Color. FromArgb (Red, Green, Blue), аргументами которого являются три числа в диапазоне от 0 до 255 (интенсивности красного, зеленого и синего цветов). Например, так можно установить пурпурный цвет для объекта Brushl:
Brushl.Color = Color.FromArgb(255,0,255)
Рисование текста. Метод Drawstring () позволяет выводить текст в область рисования. Аргументами метода являются Строка текста, Шрифт, Кисть и координаты начала строки. Объекты Шрифт (например, drawFont) и Кисть (например, drawBrush) необходимо объявить:
Dim drawFont As New Font("Arial", 16)
Dim drawBrush As New SolidBrush(Color.Black)
Рисование текста в поле рисования можно осуществить так:
Graphl.DrawString ("Текст", drawFont, drawBrush, 10, 10)
Рис. 1.11. Компьютерная система кооординат графического поля
Системы координат. Рисование линий, прямоугольников и других фигур производится в компьютерной системе координат, начало которой расположено в верхнем левом углу формы или элемента управления. Ось X направлена вправо, а ось Y — вниз. Единицей измерения по умолчанию является точка (пиксель). Компьютерная система координат графического поля шириной 300 точек и высотой 200 точек приведена на рис. 1.11.
Таблица 1.7. Графические методы
При геометрических построениях и построении графиков функций удобнее использовать математическую систему координат, начало которой обычно находится в центре области рисования. Ось X направлена вправо, а ось У — вверх. Математическая система координат графического поля шириной 300 точек и высотой 200 точек приведена на рис. 1.12.
Рис. 1.12. Математическая система координат графического поля
Для преобразования компьютерной системы координат в математическую систему координат используется метод масштабирования и поворота осей ScaleTransform () и метод сдвига начала координат TranslateTransf orm () .
Метод
Graphl.ScaleTransform(1, -1)
обеспечивает поворот оси У.
Метод
Graphl.TranslateTransform(150, -100)
обеспечивает сдвиг по оси X на 150 точек вправо и сдвиг по оси У на 100 точек вниз.
Анимация. Для создания анимации (иллюзии движения на экране какого-либо объекта) применяется принцип смены кадров (изображений), как это делается в мультипликации. Для этого необходимо с определенной частотой рисовать объект в поле рисования, причем координаты объекта должны каждый раз изменяться на определенную величину.
1. Перечислите методы рисования графических фигур и их аргументы.
2. Каким образом можно изменить систему координат формы или графического поля?
3. Покажите на примере основные этапы создания анимации движения объекта.