4

(250,125、-20)にポイントがあるとします。次の変換の後、

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(100.0, 50.0, 0.0);
glRotatef(-25.0, 0.0, 1.0, 0.0);    

そのポイントの現在の座標の値を取得するにはどうすればよいですか?行列をベクトルに乗算するためのサブルーチンを作成する必要がありますか?組み込みのソリューションはありますか?

4

1 に答える 1

7

変換後に特定の頂点(ポイント)の座標を取得することはできませんが、この特定のケースでは、変換/回転が適用された後にModelViewMatrixを取得できます。

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(100.0, 50.0, 0.0);
glRotatef(-25.0, 0.0, 1.0, 0.0);  

glGetFloatv(GL_MODELVIEW_MATRIX , *your_matrix*);
//print your matrix to check if that is the desired transformation coordinates

OpenGLには魔法のテープはありません。独自のフレームワークを作成する必要があります。たとえば、世界のすべてのオブジェクトについて、頂点を保持するクラスと、関連性があると思われるデータを記述します。

于 2011-04-08T14:10:35.173 に答える