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:
Sub Movement (X,Y,Z,Speed,Angle1, Angle2)
'angle 1 is xy, angle2 is yz (supposedly)
X = X + Speed* Sin(Angle1) * Cos(Angle2) 'second one.. not sure
Y = Y + Speed * Cos(Angle1) * Cos(Angle2) '2nd again..
Z = Z + Speed * *Cos(Angle1) * Sin(Angle2) '???? no idea
End sub
Sub Placement (X,Y,Z)
'This assumes your viewpoint doesn't move
AngleXY = Angle from 0,0 to X,Y '(I have a proven function for
angles)
AngleXZ = 0,0 to X,Z
AngleYZ = 0,0 to Y,Z
'A^2 + B^2 = C^2
Diagonal = Sqr((X^2) + (Y^2)) 'get distance on x,y
Distance = Sqr((Diagonal^2) + (Z^2))
'Get total distance between view and point
TrueAngle = anglesub(0,0,Diagonal,Z)
'Angle from 0,0 to diagonal,z (duh)
TargetX = 320 + (((TrueAngle) / 90) * 320) * Sin(AngleXY)
TargetY = 240 + (((TrueAngle) / 90) * 320) * Cos(AngleXY)
'Use trueangle to decide where stuff will go
'blabla, set size of object here
Circle(TargetX, TargetY), Size, Color
Paint(TargetX, TargetY), Color
End Sub
Btw, it's in Qbasic, but it's so similar you probably can't tell except at the end