话说几何忘得可真快,想当初最爱解几何题了.....当初线性代数,全班挂了10几个,我还考了78,没想到这忘的差不多了。
言规正传,现在一边看3D的数学知识,一边学习怎么通过Matrix把物体在3D的世界进行漂亮的变换,以下记录自己的心得,以便加深记忆。
1、从简单的来了,Matrix的加法
加法满足的运算律:
A + B = B + A
A + B + C = A + ( B + C )
A + 0 = A
A + ( -A ) = ( -A ) + A = 0
我们知道通过D3DXMatrixTranslation函数能指定x,y,z平移的距离
D3DXMATRIXA m_MatrixA;
D3DXMatrixTranslation(&m_MatrixA, x, y, z);
得到的m_MatrixA如下:
1, 0, 0, 0;
0, 1, 0, 0;
0, 0, 1, 0;
x, y, z, 1;
如果一个mesh要放置的x,y,z上,只需要设置
SetTransform( D3DTS_WORLD, &m_MatrixA ),
那么,mesh上的每个vector都会乘以m_MatrixA,物体就会移动到(x,y,z)点上
vector(a,b,c,1)*m_MatrixA = vector(a+1*x, b +1*y, c + 1*z, 1);
物体不停移动时,可以累计加相同的矩阵
2.Matrix的减法
A-B不一定等于B-A,应该说绝大多数时候都不是不等的
A-B = - ( B - A)
其他不多说了,差不多跟加法很相似
待续
.