物体をマウスで掴んでいるような回転や、
物体を特定の方向(別の物体)に向かせる
といった計算はどのように行えばいいのでしょうか。

例えばマウスで掴んでいるような回転をしたいと思ったときに
マウスのボタンを押した座標と現在の座標の差を
rx, ryとしたときに、単純に

glRotate( ry, 1.0, 0.0, 0.0 );
glRotate( rx, 0.0, 1.0, 0.0 );

としてみたのですが、X軸を中心に半回転すると
Y軸の回転が逆になってしまったりして
マウスで掴んだような表現ができません。