I have a camera set up to move through a scene. This camera can rotate around the x axis (look up and down), or can rotate around the y axis (look left and right), and also move back and forth or strafe left or right.

Lets say I have a line that goes straight up from (0,0,0) to (0,10,0). When the camera is not rotated around the x axis, in other words when it is looking straight ahead and not up or down, the line appears parellel to the sides of the screen. When I look up or down the line begins to slant. Can anyone explain this phenomenon? How can I calculate the amount the line is slanting?

I need to be able to take a point like (0,15,0) and draw a line to the 'ground' and have it appear parallel to the sides of the screen. So for example, maybe my camera has a 45 degree rotation around the y axis (left/right) and a 30 degree rotation around the x axis (up/down), how can I draw a line from (0,15,0) to the ground and have it look parallel to the screen? What would the coordinates be for the bottom point on the line? How do I calculate something like that?

Any insight into this would be appreciated.