opengl:如何计算变换矩阵?

时间:2014-07-25 20:15:22

标签: opengl geometry linear-algebra

我需要计算opengl变换矩阵,它将矩形A,B,C,D转换为多边形A',B,C,D(与第一个不同,为1点)。
我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

首先,您需要将问题正式化。你有一个矩阵M和4个点,可以转换为另外4个点。

M*A = A'
M*B = B
M*C = C
M*D = D

每一行都可以写成4个方程式。例如:

M11*A1 + M12*A2 + M13*A3 + M14*A4 = A'1
M21*A1 + M22*A2 + M23*A3 + M24*A4 = A'2
...

因此,您可以获得16个线性方程式,可以通过高斯消除法求解。 http://en.wikipedia.org/wiki/Gaussian_elimination

答案 1 :(得分:0)

感谢您的回答。

我实现了你的解决方案,但不幸的是它找到了一个通用的转换矩阵,并不总是仿射转换(我需要)。

我终于使用opencv :: estimateAffine3D http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#estimateaffine3d

解决了我的问题