Студопедия
rus | ua | other

Home Random lecture






Приклади створення графічних об'єктів


Date: 2015-10-07; view: 450.


1. Куб із зафарбованою гранню(Мал. 6).Колір зафарбування змінюється з інтервалом, що заданий властивостями таймера. Довжина сторони Gran = 2000 твіпів. Командна кнопка cmdClick включає таймер на ім'я Timi. У процедурі, пов'язаній з таймером, обирається колір зафарбування (випадковий) та запускається процедура малювання фігури Draw. Креслення виконується методом Line.

(X2;Y2)
(X1;Y1)

Мал. 6.

Private Sub Draw()

Const X1 As Long = 2000

Const Y1 As Long = 1500

Const X2 As Long = 3000

Const Y2 As Long = 600

Const Gran As Long = 2000

FillStyle = 0

DrawWidth = 1

DrawStyle = 0

Line (X1, Y1)-Step(Gran, Gran), , B

Line (X2, Y2)-Step(Gran, 0)

Line -Step(0, Gran)

Line -(X1 + Gran, Y1 + Gran)

Line (X2 + Gran, Y2)-(X1 + Gran, Y1)

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

DrawWidth = 1

DrawStyle = 2

Line (X1, Y1 + Gran)-(X2, Y2 + Gran)

Line -Step(0, -Gran)

Line (X2, Y2 + Gran)-Step(Gran, 0)

End Sub

Private Sub cmdClick_Click()

Timi.Enabled = True

End Sub

Private Sub Timi_Timer()

FillColor = vbWhite * Rnd

Draw

End Sub

2. Піраміда(Мал. 7).На початку процедури очищується форма для малювання, обирається колір ліній. Виконується малювання суцільних ліній, стиль ліній DrawStyle = 0, далі малюються пунктирні лінії стилем DrawStyle = 2.

Мал. 7.

Sub Form_Load()

Cls

ForeColor = vbBlack

DrawStyle = 0

Line (2500, 2500)-Step(1000, 3000)

Line (2500, 2500)-Step(-1500, 4000)

Line -Step(1500, 0)

Line -(3500, 5500)

Line (2500, 2500)-Step(0, 4000)

DrawStyle = 2

Line (2500, 2500)-Step(-500, 3000)

Line -Step(1500, 0)

CurrentX = CurrentX - 1500

Line -Step(-1000, 1000)

End Sub

3. Циліндр із зафарбованими гранями(Мал. 8).У процедурі, пов'язаній з таймером Timer1, запускається процедура малювання фігури Cylinder. На початку процедури задається значення π, очищується форма для малювання, обирається колір ліній і колір зафарбування (випадковий). Виконується малювання суцільних ліній, стиль ліній DrawStyle = 0, далі малюється пунктирною лінією нижній еліпс стилем DrawStyle = 1. Еліпс нижньої грані малюється пунктиром повністю, щоб було виконане зафарбовування.

Мал. 8.

Private Sub Cylinder()

Const Pi = 3.14

Cls

ForeColor = vbBlack

FillStyle = 0

FillColor = vbWhite * Rnd

DrawStyle = 0

Circle (2000, 1000), 1000, , , , 1 / 3

Line (1000, 1000)-(1000, 4000)

Line (3000, 1000)-(3000, 4000)

Circle (2000, 4000), 1000, , Pi, 2 * Pi, 1 / 3

DrawStyle = 1

Circle (2000, 4000), 1000, , , , 1 / 3

End Sub

Private Sub Timer1_Timer()

Cylinder

End Sub

4. Концентричні кола, колір яких змінюється за таймером(Мал. 9).Командна кнопка Command1 запускає таймер Timer1. У процедурі, пов'язаній з таймером Timer1, запускається процедура малювання 250 кіл CircleDraw. Кола випадкового кольору малюються у графічному вікні PictureBox на ім'я P. Координати центра кіл визначаються як половина ширини та висоти графічного вікна, радіус першого кола дорівнює x/3 і для кожного наступного збільшується на 10 твіпів.

Мал. 9.

Private Sub Command1_Click()

Timer1.Enabled = True

End Sub

Sub CircleDraw()

Dim r As Long, g As Long, b As Long

Dim x As Long, y As Long, rad As Long

Dim i As Integer

P.DrawStyle = 2

P.DrawWidth = 2

x = P.ScaleWidth / 2

y = P.ScaleHeight / 2

rad = x / 3

For i = 1 To 250

r = 255 * Rnd

g = 255 * Rnd

b = 255 * Rnd

P.Circle (x, y), rad, RGB(r, g, b)

rad = rad + 10

Next

End Sub

Private Sub Timer1_Timer()

CircleDraw

End Sub

5. Форма з командною кнопкою, що збільшує свій розмір після кожного клацання на ній.Процедура, пов'язана з формою, запускає процедуру CenterButton для центрування кнопки на ім'я C у формі та форми на екрані. CenterButton також перевіряє відстань від краю кнопки до краю форми, якщо ця відстань менше 500 твіпів, розміри форми збільшуються на 500. Процедура обробки події клацання на кнопці збільшує розміри кнопки на 300 твіпів і розмір шрифту на 3 пункти, в разі збільшення розмірів форми до величини «розмір екрана - 2000 твіпів» на екран виводиться MsgBox "Хватит!".

Private Sub C_Click()

If Screen.Height - Height < 2000 Or Screen.Width - Width < 2000 Then

MsgBox "Хватит!"

End

End If

C.Height = C.Height + 300

C.Width = C.Width + 300

C.FontSize = C.FontSize + 3

CenterButton

End Sub

Sub CenterButton()

If C.Left <= 500 Or C.Top <= 500 Then

Width = Width + 500

Height = Height + 500

End If

C.Left = (ScaleWidth - C.Width) / 2

C.Top = (ScaleHeight - C.Height) / 2

Left = (Screen.Width - Width) / 2

Top = (Screen.Height - Height) / 2

End Sub

Private Sub Form_Load()

CenterButton

End Sub


<== previous lecture | next lecture ==>
Приклад оформлення лабораторної роботи | Типи малюнків для виконання лабораторних робіт
lektsiopedia.org - 2013 год. | Page generation: 7.342 s.