0

頭の中でこれを理解することはできないようです。3D 空間でオブジェクトを移動しようとしています。

5,15,5 にポイントがあり、opengl 関数を使用してモデル ビューを変更すると....

glTranslatef( 10.0f, 4.0f, 4.0f );
glRotatef( 33.0f, 1.0f, 0.0f, 0.0f );
glTranslatef( 10.0f, 4.0f, 4.0f );

そのポイントがどこにあるのかを知る方法はありますか (ワールド/グローバル座標で)? 20,26,23 (または新しい座標位置が何であるか) を返す何らかの行列計算を行うことはできますか?

助けてください、私はこれに長い間立ち往生してきました!

4

2 に答える 2

4

次のことを試してください。

1) 現在のマトリックスをスタックにプッシュします。2) ID を読み込み、変換を適用します。3) 結果の変換行列を一時変数に取得します。glGet またはそのようなものが役立ちます。4) スタックからマトリックスをポップします。

これで変換行列ができました。ポイントにこの行列を掛けて、変換後のポイントの座標を予測します。

于 2009-10-22T15:28:10.157 に答える
0

間違いなく: http://research.cs.queensu.ca/~jstewart/454/notes/pipeline/をチェックしてください

つまり、これらの呼び出しはすべて1つの行列になり、ポイントに乗算されます。

SadSidoの方法では、結果のマトリックスが確実に得られますが、舞台裏で何が起こっているのかを実際に理解することは害にはならないかもしれません。上記の計算により、次の線形代数方程式が得られます。

pOut = [mTranslate] * [mRotate] * [mTranslate] * pIn

ここで、mTranslate =平行移動呼び出し(平行移動の行列)、およびmRotate =回転呼び出し(任意の軸を中心とした回転の行列)です。それを計算してください、そしてあなたは行ってもいいです!

于 2009-10-22T15:37:08.657 に答える