Can this be acheived simply or should I go away and read a book on vector graphics?
I think you don't need to read the book. Try.
Qt Code:
  1. QPoint p = somePoint;
  2. QPoint transformedPoint = painter->matrix().map( p );
To copy to clipboard, switch view to plain text mode 
But theoretically applying the zoom factor should work too, as long as you don't use the translation and rotation part of the painter's transfrom matrix by calling translate(), rotate() or shear(). But i'm not a math expert, too - so maybe i'm wrong here.