1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| Option Explicit
Dim X(8) As Integer
Dim y(8) As Integer
Private Const Pi = 3.14159265358979
Dim CenterX As Integer
Dim CenterY As Integer
Private Const SIZE = 250
Dim Radius As Integer
Dim CubeCorners(1 To 8, 1 To 3) As Integer
Dim I As Integer
Dim Angle As Integer
Private Sub Form_Load()
Me.ScaleMode = vbPixels
Me.AutoRedraw = True
Me.WindowState = vbMaximized
Angle = 0
Command1.Move 0, 0, 80, 20
Command1.Caption = "GO"
CenterX = ScaleWidth / 2
CenterY = ScaleHeight / 2
Radius = Sqr(2 * (SIZE / 2) ^ 2)
CubeCorners(1, 2) = SIZE / 2
CubeCorners(2, 2) = SIZE / 2
CubeCorners(3, 2) = -SIZE / 2
CubeCorners(4, 2) = -SIZE / 2
CubeCorners(5, 2) = SIZE / 2
CubeCorners(6, 2) = SIZE / 2
CubeCorners(7, 2) = -SIZE / 2
CubeCorners(8, 2) = -SIZE / 2
End Sub
Private Sub Command1_Click()
DrawCube
End Sub
Private Sub DrawCube()
Me.Cls
For I = 1 To 3 Step 2
CubeCorners(I, 3) = Radius * Cos(Pi / 180)
CubeCorners(I, 1) = Radius * Sin((Angle) * Pi / 180)
Next
For I = 2 To 4 Step 2
CubeCorners(I, 3) = Radius * Cos((2 * 45) * Pi / 180)
CubeCorners(I, 1) = Radius * Sin((2 * 45) * Pi / 180)
Next
For I = 5 To 7 Step 2
CubeCorners(I, 3) = Radius * Cos((6 * 45) * Pi / 180)
CubeCorners(I, 1) = Radius * Sin((6 * 45) * Pi / 180)
Next
For I = 6 To 8 Step 2
CubeCorners(I, 3) = Radius * Cos((4 * 45) * Pi / 180)
CubeCorners(I, 1) = Radius * Sin((4 * 45) * Pi / 180)
Next
For I = 1 To 8
X(I) = CenterX + CubeCorners(I, 1) + Sgn(CubeCorners(I, 1)) * CubeCorners(I, 3)
y(I) = CenterY + CubeCorners(I, 2) + Sgn(CubeCorners(I, 2)) * CubeCorners(I, 3) / 5
Next
Line (X(3), y(3))-(X(4), y(4))
Line (X(4), y(4))-(X(8), y(8))
Line (X(3), y(3))-(X(7), y(7))
Line (X(7), y(7))-(X(8), y(8))
Line (X(1), y(1))-(X(3), y(3))
Line (X(1), y(1))-(X(2), y(2))
Line (X(5), y(5))-(X(6), y(6))
Line (X(5), y(5))-(X(1), y(1))
Line (X(5), y(5))-(X(7), y(7))
Line (X(2), y(2))-(X(4), y(4))
Line (X(2), y(2))-(X(6), y(6))
DoEvents
End Sub |
Partager