Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
70
Добавлен:
02.05.2014
Размер:
3.64 Mб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Уфимский государственный авиационно-технический университет

Кафедра информатики

Отчет по лабораторной работе №7

По теме: Работа графикой.

Выполнил: Гайсин А.С.

АД-127

Проверил: Левков А.А.

УФА 2007

Цель работы: Целью работы является изучение возможностей разработки графических приложений.

Задание 1: Построить график функции Y=3*x2 на отрезке [-5, 5]

Код:

Private Sub Command1_Click()

Picture1.Scale (-10, 15)-(10, -15)

For i = -10 To 10

Picture1.Line (i, -15)-(i, 15), RGB(200, 220, 225)

Picture1.PSet (i, 0)

Picture1.Print i

Next

For i = -5 To 5

Picture1.Line (-10, i)-(10, i), RGB(200, 220, 225)

Picture1.PSet (0, i)

Picture1.Print i

Next

Picture1.Line (-10, 0)-(10, 0), QBColor(8)

Picture1.Line (0, -15)-(0, 15), QBColor(8)

For x = -3 To 3 Step 0.01

y = 3 * x ^ 2

Picture1.PSet (x, y), vbgreen

Next

End Sub

Задание 2: Создайте проект и напишите программу "Светофор", позволяющую по нажатию кнопки "включать" заданный свет светофора. 

Код: Private Sub Form_Activate() Picture1.Circle (450, 500), 300, RGB(255, 0, 0) Picture1.Circle (450, 1200), 300, RGB(255, 255, 0) Picture1.Circle (450, 1900), 300, RGB(0, 255, 0) End Sub Private Sub Command1_Click() Picture1.FillColor = &H8000000F Picture1.FillStyle = 0 Picture1.Circle (450, 1200), 300, RGB(255, 255, 0) Picture1.Circle (450, 1900), 300, RGB(0, 255, 0) Picture1.FillColor = QBColor(12) Picture1.FillStyle = 0 Picture1.Circle (450, 500), 300, RGB(255, 0, 0) End Sub Private Sub Command2_Click() Picture1.FillColor = &H8000000F Picture1.FillStyle = 0 Picture1.Circle (450, 500), 300, RGB(255, 0, 0) Picture1.Circle (450, 1900), 300, RGB(0, 255, 0) Picture1.FillColor = QBColor(14) Picture1.FillStyle = 0 Picture1.Circle (450, 1200), 300, RGB(255, 255, 0) End Sub Private Sub Command3_Click() Picture1.FillColor = &H8000000F Picture1.FillStyle = 0 Picture1.Circle (450, 500), 300, RGB(255, 0, 0) Picture1.Circle (450, 1200), 300, RGB(255, 255, 0) Picture1.FillColor = QBColor(10) Picture1.FillStyle = 0

Picture1.Circle (450, 1900), 300, RGB(0, 255, 0)

End Sub

Задание 3: Создайте проект и напишите программу рисования треугольников и колец и вычисляющую площади нарисованных фигур.

Код: Private ring As Boolean

Private i As Integer

Private col As Long

Private rc, tc, lc, ac, R1, R2, p, a, b, c, pi As Double

Private arx(1 To 3), ary(1 To 3) As Double

Private Sub Command1_Click()

Picture1.Cls

rc = 0

tc = 0

lc = 0

ac = 0

Call printc

i = 1

Option4.Enabled = True

Option5.Enabled = True

End Sub

Private Sub Form_Load()

Picture1.Cls

Option4.Enabled = True

Option5.Enabled = True

Option4.Value = True

col = RGB(255, 0, 0)

ring = True

i = 1

pi = 3.1415926

rc = 0

tc = 0

lc = 0

ac = 0

p = 0

Call printc

End Sub

Private Sub printc()

Label5.Caption = Str(rc)

Label6.Caption = Str(tc)

Label7.Caption = Str(lc)

Label8.Caption = Str(ac)

End Sub

Private Sub Option4_Click()

ring = True

End Sub

Private Sub Option5_Click()

ring = False

End Sub

Private Sub Picture1_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)

Option4.Enabled = False

Option5.Enabled = False

arx(i) = x

ary(i) = y

'Picture1.Circle (arx(i), ary(i)), 5, col

Picture1.PSet (arx(i), ary(i)), col

i = i + 1

If i > 3 Then

If ring Then

R1 = Sqr(Abs((arx(1) - arx(2)) ^ 2 + (ary(1) - ary(2)) ^ 2))

R2 = Sqr(Abs((arx(1) - arx(3)) ^ 2 + (ary(1) - ary(3)) ^ 2))

Picture1.Circle (arx(1), ary(1)), R1, col

Picture1.Circle (arx(1), ary(1)), R2, col

lc = Abs((R1 ^ 2) - (R2 ^ 2)) * pi

rc = rc + lc

Else

Picture1.Line (arx(1), ary(1))-(arx(2), ary(2)), col

Picture1.Line (arx(1), ary(1))-(arx(3), ary(3)), col

Picture1.Line (arx(2), ary(2))-(arx(3), ary(3)), col

a = Sqr((arx(1) - arx(2)) ^ 2 + (ary(1) - ary(2)) ^ 2)

b = Sqr((arx(1) - arx(3)) ^ 2 + (ary(1) - ary(3)) ^ 2)

c = Sqr((arx(3) - arx(2)) ^ 2 + (ary(3) - ary(2)) ^ 2)

p = (a + b + c) / 2

lc = Sqr(p * (p - a) * (p - b) * (p - c))

tc = tc + lc

End If

ac = tc + rc

Call printc

i = 1

Option4.Enabled = True

Option5.Enabled = True

End If

End Sub

Задание 4: Создайте проект, позволяющий просматривать графические файлы, спроектируйте свою форму (рабочее окно) программы просмотра графических файлов. Используйте различные варианты поиска и открытия файла.

Код: Private Sub Form_Load()

CommonDialog1.Filter = "Pictures(*.bmp,*.jpg,*.gif )|*.bmp;*.jpg;*.gif "

End Sub

Private Sub Command1_Click()

CommonDialog1.ShowOpen

Set Picture1.Picture = LoadPicture(CommonDialog1.FileName)

End Sub

Private Sub Command2_Click()

Picture1.Picture = LoadPicture

End Sub

Private Sub Command3_Click()

End

End Sub

Вывод: мы изучили графические возможности VB, а также выполнили индивидуальные и общие задания. Написали программу рисования треугольников и колец и вычисляющую площади нарисованных фигур и программу просто отражающую графические изображения.