トラックボールの回転、ズーム、パンからユーザーを抽象化する C++ クラスを設計しました。回転 (トラックボールを使用) とズームが期待どおりに機能しています。ただし、パンは期待どおりに動作しません。ポイントをピックしてドラッグすると、ドラッグを終了しても、ピックしたポイントが引き続きマウスの下にあると思います。透視投影でのパンについての私の理解は次のとおりです。ターゲットとカメラの位置、両方がパン操作の影響を受けます。カメラのターゲットとカメラの位置 (目) は、ドラッグに比例して移動する必要があります。比例性 (一定でない場合があります) は、Z 深度に基づく必要があります。
パンニングは、正投影では簡単ですが、遠近法では問題が生じます。OpenGL の数学と実装の詳細を説明できると便利です。