用矩阵来运算向量与点的平移
用4*4的矩阵来描述向量与点:
1.为什么要用4*4的矩阵,而不是3*3的矩阵呢?
因为在3D世界中,描述一个点至少需要3个维度,如果使用3个维度来描述向量或者点,
那么点与向量就没法区别对待,但是点平移与向量平移是不同的,点平移要改变,向量
平移不变,所以,需要扩展为4*4的。
2.如果使用4*4的矩阵来描述一个点 or向量:
点A = [x,y,z,w],向量B = [a,b,c,w]
由以前的篇幅可知,一个矩阵乘以单位矩阵结果不变,那么我们用单位矩阵C来乘以 A /B.
[x,y,z,w] *[1,0,0,0 ] x*1+y*0+z*0+w*0 =x
0,1,0,0 x*0+y*1+z*0+w*0 =y
0,0,1,0 x*0+y*0+z*1+w*0 =z
0,0,0,1 x*0+y*0+z*0+w*1 =w
同时,将点A移动一段距离,假设移动向量N = [α,β,γ,δ],根据以前知识可知,结果为两个向量
相加,A+N =[x+α,y+β,z+γ,w+1]
那么乘以这样的向量N'
[x,y,z,w] *[1,0,0,0 ] x*1+y*0+z*0+w*α =x+w*α
0,1,0,0 x*0+y*1+z*0+w*β =y+w*β
0,0,1,0 x*0+y*0+z*1+w*γ =z+w*γ
α,β,γ,1 x*0+y*0+z*0+w*1 =w
从此次可知,只要w =0,那么位移一段距离也不会改变A,如果w =1,那么就会改变位置,所以可以描述
向量。