Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Практическая часть. Пример №1. Нарисовать флаг Алжира




 

Пример №1. Нарисовать флаг Алжира.

Private Sub Form_Load()

Dim Z As New star 'Описываем новый объект на базу класса Star

Const pi = 3.1415926

AutoRedraw = True

Caption = "ФлагАлжира"

X1 = CurrentX + 100

Y1 = CurrentY + 100 'Размеры флага внутри окна формы

X2 = ScaleWidth - 100

Y2 = ScaleHeight - 100

ForeColor = RGB(255, 255, 255) 'Белый цвет

Line (X1, Y1)-(X2, Y2),, BF

ForeColor = RGB(0, 255, 0) 'Зеленый цвет

x3 = X2 / 2

y3 = Y2 / 2

Line (X1, Y1)-(x3, Y2),, BF

ForeColor = RGB(255, 0, 0) 'Красный цвет

For a! = 1 To 1.6 Step 0.01 'Рисуем полумесяц

Circle (x3 + 400, y3), 900,, pi / 2, 3 * pi / 2, a

Next

'Рисуем звезду из модуля Star1.dll

Call Z.Zvezda(x3 + 300, y3, 350, 150, 5, 0, ForeColor, Form1)

ForeColor = RGB(0, 0, 0) 'Black

DrawWidth = 3 'Ширина

FillStyle = 1 'прозрачный фон

Line (X1, Y1)-(X2, Y2),, B 'Обводим

End Sub

 

v Комментарии к программе.

Программа содержит ряд стандартный процедур и функций для рисования, но имеется и внешняя процедура Zvezda, которая описана в классе Star, находящемся в библиотеке Star1.dll. Для установления связи с библиотекой Star1.dll необходимо воспользоваться командой Project\References\кнопка Browse для поиска библиотеке на диске. Отыскав библиотеку на диске необходимо поставить в окне References около нее флажок. Формат процедуры сделующий.

Zvezda (<x>,<y>,<Rmax>,<Rmin>,<n>,<angle>,<Color>,<Object>) – рисует звезду в координатах x и y объекта Object, большим Rmax и малым Rmin радиусами, с количеством вершин n, имеющей угол базовой вершины angle относительно оси абцисс, цветом Color.

 

Пример №2. Отобразить в окне формы изменения двух графиков:

в диапазонах xÎ[-10…10], аÎ[0,1…1], bÎ[0…2], cÎ[0…2p].

 

Const pi = 3.1415926

Dim a As Single, b As Single, c As Single, x As Single

Private Sub Form_Load()

Picture1.Scale (-11, 1.1)-(11, -1.1)

MsgBox "Установите значения параметров и" _

& " щелкните в графическом окне", vbInformation, "Начало работы"

Text1.Text = Hs1.Value

Text2.Text = HS2.Value

Text3.Text = HS3.Value

End Sub

Private Sub Hs1_Change()

Text1.Text = Hs1.Value

End Sub

Private Sub HS2_Change()

Text2.Text = HS2.Value

End Sub

Private Sub HS3_Change()

Text3.Text = HS3.Value

End Sub

Private Sub Picture1_Click()

For x = -10 To 10 Step 0.01

Picture1.PSet (x, a * Sin(x) * Atn(x)), BackColor

Picture1.PSet (x, a * Sin(b * x - c)), BackColor

Next x

Picture1.DrawWidth = 2

Picture1.Line (-11, 0)-(11, 0)

Picture1.Line (0, 1.1)-(0, -1.1)

Picture1.DrawWidth = 1

Picture1.DrawStyle = 2 'Пунктир

For x = -10 To 10 Step 1 'Вертикальные оси

Picture1.Line (x, -1)-(x, 1)

Next x

For x = 1 To -1.1 Step -0.1 'Горизонтальные оси

Picture1.Line (-10, x)-(10, x)

Next x

a = 0.01 * Hs1.Value

b = 0.01 * HS2.Value

c = pi * HS3.Value / 180

Picture1.DrawWidth = 2

For x = -10 To 10 Step 0.01

Picture1.PSet (x, a * Sin(x) * Atn(x)), vbGreen

Picture1.PSet (x, a * Sin(b * x - c)), vbRed

Next x

End Sub

 

Пример №3. Анимация сообщения с использованием управляющего элемента Timer.

Dim s As String, x As Long, y As Long, w As Long

Private Sub Form_Load()

Timer1.Interval = 10

Timer1.Enabled = False

s = "Я хочу отдохнуть"

w = ScaleWidth - 100

x = 0

y = ScaleHeight / 2 - 200

Font.Bold = True

Font.Size = 14

Font.Name = "Arial"

End Sub

Private Sub Command1_Click()

CurrentX = x

CurrentY = y

ForeColor = QBColor(0)

Print s

Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()

CurrentX = x

CurrentY = y

ForeColor = BackColor

Print s

x = x + 30

If x < w Then

CurrentX = x

CurrentY = y

ForeColor = QBColor(0)

Print s

Else

x = 0

End If

End Sub

 

Пример №4. Анимация движения объекта (шарика) с использованием управляющего элемента Timer и метода MoveTo.

Dim h1 As Integer, h2 As Integer

Dim x As Integer, y As Integer

Private Sub Command1_Click()

x = Shape1.Left + h1

y = Shape1.Top + h2

Timer1.Enabled = True ‘ Запуск таймера

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Timer1.Interval = 10

Timer1.Enabled = False

Shape1.Shape = 3 'Circle - фигура

Shape1.FillStyle = 0 'Сплошная заливка

Shape1.FillColor = vbBlue 'Синий цвет заливки

Shape1.BorderColor = vbWhite 'Белый цвет контура

h1 = 50: h2 = 50 ‘ Шаг по х и у

End Sub

'Следующая процедура выполняется через равные промежутки времени:

Private Sub Timer1_Timer()

Shape1.Move x, y

'Определить следующую точку

x = x + h1

y = y + h2

If x > ScaleWidth - Shape1.Width Or x < 0 Then h1 = -h1

If y > ScaleHeight - Shape1.Height Or y < 0 Then h2 = -h2

End Sub

 

Пример №5. Построить спираль вокруг начала координат с размахом N и внешним радиусом R. Начальное направление спирали образует с осью X угол 0 градусов. Параметры А и N вводятся с клавиатуры. Параметрическое представление спирали: X=R*Cos(t); Y=R*Sin(t); R=t * A; 0<=t<=2Nπ.

 

Const pi = 3.1415926

Dim n As Integer, h As Integer

Private Sub Command1_Click()

Call Спираль

End Sub

 

Private Sub Form_Load()

Randomize

Caption = "Спираль"

AutoRedraw = True

WindowState = 0 '0->Normal screen, 2->Full screen

n = InputBox("Введите количество витков",, 10)

h = InputBox("Введите шаг спирали",, 25)

End Sub

 

Private Sub Спираль()

xr = ScaleWidth / 2

yr = ScaleHeight / 2

CurrentX = xr

CurrentY = yr

DrawWidth = 3

k! = pi / 100

For t = 0 To 2 * pi * n Step k

c& = QBColor(Rnd * 15)

r = t * h

x! = r * Cos(t)

y! = r * Sin(t)

Line -(x + xr, y + yr), c

Next

End Sub

 




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 449; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.023 сек.