0

以下の 2 つのチュートリアルを使用して、Java でトラックボールを正常に実装しました。

  1. http://nehe.gamedev.net/tutorial/arcball_rotation/19003
  2. http://www.java-tips.org/other-api-tips/jogl/arcball-rotation-nehe-tutorial-jogl-port.html

このトラックボールは画面中央に配置されます。今、私はそれを画面上の任意の点に配置したいと考えています。センター ロジックを既存のコードに組み込むにはどうすればよいですか? 中心の導入により、マウス座標の正規化はどのように変化しますか?

4

1 に答える 1

1

これは、マウス座標を変換することで簡単に実現できます。最初のチュートリアルの開始時に行ったようにマウス座標を変換するときは、-1..1 の範囲に指定されたとおりに変換するのではなく、最初に、トラックボールを作成する画面の中心からオフセットを差し引きます。中心。したがって、トラックボールの中心を右に 50 ピクセル、中心から 20 ピクセル上にするには、次のようにします。

MousePt.X  =  ((MousePt.X-50) /Width)*2)-1;
MousePt.Y  =  ((MousePt.X-20) /Height)*2)-1;
于 2011-11-10T20:34:04.240 に答える