title: How does zooming, panning and rotating work?
body: <p>Using OpenGL I'm attempting to draw a primitive map of my campus.</p>
  
  <p>Can anyone explain to me how panning, zooming and rotating is usually implemented?</p>
  
  <p>For example, with panning and zooming, is that simply me adjusting my viewport?  So I plot and draw all my lines that compose my map, and then as the user clicks and drags it adjusts my viewport?  </p>
  
  <p>For panning, does it shift the x/y values of my viewport and for zooming does it increase/decrease my viewport by some amount?  What about for rotation?</p>
  
  <p>For rotation, do I have to do affine transforms for each polyline that represents my campus map?  Won't this be expensive to do on the fly on a decent sized map?</p>
  
  <p>Or, is the viewport left the same and panning/zooming/rotation is done in some otherway?</p>
  
  <hr>
  
  <p>For example, if you go to this <a href="http://www.codeproject.com/KB/GDI-plus/maps_map_net_gis.aspx?display=Print" rel="noreferrer">link</a> you'll see him describe panning and zooming exactly how I have above, by modifying the viewport.</p>
  
  <p>Is this not correct? </p>