I've been trying to make a small program that would move dots through simulated 3d space. Mainly for stuff like a starfield program or cool looking explosions and stuff...



VB Code:
  1. Sub Movement (X,Y,Z,Speed,Angle1, Angle2)
  2. 'angle 1 is xy, angle2 is yz (supposedly)
  3. X = X + Speed* Sin(Angle1) * Cos(Angle2) 'second one.. not sure
  4. Y = Y + Speed * Cos(Angle1) * Cos(Angle2) '2nd again..
  5. Z = Z + Speed * *Cos(Angle1) * Sin(Angle2) '???? no idea
  6. End sub
  7.  
  8. Sub Placement (X,Y,Z)
  9. 'This assumes your viewpoint doesn't move
  10.  
  11. AngleXY = Angle from 0,0 to X,Y '(I have a proven function for
  12. angles)
  13. AngleXZ = 0,0 to X,Z
  14. AngleYZ = 0,0 to Y,Z
  15.  
  16. 'A^2 + B^2 = C^2
  17. Diagonal = Sqr((X^2) + (Y^2)) 'get distance on x,y
  18. Distance = Sqr((Diagonal^2) + (Z^2))
  19. 'Get total distance between view and point
  20. TrueAngle = anglesub(0,0,Diagonal,Z)
  21. 'Angle from 0,0 to diagonal,z (duh)
  22.  
  23. TargetX = 320 + (((TrueAngle) / 90) * 320) * Sin(AngleXY)
  24. TargetY = 240 + (((TrueAngle) / 90) * 320) * Cos(AngleXY)
  25. 'Use trueangle to decide where stuff will go
  26.  
  27. 'blabla, set size of object here
  28.  
  29. Circle(TargetX, TargetY), Size, Color
  30. Paint(TargetX, TargetY), Color
  31. End Sub

Btw, it's in Qbasic, but it's so similar you probably can't tell except at the end