Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_9_II_12_I.doc
Скачиваний:
3
Добавлен:
31.07.2019
Размер:
1.47 Mб
Скачать

Принципы генерации графических изображений.

В Windows для создания графического изображения подается сигнал о событии Paint, которое выполняется в Visual Basic одноименной процедурой.

  1. Координаты формы.

По умолчанию начало координат (0,0) находится в верхнем левом углу формы, значение по X увеличивается вправо, значение по Y - вниз. Для задания стандартной системы координат с точкой (0,0) в середине экрана свойству ScaleTop присваивается некоторое положительное значение, а свойству ScaleHeight отрицательное значение, которые определяют диапазон значений шкалы Y.

Например, ScaleTop = 50, ScaleHeight = -100, шкала Y имеет диапазон от -50 до +50. Аналогично свойству ScaleLeft присваивается некоторое отрицательное значение, а свойству ScaleWidth положительное значение, которые определяют диапазон значений шкалы X. Например, ScaleLeft = -20, ScaleWidth = 40, шкала X имеет диапазон от -20 до +20. Заданная таким образом система координат приводится на рисунке.

  1. Графические методы.

Для создания изображений используются графические методы Line (рисование линий и прямоугольников),

Circle (рисование окружностей, дуг, секторов и эллипсов)

Pset (рисование отдельных точек).

В методе Line в первых скобках заданы координаты Х и У первой точки, во вторых скобках - координаты Х и У второй точки. Координаты Х и У первой точки можно не задавать, тогда линия продолжается от текущей точки. Буква В задает рисование прямоугольника (в этом случае координаты определяют положение противоположенных углов), буква F определяет закрашивание прямоугольника. Дополнительным параметром можно задать цвет рисования.

В методе Circle в скобках задаются координаты Х и У центра. После скобок задается радиус. Используя дополнительные параметры можно рисовать дуги, сектора и эллипсы.

В методе PSet в скобке задаются координаты Х и У центра точки.

Свойство формы DrawWidth определяет толщину линий или размер точки. Свойства FillColor и FillStyle определяют соответственно цвет заполнения прямоугольника, окружности, дуги или сектора и стиль заполнения (прозрачное, крест на крест, горизонтальные линии и др.).

Пример использования графических методов

  1. Создайте проект, текст которого приведен ниже и сохраните его в отдельной папке под именем График1

Private Sub Form_Paint()

Scale (-10, 10)-(10, -10) 'установка масштаба

Line (-10, 0)-(10, 0) 'ось X

Line (0, -10)-(0, 10) 'ось Y

Line (-8.5, 9.2)-(9.01, -2.1) 'прямая линия

Line (-5, 2)-(2, 1), RGB(0,255,0), B 'не закрашен. прямоугольник, цвет линии - зеленый

Line (-8.5, 3.5)-(-5.5, -4), RGB(255,0,0), BF 'закрашен. Красным цветом прямоугольник

Circle (1, 2), 5 'окружность

DrawWidth = 10 'изменение ширины линии или размера точки

PSet (7, 6.5) 'точка

End Sub

  1. Построение графиков функций.

С помощью метода Line можно рисовать графики функций. Но их лучше помещать не на форме, а в некоторой ограниченной области формы. Для этой цели служит элемент Picture. Свойства Line, Circle, Pset будут относиться к элементу Picture и записываться следующим образом: Picture.Line ()-(). Систему координат будем задавать соответственно значениям аргументов и функций.

Свойства CurrentX и CurrentY формы определяют текущие координаты точки на форме (в программе они определяют начальное положение графика функции).

Минимальные и максимальные значения на осях Х и У проставляются с помощью меток (Label) на форме (свойствам Caption меток присваиваются соответствующие значения).

Приведем пример программы для построения графика функции У = 2 * X + 3 на отрезке [-5,+4] и построим график.

Заданный отрезок определяет масштаб оси Х.

Создайте проект. Текст проекта (сохраните проект под именем График1)

Dim x1 As Single, x2 As Single

Dim s As Single, p1 As Integer

Dim a As Single, b As Single

Dim x As Single

Private Sub Command1_Click()

x1=-5

x2=4

a=Abs(x1)

if Abs(x1)<Abs(x2) then a=Abs(x2)

b = FF(x1)

For x = x1 To x2 Step s

If Abs(FF(x)) > Abs(b) Then b = Abs(FF(x))

Next

Picture1.Scale (-a, b)-(a, -b)

Picture1.Cls

Picture1.Line (-a, 0)-(a, 0), RGB(0, 255, 0)

Picture1.Line (0, -b)-(0, b), RGB(0, 255, 0)

Label1.Caption = Str(-a)

Label2.Caption = Str(-b)

Label3.Caption = Str(a)

Label4.Caption = Str(b)

Picture1.CurrentX = x1

Picture1.CurrentY = FF(x1)

For x = x1 To x2 Step s

Picture1.DrawWidth = 6

Picture1.PSet (Picture1.CurrentX, Picture1.CurrentY)

Picture1.DrawWidth = p1

Picture1.Line -(x, FF(x)), RGB(255, 0, 0)

Next

End Sub

Private Sub Command2_Click()

End

End Sub

Public Function FF(x As Single) As Single

FF = 2 * x + 3

End Function

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]