Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ срСдствами языка программирования Visual Basic

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ срСдствами языка программирования Visual Basic". Obj. polygon (11).v_pointer (0) = 4: obj. polygon (11).v_pointer (1) = 7: obj. polygon (11).v_pointer (2) = 3. Obj. polygon (10).v_pointer (0) = 4: obj. polygon (10).v_pointer (1) = 3: obj. polygon (10).v_pointer (2) = 0. ΠšΠΠ€Π•Π”Π Π: АБОИиУ Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Obj. polygon (9).v_pointer (0) = 4: obj. polygon… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ срСдствами языка программирования Visual Basic (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΠΠ€Π•Π”Π Π: АБОИиУ Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

" Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ срСдствами языка программирования Visual Basic"

Π”ΡƒΡˆΠ°Π½Π±Π΅, 2009 Π³ΠΎΠ΄

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π Π°Π±ΠΎΡ‡Π΅ΠΉ Π€ΠΎΡ€ΠΌΡ‹

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠΈ)

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄)

Private FPS As Long

Private all_stop As Boolean

Private cube As Object3D

Private Sub Form_Load ()

Call LoadObject (cube)

all_stop = False

End Sub

Private Sub Form_Unload (Cancel As Integer)

all_stop = True

End Sub

Private Sub Timer1_Timer ()

'

Dim temp As Object3D

Dim ang As Single

'

Timer1. Enabled = False

Do

temp = cube

'

Me. Cls

Call ScaleObject (10, 10, 10, temp)

Call RotateObject (ang, -0.5, 0, temp)

Call TranslateObject (0, 0, 50, temp)

Call ProjectObject (temp, Me)

'

Call DisplayObject (temp, Me)

'

FPS = FPS + 1

'

ang = ang + 0.02: If ang > 6.282 Then ang = 0

'

DoEvents

'

Loop Until all_stop

'

End Sub

Private Sub Timer2_Timer ()

Me. Caption = «VB/3D — Tutorial #1 — FPS =» + Str$(FPS)

'

FPS = 0

'

End Sub

Private Type Vertex3D

'

x As Single

y As Single

z As Single

'

sx As Long

sy As Long

'

End Type

'

Private Type Polygon3D

'

v_pointer (2) As Long

'

colr As Long

'

End Type

'

Public Type Object3D

'

vertex () As Vertex3D

polygon () As Polygon3D

'

End Type

Public Sub LoadObject (obj As Object3D)

ReDim obj. vertex (7), obj. polygon (11)

obj.vertex (0).x = -1: obj. vertex (0).y = -1: obj. vertex (0).z = -1

obj.vertex (1).x = -1: obj. vertex (1).y = -1: obj. vertex (1).z = 1

obj.vertex (2).x = 1: obj. vertex (2).y = -1: obj. vertex (2).z = 1

obj.vertex (3).x = 1: obj. vertex (3).y = -1: obj. vertex (3).z = -1

obj.vertex (4).x = -1: obj. vertex (4).y = 1: obj. vertex (4).z = -1

obj.vertex (5).x = -1: obj. vertex (5).y = 1: obj. vertex (5).z = 1

obj.vertex (6).x = 1: obj. vertex (6).y = 1: obj. vertex (6).z = 1

obj.vertex (7).x = 1: obj. vertex (7).y = 1: obj. vertex (7).z = -1

obj.polygon (0).v_pointer (0) = 0: obj. polygon (0).v_pointer (1) = 2: obj. polygon (0).v_pointer (2) = 1

obj.polygon (0).colr = RGB (255, 0, 0)

obj.polygon (1).v_pointer (0) = 0: obj. polygon (1).v_pointer (1) = 3: obj. polygon (1).v_pointer (2) = 2

obj.polygon (1).colr = RGB (255, 0, 0)

obj.polygon (2).v_pointer (0) = 4: obj. polygon (2).v_pointer (1) = 0: obj. polygon (2).v_pointer (2) = 1

obj.polygon (2).colr = RGB (255, 0, 0)

obj.polygon (3).v_pointer (0) = 4: obj. polygon (3).v_pointer (1) = 1: obj. polygon (3).v_pointer (2) = 5

obj.polygon (3).colr = RGB (255, 0, 0)

obj.polygon (4).v_pointer (0) = 5: obj. polygon (4).v_pointer (1) = 1: obj. polygon (4).v_pointer (2) = 2

obj.polygon (4).colr = RGB (255, 0, 0)

obj.polygon (5).v_pointer (0) = 5: obj. polygon (5).v_pointer (1) = 2: obj. polygon (5).v_pointer (2) = 6

obj.polygon (5).colr = RGB (255, 0, 0)

obj.polygon (6).v_pointer (0) = 7: obj. polygon (6).v_pointer (1) = 2: obj. polygon (6).v_pointer (2) = 3

obj.polygon (6).colr = RGB (255, 0, 0)

obj.polygon (7).v_pointer (0) = 7: obj. polygon (7).v_pointer (1) = 6: obj. polygon (7).v_pointer (2) = 2

obj.polygon (7).colr = RGB (255, 0, 0)

obj.polygon (8).v_pointer (0) = 4: obj. polygon (8).v_pointer (1) = 5: obj. polygon (8).v_pointer (2) = 6

obj.polygon (8).colr = RGB (255, 0, 0)

obj.polygon (9).v_pointer (0) = 4: obj. polygon (9).v_pointer (1) = 6: obj. polygon (9).v_pointer (2) = 7

obj.polygon (9).colr = RGB (255, 0, 0)

obj.polygon (10).v_pointer (0) = 4: obj. polygon (10).v_pointer (1) = 3: obj. polygon (10).v_pointer (2) = 0

obj.polygon (10).colr = RGB (255, 0, 0)

obj.polygon (11).v_pointer (0) = 4: obj. polygon (11).v_pointer (1) = 7: obj. polygon (11).v_pointer (2) = 3

obj.polygon (11).colr = RGB (255, 0, 0)

'

End Sub

Public Sub DisplayObject (obj As Object3D, frm As Object)

Dim poly As Long

For poly = 0 To UBound (obj.polygon ())

Call DrawTriangle (obj, poly, frm)

Next

End Sub

Private Sub DrawTriangle (obj As Object3D, poly As Long, frm As Object)

Dim x0 As Long, y0 As Long

Dim x1 As Long, y1 As Long

Dim x2 As Long, y2 As Long

x0 = obj. vertex (obj.polygon (poly).v_pointer (0)).sx

y0 = obj. vertex (obj.polygon (poly).v_pointer (0)).sy

x1 = obj. vertex (obj.polygon (poly).v_pointer (1)).sx

y1 = obj. vertex (obj.polygon (poly).v_pointer (1)).sy

x2 = obj. vertex (obj.polygon (poly).v_pointer (2)).sx

y2 = obj. vertex (obj.polygon (poly).v_pointer (2)).sy

frm. Line (x0, y0) — (x1, y1), obj. polygon (poly).colr

frm. Line — (x2, y2), obj. polygon (poly).colr

frm. Line — (x0, y0), obj. polygon (poly).colr

End Sub

Public Sub ProjectObject (obj As Object3D, frm As Object)

Dim pnt As Long, dz As Single

For pnt = 0 To UBound (obj.vertex ())

dz = obj. vertex (pnt).z: If dz <= 0 Then dz = 0.001

obj.vertex (pnt).sx = (frm. ScaleWidth / 2) + ((obj.vertex (pnt).x * 300) / dz)

obj.vertex (pnt).sy = (frm. ScaleHeight / 2) + ((obj.vertex (pnt).y * 300) / dz)

Next

End Sub

Public Sub RotateObject (yaw As Single, pit As Single, rol As Single, obj As Object3D)

Dim pnt As Long

Dim x0 As Single, y0 As Single, z0 As Single

Dim x1 As Single, y1 As Single, z1 As Single

Dim x2 As Single, y2 As Single, z2 As Single

'

For pnt = 0 To UBound (obj.vertex ())

x0 = Cos (yaw) * obj. vertex (pnt).x + Sin (yaw) * obj. vertex (pnt).z

y0 = obj. vertex (pnt).y

z0 = Sin (yaw) * obj. vertex (pnt).x — Cos (yaw) * obj. vertex (pnt).z

x1 = x0

y1 = Cos (pit) * y0 + Sin (pit) * z0

z1 = Sin (pit) * y0 — Cos (pit) * z0

x2 = Cos (rol) * x1 + Sin (rol) * y1

y2 = Sin (rol) * x1 — Cos (rol) * y1

z2 = z1

obj.vertex (pnt).x = x2

obj.vertex (pnt).y = y2

obj.vertex (pnt).z = z2

Next

End Sub

Public Sub ScaleObject (xs As Single, ys As Single, zs As Single, obj As Object3D)

Dim pnt As Long

For pnt = 0 To UBound (obj.vertex ())

obj.vertex (pnt).x = obj. vertex (pnt).x * xs

obj.vertex (pnt).y = obj. vertex (pnt).y * ys

obj.vertex (pnt).z = obj. vertex (pnt).z * zs

Next

End Sub

Public Sub TranslateObject (tx As Long, ty As Long, tz As Long, obj As Object3D)

Dim pnt As Long

For pnt = 0 To UBound (obj.vertex ())

obj.vertex (pnt).x = obj. vertex (pnt).x + tx

obj.vertex (pnt).y = obj. vertex (pnt).y + ty

obj.vertex (pnt).z = obj. vertex (pnt).z + tz

Next

End Sub

Private FPS As Long

Private all_stop As Boolean

Private cube As Object3D

Private Sub Form_Load ()

Call LoadObject (cube)

all_stop = False

End Sub

Private Sub Form_Unload (Cancel As Integer)

all_stop = True

End Sub

Private Sub Timer1_Timer ()

'

Dim temp As Object3D

Dim ang As Single

'

Timer1. Enabled = False

Do

temp = cube

'

Me. Cls

Call ScaleObject (10, 10, 10, temp)

Call RotateObject (ang, -0.5, 0, temp)

Call TranslateObject (0, 0, 50, temp)

Call ProjectObject (temp, Me)

'

Call DisplayObject (temp, Me)

'

FPS = FPS + 1

'

ang = ang + 0.02: If ang > 6.282 Then ang = 0

'

DoEvents

'

Loop Until all_stop

'

End Sub

Private Sub Timer2_Timer ()

Me. Caption = «VB/3D — Tutorial #1 — FPS =» + Str$(FPS)

'

FPS = 0

'

End Sub

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Π‘озданию 3D — Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ срСдствами языка программирования Visual Basic, состоит ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ†ΠΈΠΊΠ»ΠΎΠ², Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ 3D-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ срСдствами Visual Basic 6.0, состоит ΠΈΠ· ΡΠΊΡ€Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… располоТСно 2 элСмСнта управлСния Timer (Timer1, Timer2)

Окно Π€ΠΎΡ€ΠΌΡ‹

Окно Ρ„ΠΎΡ€ΠΌΡ‹, часто Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ просто «Ρ„ΠΎΡ€ΠΌΠ°», являСтся Π³Π»Π°Π²Π½Ρ‹ΠΌ элСмСнтом прилоТСния. Π€ΠΎΡ€ΠΌΠ° прСдставляСт собой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для элСмСнтов управлСния. Π’ΠΎΡ‡ΠΊΠΈ сСтки Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ элСмСнтов ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ прилоТСния Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹. ΠŸΡ€ΠΈ запускС Visual Basic ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°ΡΡΡ Π½Π° ΡΠΊΡ€Π°Π½Π΅ Ρ„ΠΎΡ€ΠΌΠ° Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ элСмСнтов управлСния. ПослС Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ элСмСнта управлСния курсор ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ крСстика. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» элСмСнта управлСния, Π½Π°ΠΆΠ°Ρ‚ΡŒ Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ ΠΈ, Π½Π΅ ΠΎΡ‚пуская Π΅Π΅, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта. ПослС достиТСния Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ½ΠΎΠΏΠΊΠ° отпускаСтся ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ΅ появляСтся Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт управлСния.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ УправлСния Π’Π°ΠΉΠΌΠ΅Ρ€ (Timer)

НазначСниС

ИспользованиС Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ способом управлСния вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ процСссы прилоТСния Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΠΉΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСтся Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’ΠΎ Π²Ρ€Π΅ΠΌΡ проСктирования Ρ‚Π°ΠΉΠΌΠ΅Ρ€ отобраТаСтся Π² Ρ„ΠΎΡ€ΠΌΠ΅, Π½ΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ.

Бобытия

Π’Π°ΠΉΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ СдинствСнноС событиС — Timer, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ вызываСтся ΠΏΠΎ ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ установлСнного Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°.

Бвойства

Для установки ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ слуТит свойство Interval, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ устанавливаСтся Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ…. НапримСр, Π·Π°Π΄Π°Π½ΠΈΠ΅ значСния 250 Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ событиС Timer Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 250 миллисСкунд нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ. Для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° слСдуСт ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ свойству Interval Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ О ΠΈΠ»ΠΈ свойству Enabled Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False. Максимально допустимый ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» составляСт 64 757 миллисСкунд. Но ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ опСрационная систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 18,2 прСрывания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ, поэтому Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ задания ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° составляСт максимум ΠΎΠ΄Π½Ρƒ Π²ΠΎΡΠ΅ΠΌΠ½Π°Π΄Ρ†Π°Ρ‚ΡƒΡŽ сСкунды. НСобходимо Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ большой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ систСмы (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСти, ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΈ Ρ‚. ΠΏ.) прСрывания ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΅Ρ‰Π΅ Ρ€Π΅ΠΆΠ΅. Π’ Windows Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ использованиС Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 32 Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, Ρ‚ΠΎ Π΄Π»Ρ всСх ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ остаСтся максимум 31. Если ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события Timer длится дольшС, Ρ‡Π΅ΠΌ Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌinterval, Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ событиС Timer Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ся, ΠΏΠΎΠΊΠ° Visual Basic Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ это событиС.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ (Main 3D-Routines.bas)

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ 3D — Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ срСдствами Visual Basic 6.0, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ свои графичСскиС возмоТности прСдставлСния 3D — Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ