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

Итак, составим код в файле класса Classl. Здесь*нам понадобится шесть переменных. Четыре из них нужны для определения координат точек, с помощью которых будет построен массив кривых Безье. Использовать числовые значения крайне нежелательно, так как придется писать код для каждой линии отдельно, что приведет к созданию неоправданно громоздкого кода. Еще одна переменная задаст координаты точки, вокруг которой будет вращаться фигура. Значение шестой переменной - это аргумент метода RotateAd, который определит угол поворота. После этого определим свойства последней переменной, создав внешнюю переменную, с помощью которой укажем программе величину угла поворота. Затем создадим процедуру, в которой с помощью цикла For...Next построим массив кривых. Код в файле класса будет выглядеть так:

Public Class Classl Dim al As New Point(50, 50) Dim a2 As New Point(250, 220) Dim a3 As New Point(250, 100) Dim a4 As New Point(350, 200) Dim a5 As New PointF(240, 150) Dim angl As Single

Property ang() As Single Get

ang = angl End Get

Set(ByVal Value As Single)

angl = Value

End Set

End Property

Sub bez(ByVal e As PaintEventArgs) Dim i As Integer For i = 1 To 15 a4.Y = a4.Y - 20 al.Y = al.Y + 20

Dim matr As New System.Drawing.Drawing2D.Matrix matr.RotateAt(angl, a5)

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

ГЛАВА 14 Т Создание графики методами ООП

е.Graphics.Transform = matг

e.Graphics.DrawBezier(New Pen(Color.Red), al, a2, аЗ, a4) Next End Sub End Class

Теперь рассмотрим код для файла формы. Используем два способа ввода данных для определения угла поворота. Тут нам понадобятся элементы управления Timer и Text Box. С помощью таймера составим циклическую программу, в которой используем статическую переменную. Ее постоянно изменяющаяся величина и будет являться величиной угла, что приведет к постоянному вращению созданного нами рисунка. А текстовое поле можно использовать еще для одного способа ввода данных. Значением Text текстового поля являются координаты указателя мыши. Поэтому фигура будет вращаться только во время движения указателя. И еще нам понадобится переменная, областью видимости которой является весь файл. Эта переменная нужна для передачи значений статической переменной в другие процедуры, поскольку областью видимости статической переменной является всего лишь одна процедура. В целом код, составленный для модуля формы, выглядит так:


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