So that basically means that the amount of projection is arbitrary. How wide and whatnot things are along with how much perspective is just randomly chosen?
There's nothing random about it. In the model I showed you, you had one parameter to play with, namely the distance to the projection plane. Another way to look at it is that changing this distance also changes the field of view of your projection.
Let's say you render the interval [-1, 1] of the projection plane into your video window. In the sketch above, this interval corresponds to the black horizontal line between the two red lines. Everything that falls outside of this interval lies outside your field of view. Let's abbreviate the field of view angle, that is, the angle between the two red lines, by fov. Then, by the definition of the tangent, we have
tan(fov / 2) = 1 / Bz,
where Bz is again the distance to the projection plane. You can now use this equation to either express Bz,
Bz = 1 / tan(fov / 2),
or fov,
fov = 2 * atan(1 / Bz).
So, in any case it's just one parameter that you can freely choose, either Bz or fov, but this gives you an easy way to convert between the two. As you move the projection plane closer, that is, make Bz smaller, the field of view angle increases, and vice versa.
(I just sort of winged it with the formulae, so sorry if I messed any of them up.)
For 3D rotation and matrix algebra, I feel this would be too long-winded to explain in a post here, but there should be lots of tutorials out there which explain this kind of stuff. Here's a random one I just googled:
http://chortle.ccsu.edu/VectorLessons/vectorIndex.htmlIf you have any particular questions, though, feel free to ask.