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

Private Sub Buttonl_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Buttonl.Click

Randomize()

Dim a, b As Integer

a = Rnd()

b = 2 * Rnd()

Dim mas(l, 2) As Label

mas(0, 0) = Labe11

mas(0, 1) = Labe12

mas(0, 2) = Labe13

mas(l, 0) = Label4

masd, 1) = Labe 15

rnasd, 2) = Labe 16

mas(a, b).BackColor = Color.Red

If mas(a, b).Top <= 5 Then mas(a; b).Text = «победитель» mas(a, b).Top -= 10 End Sub

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

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

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

Многомерные массивы

математическую функцию у = sin (х). Таким образом, совокупность этих маленьких линий должна представлять собой синусоиду. Построение линии осуществляется методом DrawLine.

Private Sub Buttonl_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Buttonl.Click

Dim graf As Graphics = MyClass.CreateGraphics

Static xl As Single

Static yl As Single = 200

Static x2 As Single

Static y2 As Single

Dim i As Integer

For i = 1 To 100 Step 1

x2 = x2 + 6

y2 = 200 - 100 * Math.Sin(x2)

graf.DrawLine(New Pen(Color.Red, 3), xl, yl, x2, y2) xl = x2 У1 = У2 Next

Если вам что-то непонятно в этом коде, еще раз обратитесь к пункту 11.4 главы 11, где мы подробно рассматривали построение графиков. Главное, что здесь надо усвоить, - это возможность создания сколь угодно большого количества линий, которые благодаря расположению координат составляют одну целую линию, вполне сопоставимую с массивом.


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