44矩阵的第4行第4列到底是个什么东西,还有透视除法是怎么得到近大远小的?
我知道这要多点文字解释。
请高手费点时间解释,你的十分钟可以省下至少我好几天的时间。
1 个解决方案
#1
看楼主近期发了几个帖子,都是跟opengl有关的
做三维的东西,你找些关于"齐次坐标"的资料看看
本来三维世界(三维坐标)的坐标变换,用3*3的矩阵已经可以描述了
平移就是 [x,y,z]'+[dx,dy,dz]' ([]'表示转置)
旋转和缩放就是 M×[x,y,z]' (M分别是对应的旋转缩放矩阵)
但是,这是平移和旋转要分别描述,一个加法,一个乘法.
齐次坐标就是为了解决三维坐标换问题的"统一"描述,
在齐次坐标中,平移,旋转,缩放这三个变换都可以统一用矩阵乘法来描述
关于4*4的变换矩阵中每一个元素对应的意义,你可以自己做一次(用笔记算,不要写代码)矩阵乘法
然后将结果的个分量写出来,你就会发现4*4的意义了,如果没有额外的第四个量w(也就是齐次坐标),那么这三种变换是无法统一使用矩阵乘法来解决的.
再给你3个图


做三维的东西,你找些关于"齐次坐标"的资料看看
本来三维世界(三维坐标)的坐标变换,用3*3的矩阵已经可以描述了
平移就是 [x,y,z]'+[dx,dy,dz]' ([]'表示转置)
旋转和缩放就是 M×[x,y,z]' (M分别是对应的旋转缩放矩阵)
但是,这是平移和旋转要分别描述,一个加法,一个乘法.
齐次坐标就是为了解决三维坐标换问题的"统一"描述,
在齐次坐标中,平移,旋转,缩放这三个变换都可以统一用矩阵乘法来描述
关于4*4的变换矩阵中每一个元素对应的意义,你可以自己做一次(用笔记算,不要写代码)矩阵乘法
|m00 m01 m02 m03| |x|
|m10 m11 m12 m13| \/ |y|
|m20 m21 m22 m23| /\ |z|
|m30 m31 m32 m33| |1|(如果是向量则是0)
然后将结果的个分量写出来,你就会发现4*4的意义了,如果没有额外的第四个量w(也就是齐次坐标),那么这三种变换是无法统一使用矩阵乘法来解决的.
再给你3个图



#1
看楼主近期发了几个帖子,都是跟opengl有关的
做三维的东西,你找些关于"齐次坐标"的资料看看
本来三维世界(三维坐标)的坐标变换,用3*3的矩阵已经可以描述了
平移就是 [x,y,z]'+[dx,dy,dz]' ([]'表示转置)
旋转和缩放就是 M×[x,y,z]' (M分别是对应的旋转缩放矩阵)
但是,这是平移和旋转要分别描述,一个加法,一个乘法.
齐次坐标就是为了解决三维坐标换问题的"统一"描述,
在齐次坐标中,平移,旋转,缩放这三个变换都可以统一用矩阵乘法来描述
关于4*4的变换矩阵中每一个元素对应的意义,你可以自己做一次(用笔记算,不要写代码)矩阵乘法
然后将结果的个分量写出来,你就会发现4*4的意义了,如果没有额外的第四个量w(也就是齐次坐标),那么这三种变换是无法统一使用矩阵乘法来解决的.
再给你3个图


做三维的东西,你找些关于"齐次坐标"的资料看看
本来三维世界(三维坐标)的坐标变换,用3*3的矩阵已经可以描述了
平移就是 [x,y,z]'+[dx,dy,dz]' ([]'表示转置)
旋转和缩放就是 M×[x,y,z]' (M分别是对应的旋转缩放矩阵)
但是,这是平移和旋转要分别描述,一个加法,一个乘法.
齐次坐标就是为了解决三维坐标换问题的"统一"描述,
在齐次坐标中,平移,旋转,缩放这三个变换都可以统一用矩阵乘法来描述
关于4*4的变换矩阵中每一个元素对应的意义,你可以自己做一次(用笔记算,不要写代码)矩阵乘法
|m00 m01 m02 m03| |x|
|m10 m11 m12 m13| \/ |y|
|m20 m21 m22 m23| /\ |z|
|m30 m31 m32 m33| |1|(如果是向量则是0)
然后将结果的个分量写出来,你就会发现4*4的意义了,如果没有额外的第四个量w(也就是齐次坐标),那么这三种变换是无法统一使用矩阵乘法来解决的.
再给你3个图


