I agree with zaza about where we should start. However we still need to decide what the end product is going to look like so that we can work toward that goal.

Here is how I picture the end product is going to be used. I'f I'm way off base then say so.
Something like this
VB Code:
  1. Dim myPhysics As clsDirectPhysics
  2. Set myPhysics = New clsDirectPhysics
  3.  
  4. 'add bodies
  5. Dim myBody As clsDPBody
  6. Set myBody = New clsDPBody
  7.  
  8. With myBody
  9.     .Mass = 10 'kg
  10. 'set initial coordinates and velocity
  11.     With .Rectangular
  12.         .X = 100000 'm
  13.         .Y = 200000 'm
  14.         .Z = 0 'm
  15.         .Vx = 1000 'm/s
  16.         .Vy = 500 'm/s
  17.         .Vz = 0
  18.     End With
  19.  
  20. 'Alternatively we could use spherical or cylindrical coordiantes
  21.     With .Spherical
  22.         .Radius = 223607 'm
  23.         .Theta = 0.463 'radians
  24.         .phi = 0
  25.     End With
  26.  
  27. End With
  28. myPhysics.Bodies.Add myBody
  29.  
  30. With myBody
  31.     .Mass = 1000000 'kg
  32. 'set initial coordinates and velocity
  33.     With .Rectangular
  34.         .X = 0
  35.         .Y = 0
  36.         .Z = 0
  37.         .Vx = 0 'm/s
  38.         .Vy = 0 'm/s
  39.         .Vz = 0
  40.     End With
  41. End With
  42. myPhysics.Bodies.Add myBody
  43.  
  44.  
  45. 'use a gravitational force
  46. Dim Force1 As clsGravity
  47. Set Force1 = New clsGravity
  48.  
  49. myPhysics.Forces.Add Force1
  50. Set Force1 = Nothing
  51.  
  52. 'add a frictional force
  53. Dim Force2 As clsFriction
  54. Set Force2 = New clsFriction
  55. Force2.Coeffecient = 0.5
  56.  
  57. myPhysics.Forces.Add Force2
  58. Set Force2 = Nothing
  59.  
  60.  
  61.  
  62. 'time step
  63. Dim DeltaT As Single
  64. DeltaT = 0.001 's
  65.  
  66.  
  67. With myPhysics
  68.  
  69.     'generate new coordinates
  70.     .Advance DeltaT
  71.  
  72.  
  73.     'see new coordinates
  74.     With .Bodies(0).Rectangular
  75.         Debug.Print .X
  76.         Debug.Print .Y
  77.     End With
  78.  
  79. End With