02-19-2024, 11:22 PM
Here's driving down a road at night. I just kinda fudged the 3D stuff.
Code: (Select All)
Dim x(200), y(200)
scr = _ScreenImage
Hpix = _Width(scr)
Vpix = _Height(scr)
_FreeImage scr
x(0) = 0
y(0) = 0
For i = 1 To 100
x(i) = x(i - 1) + .4
y(i) = y(i - 1) + .2
Next i
_Title "Telephone Poles"
Screen _NewImage(Hpix, Vpix, 12)
_FullScreen
Do While InKey$ <> Chr$(27)
For i = 1 To 7
Call Centerline(Hpix, Vpix)
Call PoleLeft(x(i), Hpix, Vpix)
Call PoleRight(y(i), Hpix, Vpix)
Next i
Call throttle
Loop
End
Sub throttle
_Delay .07
End Sub
Sub Centerline (Hpix, Vpix)
Line (Hpix / 2, Vpix / 2)-(.1 * Hpix, Vpix), 14
Line (Hpix / 2, Vpix / 2)-(.125 * Hpix, Vpix), 14
Line (Hpix / 2, Vpix / 2)-(0, .8 * Vpix), 7
Line (Hpix / 2, Vpix / 2)-(Hpix, .8333 * Vpix), 7
End Sub
Sub PoleLeft (x, Hpix, Vpix)
If x >= Hpix Then x = 5
If x >= 0 Then
a = Hpix / 2 - x
b = Vpix / 2 - x / 2
c = Vpix / 2 + x / 3
d = Vpix / 2 - x / 3
Line (a, b)-(a, c), 0
Circle (a, (b + c) / 2), x / 35, 0
Circle (a, (b + c) / 2), x / 45, 0
Circle (a, (b + c) / 2), x / 55, 0
Circle (a, (b + c) / 2), x / 65, 0
Circle (a, (b + c) / 2), x / 75, 0
Line (a - x / 8, b)-(a + x / 8, b), 0
Line (a - x / 8, d)-(a + x / 8, d), 0
End If
x = x ^ 1.02 + .005
If x >= 0 Then
a = Hpix / 2 - x
b = Vpix / 2 - x / 2
c = Vpix / 2 + x / 3
d = Vpix / 2 - x / 3
Line (a, b)-(a, c), 8
Circle (a, (b + c) / 2), x / 35, 15
Circle (a, (b + c) / 2), x / 45, 15
Circle (a, (b + c) / 2), x / 55, 15
Circle (a, (b + c) / 2), x / 65, 15
Circle (a, (b + c) / 2), x / 75, 15
Line (a - x / 8, b)-(a + x / 8, b), 8
Line (a - x / 8, d)-(a + x / 8, d), 8
End If
End Sub
Sub PoleRight (x, Hpix, Vpix)
Rem IF x >= Hpix THEN x = 6
If x >= Hpix Then x = 4
If x >= 0 Then
a = Hpix / 2 + x
b = Vpix / 2 - x / 2
c = Vpix / 2 + x / 3
d = Vpix / 2 - x / 3
Line (a, b)-(a, c), 0
Circle (a, (b + c) / 2), x / 35, 0
Circle (a, (b + c) / 2), x / 45, 0
Circle (a, (b + c) / 2), x / 55, 0
Circle (a, (b + c) / 2), x / 65, 0
Circle (a, (b + c) / 2), x / 75, 0
Line (a - x / 8, b)-(a + x / 8, b), 0
Line (a - x / 8, d)-(a + x / 8, d), 0
End If
x = x ^ 1.02 + .005
If x >= 0 Then
a = Hpix / 2 + x
b = Vpix / 2 - x / 2
c = Vpix / 2 + x / 3
d = Vpix / 2 - x / 3
Line (a, b)-(a, c), 8
Circle (a, (b + c) / 2), x / 35, 12
Circle (a, (b + c) / 2), x / 45, 12
Circle (a, (b + c) / 2), x / 55, 12
Circle (a, (b + c) / 2), x / 65, 12
Circle (a, (b + c) / 2), x / 75, 12
Line (a - x / 8, b)-(a + x / 8, b), 8
Line (a - x / 8, d)-(a + x / 8, d), 8
End If
End Sub
