I understand what you are telling me and I even have an idea how to make it with primitives, BUT, here is another problem: how to mark axes with text (x axis, yaxis... like in picture above). Those lines will be moving all the time, how to make axis marks (text) to move with their axis arrows?
This is normally done by defining a point in object space of your axes model that you want the text to be located at. Then you can use your transformation and projection matrices to find that location in screen space. Once you have the location in screen space, then you can use your normal text rendering system to put the text in the appropriate place. If you haven't done any manual projection of vertices before, you can check out a 'picking' tutorial for the details, as it uses much the same technique.
I hope that helps!