You can think of a vector as an arrow defined by x,y,z coordinates. The starting point is the origin. If i have a vector to the point 1,0,1 then i have an “arrow” pointing 45 degrees on the XZ plane (which in your program would be the ocean). The magnitude of the vector can be thought of as the length, or strength, of the arrow.
It sucks you have to do all this after only recently learning trig functions since alot of this is basic Physics, which you probably won’t get to until junior or senior year! However, knowing what a vector is now, you also should know that it is possible to multiply 2 vectors together to get a vector as a result.
For instance if i take the vector 0,0,1 (which would be pointing straight up the z axis starting at the origin) and multiply it by 1,0,0 (pointing along the x axis starting at the origin) and their magnitudes are the same, then I will end up with 1,0,1 the same 45 degree angle vector i mentioned before!
Again, do a search online for “cross product”, “basic physics”, “vector arithmetic”, etc.
to move your object just
glPushMatrix();
glTranslatef( x, y, z );
glRotatef( angle, 1.0f, 0.0f, 0.0f );
glRotatef( angle, 0.0f, 0.0f, 1.0f );
…
//code to build ship
…
glPopMatrix();
this will move whatever distance you specify with glTranslatef along x, y and z. Then it will rotate everything on the x axis by the angle you give. Then you will rotate everything on the z axis by the angle you give. now your ship will be drawn in the correct place and at the correct angle!