Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB_6.doc
Скачиваний:
97
Добавлен:
01.12.2018
Размер:
3.77 Mб
Скачать

12.5.3. Метод Circle.

Этот метод позволяет изобразить на объекте такие фигуры как окружность, эллипс, дугу и сектор. Его синтаксис:

object.Circle [Step] (x,y), radius, [color], [start], [end], [aspect]

Параметры Step и color имеют тот же смысл, какой описан в предыдущих разделах. Параметр (x, y) является координатами центра изображаемой фигуры. Если параметр color опущен, то ограничивающая фигуру линия изображается цветом, задаваемым значением свойства ForeColor. Если изображается окружность, то параметры start, end и aspect отсутствуют. Смысл параметра radius в пояснении не нуждается. Если нужно изобразить эллипс, то кроме радиуса нужно задавать значение параметра aspect. Этот параметр численно должен быть равен отношению вертикальной полуоси эллипса к его горизонтальной полуоси. Если это отношение больше единицы, то эллипс будет вытянут по вертикали, если меньше, – то по горизонтали. При значении aspect = 1 эллипс вырождается в окружность. Параметры start и end предназначены для изображения дуг и секторов. Они определяют угол начала изображения дуги и угол окончания изображения. Оба угла отсчитываются от положительного направления горизонтали против часовой стрелки и должны задаваться в радианах. Если параметру start предшествует знак минус, то этот конец дуги будет соединен с центром. Это же относится и к параметру end. Если знак минус указать перед обоими параметрами, то будет изображен сектор. Если какой либо из внутренних параметров не указан, это не отменяет его запятую. Так например, чтобы изобразить эллипс, можно записать оператор:

Form1.Circle (2000,2000), 500, vbMagenta, , , 0.5

В результате будет линией малинового цвета изображен эллипс с центром в точке с координатами (2000, 2000), у которого вертикальная полуось равна 500, а горизонтальная – в два раза больше т.к. значение параметра aspect задано равным 0.5.

На следующем рисунке приведен результат выполнения процедуры:

Private Sub Command1_Click()

FillStyle = vbDiagonalCross

FillColor = vbGreen

Form1.Circle (4000,2500), 2000, vbBlue, - 1.5, - 2.7, 0.6

End Sub

Рис. 12.5. Вид формы в результате выполнения процедуры

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

Private resp!, i&

Private Sub Command1_Click()

FillStyle = vbSolid

DrawWidth = 5

Do While True

If resp >= 0.8 Then

FillColor = vbGreen

For resp = 0.8 To 0 Step -0.01

For i = 1 To 250000

If i Mod 2500 = 0 Then Circle (3500, 2000), 2000, , , , resp

Next i

Me.Cls

DoEvents

Next resp

ElseIf resp <= 0 Then

FillColor = vbYellow

For resp = 0 To 0.8 Step 0.01

For i = 1 To 250000

If i Mod 2500 = 0 Then Circle (3500, 2000), 2000, , , , resp

Next i

Me.Cls

DoEvents

Next resp

End If

Loop

End Sub

Private Sub Command2_Click()

End

End Sub

Эффект вращения круга достигается периодическим изменением параметра respect изображаемого на форме эллипса (переменная resp).

После визуализации на форме очередного состояния эллипса в течении 2500 оборотов вложенного регулярного цикла происходит очищение формы для прорисовки следующего состояния эллипса. При обращении к методу Circle можно не указывать параметр object (т.е. Form1)

так как активной все время является единственная форма проекта.

В процедуре организована конструкция бесконечного итерационного цикла Do While True . . . Loop. Чтобы обеспечить завершение работы приложения в любой момент времени щелчком по второй командной кнопке, используется оператор DoEvents. Он позволяет на очень короткое время прервать выполнение операторов цикла и обработать произошедшие к этому моменту события, в том числе и событие Click второй командной кнопки.

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