2017-11-02 5 views
2

私は投影、modelviewとmodelviewprojectionマトリックスを持っています...私のopenglオブジェクトレンダリングも値でうまく動作します。modelviewと投影行列からスクリーン座標を計算する方法は?

これを画面座標に変換したいのですが...この行列から画面座標を取得するにはどうすればよいですか?

float[] modelView = target.getViewMatrix(); 
float[] projection = target.getProjectionMatrix(); 
float[] modelViewprojection = target.getModelViewProjectionMatrix(); 
int[] view = {0,0,(int)screenWidth, (int)screenHeight}; 
float x = screenWidth/2, y = screenHeight/2, z = 0.01f; 
float[] pos = new float[4]; 
GLU.gluProject(x, y, z, 
     modelView, 0, 
     projection, 0,view, 0, 
     pos, 0); 
float xpoint = convertPixelsToDp(pos[0],this); 
float ypoint = convertPixelsToDp(pos[1],this); 

私は、画面上の安定したxとyのポイントを得るために他の方法があり、それは私に、xとyのポイントを与えているが、彼らはあまりにも多くの

変動しているコードの上にしようとしましたか?

+0

>「これをスクリーン座標に変換したい」 * this *はどういう意味ですか、正確に何をしようとしていますか? – rotoglup

+0

こんにちは@rotoglupこれは、私はmodelView、投影とmodelViewprojection行列と頂点を持っていることを意味します...私はこの画面から画面の点(x、yの位置)を取得したい – pritam001

+0

ちょうど確認するには: MVP行列**を使用してピクセル単位の座標を表示する**あなたが 'gluProject'への入力として 'ピクセル座標'を渡すように見えるかどうかわかりません。 – rotoglup

答えて

0

API呼び出しが間違っています。

https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluProject.xml

あなたはどのようなライブラリを使用している:

GLU.gluProject(x, y, z, modelView, 0, projection, 0,view, 0, pos, 0);

パラメータの順序は同じに見えないのですか?

+0

こんにちは...私は、ネイティブのアンドロイドOpenGLESを使用していますpublic static int gluProject(float objX、float objY、float objZ、float [] model、int modelOffset、float []プロジェクト、int projectOffset、 int [] view、int viewOffset、float [] win、int winOffset)これは私が使用している関数です – pritam001

関連する問題