51Testing软件测试论坛

标题: 向量几何在游戏编程中的使用(五) [打印本页]

作者: 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]

  可以看出,矩阵相乘可以进行的条件是第一个矩阵的列数等于第二个矩阵的行数。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2