3D程序开发数学基础之向量
1、向量的基本概念
http://baike.baidu.com/view/77260.htm
2、向量的加法
设有两个向量 a=(x1, y1, z1), b=(x2,y2,z2)
那么 a+b=(x1+x2, y1+y2, z1+z2),
向量a的长度:
|a| = ;
3、向量的数量积(内积,点积)
4、向量的向量积(外积,叉积)
5、三个向量的混合积
3D程序开发数学基础之矩阵
以下内容来自http://www.tongji.edu.cn/~math/xxds/kcja/kcja_a/01.htm,如果对你有帮助可以到其网站上查看其它基础知识。
一、矩阵的基本概念
矩阵,是由个数组成的一个行列的矩形表格,通常用大写字母表示,组成矩阵的每一个数,均称为矩阵的元素,通常用小写字母其元素表示,其中下标都是正整数,他们表示该元素在矩阵中的位置。比如,或表示一个矩阵,下标表示元素位于该矩阵的第行、第列。元素全为零的矩阵称为零矩阵。
特别地,一个矩阵,也称为一个维列向量;而一个矩阵,也称为一个维行向量。
当一个矩阵的行数与烈数相等时,该矩阵称为一个阶方阵。对于方阵,从左上角到右下角的连线,称为主对角线;而从左下角到右上角的连线称为付对角线。若一个阶方阵的主对角线上的元素都是,而其余元素都是零,则称为单位矩阵,记为,即:。如一个阶方阵的主对角线上(下)方的元素都是零,则称为下(上)三角矩阵,例如,是一个阶下三角矩阵,而则是一个阶上三角矩阵。今后我们用表示数域上的矩阵构成的集合,而用或者表示数域上的阶方阵构成的集合。
二、矩阵的运算
1、矩阵的加法:如果是两个同型矩阵(即它们具有相同的行数和列数,比如说),则定义它们的和仍为与它们同型的矩阵(即),的元素为和对应元素的和,即:。
给定矩阵,我们定义其负矩阵为:。这样我们可以定义同型矩阵的减法为:。由于矩阵的加法运算归结为其元素的加法运算,容易验证,矩阵的加法满足下列运算律:
( 1)交换律: ;
( 2)结合律: ;
( 3)存在零元: ;
( 4)存在负元: 。
2 、数与矩阵的乘法:
设为一个数,,则定义与的乘积仍为中的一个矩阵,中的元素就是用数乘中对应的元素的道德,即。由定义可知:。容易验证数与矩阵的乘法满足下列运算律:
(1);
(2);
(3);
(4)。
3、矩阵的乘法:
设为距阵,为距阵,则矩阵可以左乘矩阵(注意:距阵德列数等与矩阵的行数),所得的积为一个距阵,即,其中,并且。
据真的乘法满足下列运算律(假定下面的运算均有意义):
( 1)结合律: ;
( 2)左分配律: ;
( 3)右分配律: ;
( 4)数与矩阵乘法的结合律: ;
( 5)单位元的存在性: 。
若为阶方阵,则对任意正整数,我们定义:,并规定:由于矩阵乘法满足结合律,我们有:,。
注意:矩阵的乘法与通常数的乘法有很大区别,特别应该注意的是:
(1)矩阵乘法不满足交换律:一般来讲即便有意义,也未必有意义;倘使都有意义,二者也未必相等(请读者自己举反例)。正是由于这个原因,一般来讲,,。
(2)两个非零矩阵的乘积可能是零矩阵,即未必能推出或者(请读者自己举反例)。
(3)消去律部成立:如果并且,未必有。
4 、矩阵的转置:
定义:设为矩阵,我们定义的转置为一个矩阵,并用表示的转置,即:。矩阵的转置运算满足下列运算律:
(1);
(2);
(3);
(4)。
5、对称矩阵:
定义1.11阶方阵若满足条件:,则称为对称矩阵;若满足条件:,则称为反对称矩阵。若设,则为对称矩阵,当且仅当对任意的成立;为反对称矩阵,当且仅当对任意的成立。从而反对称局针对角线上的元素必为零。对称矩阵具有如下性质:
(1)对于任意矩阵,为阶对称矩阵;而为阶对称矩阵;
(2)两个同阶(反)对称矩阵的和,仍为(反)对称矩阵;
(3)如果两个同阶(反)对称矩阵可交换,即,则它们的乘积必为对称矩阵,即。
glLoadIdentity和glMultMatrix
glMultMatrix矩阵的乘法.
如:
glLoadIdentity();
glMultiMatrix(A);
glMultiMatrix(B);
glMultiMatrix(C);
针对行向量和当前矩阵,上述代码可等价于:
(vx vy vz 1) *C*B*A
结果是一个1行4列的矩阵。