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

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

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

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

ГЛАВА 11V Некоторые особенности работы с графикой

присвоятся предьцгущей. Следует обратить внимание, что величина аргумента х возрастает на 0,0175. В радианном исчислении это соответствует одному градусу. Впрочем, данное условие необязательно - главное, чтобы это число было небольшим. Если увеличить интервал между горизонтальными координатами точек, плавная кривая синусоиды превратится в ломаную линию. Посмотрим, как выглядит код этой программы:

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

ByVal e As System.EventArgs) Handles Buttonl.Click

Dim graf As Graphics = MyClass.CreateGraphics

graf.DrawLine(New Pen(Color.Black, 3), 10, 200, 800, 200)

graf.DrawLine(New Pen(Color.Black, 3), 100, 10, 100, 400)

Static xl As Single = 100

Static yl As Single = 200

Dim x2 As Single

Dim y2 As Single

Dim i As Single

Static x As Single

For i = 0 To 360 Step 1

x = x + 0.0175

x2 = 100 + x * 100

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

graf.DrawLine(New Pen(Color.Red, 3), xl, yl, x2, y2) xl = x2 yl = y2 End Sub


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