2011-11-07 6 views
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

このトラックボールは、画面中央を中心とします。さて、私はそれをスクリーン上のどこにでも集中させたいと思っています。既存のコードにセンターロジックを組み込むにはどうすればよいですか?マウス座標の正規化は、中心の導入によってどのように変化するのですか?

答えて

1

これは、マウス座標を変換することで簡単に達成できます。最初のチュートリアルの開始時にマウス座標を変換するときは、指定した範囲-1..1.1に変換するのではなく、最初にトラックボールを作成する画面の中心からオフセットを減算しますセンター。トラックボールの中央を右に50ピクセル、中央に20ピクセル上にするには、

MousePt.X = ((MousePt.X-50) /Width)*2)-1; 
MousePt.Y = ((MousePt.X-20) /Height)*2)-1; 
関連する問題