Analytic geometry in 3D can be quite complex if you keep thinking on sines and cosines. I prefer using rotation matrices for this. (Okay, I think GM doesn't support matrices, but usually 3D engines for C++ come with matrix classes)
So, if you want to rotate a vector (ex.: the speed of the player) in t degrees in the XY plane, you have to multiply it by a matrix
[cos(t) -sin(t) 0]
Q = [sin(t) cos(t) 0]
[0 0 1]
This rotation is recursive, so for instance - if you want to rotate it in 2t degrees you have to multiply it by Q*Q. If you want to rotate it on a specific plane, you do an orthogonal base change, multiply it by Q, and revert your base change, so your rotation matrix is B*Q*(B^-1). Anyway, there are many things you can do with matrices that are easier than dealing directly with sines and cosines, you just have to learn the proper methods.
But for 2D sines and cosines don't get so complicated so you don't need to recur to matrices. If you have a vector
[ x]
v = [ y]
the length is r = sqrt(x^2 + y^2)
the angle is t = atan2(y,x)
and the sine, cosine and tangent of the angle are respectively x/r, y/r and y/x.
Also,
x = r*cost
y = r*sint
So if you have x and y you can get t and r, and if you have t and r you can get x and y. You just have to apply the formulae.