2014-07-25 86 views
0

我需要计算opengl变换矩阵,它将矩形A,B,C,D变换成多边形A',B,C,D(与第一个1点不同)。
我该怎么做?opengl:如何计算变换矩阵?

+1

这通常不是一个线性变换,所以我不认为它可以表示为一个变换矩阵。 –

+0

@RetoKoradi是的,没有变换矩阵也可以表示非线性变换,但不是所有变换矩阵,直到有可能的程度,比如达里提出的回答他的 – Spektre

回答

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

+0

只需要加上:如果这个系统的方程那么矩阵就存在(并且系数是解),否则它不能被变换矩阵求解并且需要更高阶的多项式。而不是GEM,我会使用jus逆矩阵 – Spektre