title: Algorithm 3d orbiting camera control with mouse drag
body: <p>Please help, </p>
  
  <p>I couldn't find detailed explanation about this which is not language specific and not library dependent, because I want to control the math myself for some reason. </p>
  
  <p>How to create orbiting camera control with mouse, like middle-click drag in <strong>Google SketchUp</strong>?</p>
  
  <p><sub> * In Google SketchUp, the camera can move circularly orbiting imaginary object in the middle of the plane (<strong>not</strong> always 0,0,0) by dragging the mouse. It can orbit horizontally, vertically, even diagonally, all directions.</sub></p>