我有一个用于2D齐次坐标的3x3变换矩阵:
a b c
d e f
g h i
我想在2D应用程序中将其传递给OpenGL(使用glMultMatrix
),但OpenGL需要4x4矩阵用于3D齐次坐标。我希望通过我的4x4矩阵转换的所有坐标最终得到x
和y
与3x3矩阵和z=0
相同。
我试图解决这个问题。对于向量x, y, 1
,我最终会得到转换后的向量ax + by + c, dx + ey + f, gx + hy + i
,这意味着对于向量x, y, 0, 1
,我希望最终得到转换后的向量{{1} }。一个可以做到这一点的矩阵(据我所知):
ax + by + c, dx + ey + f, 0, ?
这是对的吗?它有用吗?我不认为这是唯一能给出我正在寻找的结果的矩阵,但我不太明白第三和第四行(和第四列)应该或不应该去做什么。
答案 0 :(得分:2)
如果您希望z坐标为0
,则必须传递零行。另外,在最后一行中包含透视部分:
a b 0 c
d e 0 f
0 0 0 0
g h 0 i