如何将 2D 变换矩阵(对于齐次坐标)转换为 z=0 平面中的 3D?

How do I convert a 2D transformation matrix (for homogeneous coordinates) into 3D in the z=0 plane?

我有一个二维齐次坐标的 3x3 变换矩阵:

a b c
d e f
g h i

我想在 2D 应用程序中将其传递给 OpenGL(使用 glMultMatrix),但 OpenGL 将 4x4 矩阵用于 3D 齐次坐标。我希望由我的 4x4 矩阵转换的所有坐标以 xy 结束,与 3x3 矩阵和 z=0.

相同

我已经尝试解决了。对于向量 x, y, 1,我最终会得到转换后的向量 ax + by + c, dx + ey + f, gx + hy + i,这意味着对于向量 x, y, 0, 1,我希望最终得到转换后的向量 ax + by + c, dx + ey + f, 0, ? ].一个可以做到这一点的矩阵是(据我所知):

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

这是正确的吗?它有效吗?我不认为这是唯一能给出我正在寻找的结果的矩阵,但我不太明白第三行和第四行(以及第四列)应该或不应该放什么。

如果您希望 z 坐标为 0,则必须传递一个零行。另外,在最后一行包括透视部分:

a b 0 c
d e 0 f
0 0 0 0
g h 0 i