Transcript Slide 1

12. VISUAL BASIC İLE ANİMASYON
Öteleme Hareketi
Hareket eden kütle
Dim ndelay As Integer
Sub delay()
For k1 = 1 To ndelay * 50000
xx = Exp(-1.5)
Next k1
End Sub
Private Sub Command1_Click()
Dim x0 As Integer
Dim xi As Single
ndelay = 5
xmax = 100: ymax = 100
Form1.Scale (0, ymax)-(xmax, 0)
xi = xmax / 100
For x0 = 0 To xmax Step xi
Form1.Line (x0 + 5, 50)-(x0 + 10, 55), , BF
Call delay
Form1.Refresh
Next x0
End Sub
Dönme Hareketi
O
Dönen kütle
Private Sub Command2_Click()
Dim t, teta, dteta, pi, x2, y2 As Single
r2 = 1
r0 = 30
ndelay = 5
pi = 3.141592
ny = 73
dteta = 2 * pi / (ny - 1)
xmin = -50: ymin = -50
xmax = 50: ymax = 50
Form1.Scale (xmin, ymax)-(xmax, ymin)
c0 = QBColor(2)
Form1.FillColor = c0
Form1.FillStyle = 0
Form1.DrawWidth = 5
For teta = 0 To 2 * pi Step dteta
Form1.Cls
x2 = r0 * Cos(teta)
y2 = r0 * Sin(teta)
Form1.Circle (0, 0), r2 / 4
Form1.Line (0, 0)-(x2, y2)
Form1.Circle (x2, y2), r2, c0
Call delay
Next teta
End Sub
Krank-Biyel Mekanizmasının Hareketi
R
L
2
XB
R = 30
L = 90
XB = L - R ^ 2 / (4 * L) + R * (Cos(2) + R / (4 * L) * Cos(2 * 2))
Private Sub Command1_Click()
R = 30: L = 90: K = 0
ny = 73
tetai = (2 * pi) / (ny - 1)
Picture1.Scale (-R, R)-(2 * R + L, -R)
Do
For teta2 = 0 To 2 * pi Step tetai
XA = R * Cos(teta2)
YA = R * Sin(teta2)
Picture1.Line (0, 0)-(XA, YA), RGB(255, 0, 0)
Picture1.Circle (0, 0), R / 10, RGB(255, 0, 0)
Picture1.Circle (XA, YA), R / 10, RGB(255, 0, 0)
XB = L - R ^ 2 / (4 * L) + R * (Cos(teta2) + R / (4 * L) * Cos(2 * teta2))
Picture1.Circle (XB, 0), R / 10, RGB(255, 0, 0)
Picture1.Line (XA, YA)-(XB, 0), RGB(255, 0, 0)
Picture1.Line (XB - R / 2, R / 2)-(XB + R, -R / 2), RGB(0, 0, 255), B
ndelay = 2: nc = 1000000: For i = 1 To nc * ndelay: Next i
Picture1.Refresh
DoEvents
If k = 1 Then
Picture1.Line (0, 0)-(XA, YA), RGB(255, 0, 0)
Picture1.Circle (0, 0), R / 10, RGB(255, 0, 0)
Picture1.Circle (XA, YA), R / 10, RGB(255, 0, 0)
Picture1.Circle (XB, 0), R / 10, RGB(255, 0, 0)
Picture1.Line (XA, YA)-(XB, 0), RGB(255, 0, 0)
Picture1.Line (XB - R / 2, R / 2)-(XB + R, -R / 2), RGB(0, 0, 255), B
Exit Do
End If
Next teta2
Loop
End Sub
Dim k As Integer
Const pi = 3.141592
Dim nc As Long, ndelay As Integer
Private Sub Form_Load()
Picture1.DrawWidth = 9
Picture1.FillStyle = 7
Picture1.FillColor = RGB(0, 255, 0)
End Sub
Private Sub Command2_Click()
K=1
End Sub
General Declerations