3D-Stars in a Form

By | 2002-06-01

Draws a nice 3D-Starfield in a Form (uses X,Y,Z positions)
width a very short code
Shades each star depending on the distance.

Original Author: Mikael Rickan

Assumptions

Create an Timer for the form called Timer1

Side Effects

None (maybe some flickering)

API Declarations

Code

'
Dim X(100), Y(100), Z(100) As Integer
Dim tmpX(100), tmpY(100), tmpZ(100) As Integer
Dim K As Integer
Dim Zoom As Integer
Dim Speed As Integer
Private Sub Form_Activate()
Speed = -1
K = 2038
Zoom = 256
Timer1.Interval = 1
For i = 0 To 100
  X(i) = Int(Rnd * 1024) - 512
  Y(i) = Int(Rnd * 1024) - 512
  Z(i) = Int(Rnd * 512) - 256
Next i
End Sub
Private Sub Timer1_Timer()
For i = 0 To 100
  Circle (tmpX(i), tmpY(i)), 5, BackColor
  Z(i) = Z(i) + Speed
  If Z(i) > 255 Then Z(i) = -255
  If Z(i) < -255 Then Z(i) = 255
  tmpZ(i) = Z(i) + Zoom
  tmpX(i) = (X(i) * K / tmpZ(i)) + (Form1.Width / 2)
  tmpY(i) = (Y(i) * K / tmpZ(i)) + (Form1.Height / 2)
  Radius = 1
  StarColor = 256 - Z(i)
  Circle (tmpX(i), tmpY(i)), 5, RGB(StarColor, StarColor, StarColor)
  
Next i
End Sub

Author: dwirch

Derek Wirch is a seasoned IT professional with an impressive career dating back to 1986. He brings a wealth of knowledge and hands-on experience that is invaluable to those embarking on their journey in the tech industry.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.