Рисовать в VB Net можно на форме, на графическом поле PictureBox, текстовом поле TextBox, кнопке Button, метке Label и других элементах управления. Рисование становится возможным после подключения класса Graphics. Подключение выполняется методом CreateGraphics, например:
Dim Gr as Graphic= Me.CreateGraphics ‘подключение к форме
Dim Gr as Graphic= PictureBox1.CreateGraphics ‘подключение к PictureBox
Dim Gr as Graphic= TextBox1.CreateGraphics ‘подключение к TextBox
Здесь Gr имя графического объекта, на котором будет выполняться рисование.
Система координат области рисования предполагает расположение точки с координатами Х=0, У=0 в левом верхнем углу области рисования, а максимальные значения по осям Х и У для видимой части изображения определяются размерами этих областей. Сами координаты могут задаваться и за пределами видимой части.
Для задания контура фигуры используется инструмент “Перо”, описываемый следующим образом:
Dim P as New Pen(Color.Green,3) ‘новое перо зелёного цвета толщиной 3 пикселя (по умолчанию равно 1).
Для пера можно изменять его толщину: P.Width=5 и цвет P.Color=Color.Red во время исполнения программы.
Прорисовка закрашенных фигур выполняется инструментом “кисть”, описываемый командой:
Dim B as New SolidBrush(Color.Blue)
Очистка графического объекта от изображения может быть выполнено командой:
Gr.Clear(Color.FromName(“Control”)) либо Gr.Clear(Me.BackColor)-очистка цветом фона формы.
Отрезок
Gr.DrawLine(P,x1,y1,x2,y2)
x1,y1 - координаты начальной точки;
x2,y2-координаты конечной точки;
Прямоугольник
Gr.DrawRectangle(P, x, y, w, h)
Закрашенный прямоугольник
Gr.FillRectangle(B, x, y, w, h)
Эллипс
Gr.DrawEllipce(P, x, y, w, h)
Закрашенный эллипс
Gr.FillEllipce(B, x, y, w, h)
x,y – координаты левого верхнего угла прямоугольника,
w – ширина,
h – высота.
x,y – координаты левого верхнего угла прямоугольника, описанного вокруг эллипса
w – ширина,
h – высота.
Дуга
Gr.DrawArc(P, x, y, w, h, k, dk)
x,y – координаты левого верхнего угла прямоугольника, описанного вокруг эллипса
w – ширина,
h – высота,
k – начальный угол в градусах,
dk – величина дуги в градусах, отсчитываемая по часовой стрелке.
Сектор
Gr.DrawPie(P, x, y, w, h, k, dk)
Закрашенный сектор
Gr.FillPie(B, x, y, w, h, k, dk)
x,y – координаты левого верхнего угла прямоугольника, описанного вокруг эллипса
w – ширина,
h – высота,
k – начальный угол в градусах,
dk – величина дуги в градусах, отсчитываемая по часовой стрелке.
Если инструменты “Перо” либо “Кисть” небыли предварительно описаны, их можно описать непосредственно в команде рисования фигур:
Gr.DrawEllipce(Pen.Color.Yellow, x, y, w, h) – эллипс с жёлтым цветом контура; Gr.FillEllipce(Brushes.Color.Blue, x, y, w, h) – эллипс закрашенный синим цветом.
Рассмотрим использование команд построения графических примитивов на примере создания рисунка «Паровоз» .
Рисунок создадим на форме в момент её загрузки, то есть в событии Form_Load.
Public Class Form1
Dim GR As Graphics, P1 As Pen, B1 As Brush
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Show() 'показать форму в событии Form1_Load
GR = Me.CreateGraphics() 'рисовать на форме
P1 = New Pen(Color.Red, 2) 'создать перо
B1 = New SolidBrush(Color.Brown) 'создать кисть
GR.DrawRectangle(P1, 100, 200, 100, 150) 'кабина
GR.DrawRectangle(P1, 110, 210, 80, 70) 'окно
GR.FillRectangle(B1, 200, 250, 220, 100) 'бак
GR.FillEllipse(Brushes.DarkGreen, 120, 350, 70, 70) 'колесо
GR.FillEllipse(Brushes.DarkGreen, 320, 350, 70, 70) 'колесо
GR.FillPie(Brushes.Yellow, 290, 270, 70, 70, 10, 340) 'колобок
GR.DrawLine(P1, 370, 250, 360, 180) 'труба
GR.DrawLine(P1, 360, 180, 410, 180)
GR.DrawLine(P1, 410, 180, 400, 250)
P1.Color = Color.Black
GR.DrawEllipse(P1, 360, 150, 50, 20) 'дым
GR.DrawEllipse(P1, 320, 110, 70, 30)
P1.Width = 6
GR.DrawLine(P1, 0, 420, 1000, 420) 'дорога
End Sub
End Class
Домашнее задание: Создать рисунки по образцам (рис. 1.2 – 1.4):