3

2D 同次座標の 3x3 変換行列があります。

a b c
d e f
g h i

これを 2D アプリケーションで ( を使用して) OpenGL に渡したいのglMultMatrixですが、OpenGL は 3D 同次座標に 4x4 行列を使用します。x4x4 マトリックスによって変換されたすべての座標が、3x3 マトリックスとy同じになるようにしたいと思いz=0ます。

私はそれを解決しようとしました。ベクトルの場合、変換されたベクトルで終わるので、ベクトルの場合x, y, 1、変換されたベクトルで終わることをax + by + c, dx + ey + f, gx + hy + i意味します。これを行う1つのマトリックスは(私が知る限り):x, y, 0, 1ax + by + c, dx + ey + f, 0, ?

a b 0 c
d e 0 f
0 0 1 0
0 0 0 1

これは正しいです?それは機能しますか?これが私が探している結果を与える唯一のマトリックスではないと思いますが、3 行目と 4 行目 (および 4 列目) に何を入れるべきか、または入れるべきでないかはよくわかりません。

4

1 に答える 1

4

z 座標を にしたい場合は0、ゼロ行を渡す必要があります。また、最後の行に透視部分を含めます。

a b 0 c
d e 0 f
0 0 0 0
g h 0 i
于 2015-07-30T10:47:56.543 に答える