Трусов М. А. Visual Basic .NET. Создание графических объектов и основы программирования стр.55
Трусов М. А. Visual Basic .NET. Создание графических объектов и основы программирования стр.55

А теперь попробуем таким же образом нарисовать более сложные геометрические фигуры. Разобраться в этих кодах несложно. Все они строятся по одному принципу. Сначала объявляем переменные, видимые в модуле. Значениями этих переменных будут координаты точек, необходимые для построения геометрической фигуры. Затем задаем координаты фигуры, определяющие ее положение на форме. И, наконец, представляем значения параметров в виде величин, зависимых от положения указателя мыши.

В следующем примере с помощью метода DrawPolygon рисуется многоугольник. С изменением координат указателя

Трусов М. А. Visual Basic .NET. Создание графических объектов и основы программирования

ГЛАВА 8 ▼ Рисуем с помощью мыши

Трусов М. А. Visual Basic .NET. Создание графических объектов и основы программирования

Рис. 8.1 ▼ Рисование с помощью мыши

мыши изменяются и параметры рисуемой фигуры, а когда меняются параметры, создается новое изображение, соответствующее им. Это значит, что каждый раз при смене координат указателя мыши обязательно рисуется новый многоугольник. Таким образом, созданный таким кодом рисунок будет представлять собой массив многоугольников. Но нам нужен только один многоугольник. Поэтому в данном коде применен метод Clear.

Этот метод очищает рисунок после создания нового изображения. А уж если быть более точным, он закрашивает ранее созданное изображение указанным в коде цветом. Но более эффективным является применение метода Refresh (в коде отмечен знаком «комментарий») Обратите внимание на то, как определяются размеры многоугольника. Это разница между координатами действительного положения указателя мыши и его первоначального положения.

Dim xl, х2, хЗ, х4 As Single Dim yl, y2, уЗ, у4 As Single Dim i As Boolean

Private Sub Form3_MouseDown(ByVal sender As Object, ByVal e _ As Systern.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown i = True

xl = e.X : yl = e.Y

End Sub

MouseDown

Private Sub Form3_MouseMove(ByVal sender As Object, ByVal e _

As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove

Dim graf As Graphics = CreateGraphics()

If i = True Then

x2 = e.X : y2 = yl

x3 = e.X : y3 = e.Y

x4 = xl : y4 = y3

"Me.Refresh()

graf.Clear(Color.White)


⇐ Предыдущая Следующая ⇒
 
 
 
Powered by Exponenta