标题: 向量几何在游戏编程中的使用(五) [打印本页] 作者: 51testing 时间: 2007-11-14 16:03 标题: 向量几何在游戏编程中的使用(五) <5>物体的旋转 -Twinsen编写
-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教
-我的Email-address: popyy@netease.com
欢迎回来这里!此次我们要讨论向量的旋转问题,包括平面绕点旋转和空间绕轴旋转两部分。对于游戏程序员来说,有了向量的旋转,就代表有了操纵游戏中物体旋转的钥匙,而不论它是一个平面精灵还是一组空间的网格体亦或是我们放在3-D世界某一点的相机。我们仍需借助向量来完成我们此次的旅程,但这还不够,我们还需要一个朋友,就是矩阵,一个我们用来对向量进行线性变换的GooL GuY.就像我们刚刚提及向量时所做的一样,我们来复习一下即将用到的数学知识。(这部分知识我只会一带而过,因为我将把重点放在后面对旋转问题的分析上) 一、矩阵的基本运算及其性质
对于3x3矩阵(也叫3x3方阵,行列数相等的矩阵也叫方阵)m和M,有
1、矩阵加减法
m +(-) M =
[a b c] [A B C] [a+(-)A b+(-)B c+(-)C]
[d e f] +(-) [D E F] = [d+(-)D e+(-)E f+(-)F]
[g h i] [G H I] [g+(-)G h+(-)H i+(-)I]
性质:
1)结合律 m + (M + N) = (m + M) + N
2) 交换律 m + M = M + m
2、数量乘矩阵
k x M =
[A B C] [kxA kxB kxC]
k x [D E F] = [kxD kxE kxF]
[G H I] [kxG kxH kxI]
性质:
k和l为常数
1) (k + l) x M = k x M + l x M
2) k x (m + M) = k x m + k x M
3) k x (l x M) = (k x l) x M
4) 1 x M = M
5) k x (m x M) = (k x m) x M = m x (k x M)
3、矩阵乘法
m x M =
[a b c] [A B C} [axA+bxD+cxG axB+bxE+cxH axC+bxF+cxI]
[d e f] x [D E F] = [dxA+exD+fxG dxB+exE+fxH dxC+exF+fxI]
[g h i] [G H I] [gxA+hxD+ixG gxB+hxE+ixH gxC+hxF+ixI]