首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
 您现在的位置: 中国IT实验室 >> 游戏开发 >> 游戏开发文档 >> 正文
向量几何在游戏编程中的使用(一)
来源:ChinaItLab 作者:佚名 时间:2007-5-10

  <1>简单的2-D追踪-Twinsen编写

  -本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-我的Email-address: popyy@netease.com

  Andre Lamothe说:“向量几何是游戏程序员最好的朋友”。一点不假,向量几何在游戏编程中的地位不容忽视,因为在游戏程序员的眼中,显示屏幕就是一个坐标系,运动物体的轨迹就是物体在这个坐标系曲线运动结果,而描述这些曲线运动的,就是向量。使用向量可以很好的模拟物理现象以及基本的AI.

  现在,先来点轻松的,复习一下中学知识。

  向量v(用粗体字母表示向量)也叫矢量,是一个有大小有方向的量。长度为1的向量称为单位向量,也叫幺矢,这里记为E.长度为0的向量叫做零向量,记为0,零向量没有确定方向,换句话说,它的方向是任意的。

  一、向量的基本运算

  1、向量加法:a+b等于使b的始点与a的终点重合时,以a的始点为始点,以b的终点为终点的向量。

  2、向量减法:a-b等于使b的始点与a的始点重合时,以b的终点为始点,以a的终点为终点的向量。

  3、 数量乘向量:k*a,k>0时,等于a的长度扩大k倍;k=0时,等于0向量;k<0时,等于a的长度扩大|k|倍然后反向。

  4、向量的内积(数量积、点积): a.b=|a|*|b|*cosA 等于向量a的长度乘上b的长度再乘上a与b之间夹角的余弦。

  它的几何意义就是a的长度与b在a上的投影长度的乘积,或者是b的长度与a在b上投影长的乘积,它是一个标量,而

  且可正可负。因此互相垂直的向量的内积为0.

  5、向量的矢积(叉积): a x b = |a|*|b|*sinA*v = c, |a|是a的长度,|b|是b的长度,A是a和b之间的锐夹角,v是与a,b所决定的平面垂直的幺矢,即axb与a、b都垂直。a,b,c构成右手系,即右手拇指伸直,其余四指按由a到b的锐角蜷曲,此时拇指所指方向就是c的方向。因此axb!=bxa,bxa是手指朝b到a的锐角蜷曲时,拇指指向的方向,它和c相反,即-c.a x b的行列式计算公式在左右手坐标系下是不同的,如上图所示。两个向量的矢积是一个向量。

  6、正交向量的内积:互相垂直的两个向量是正交的,正交向量的内积为零。a.b = |a|.|b|*cos(PI/2) = |a|.|b|*0 = 0.

  二、向量的性质

  没有下面的这些性质做基础,我们后面向量技巧的推导将无法进行。

  1) a + b = b + a

  2) (a + b) + c = a + (b + c)

  3) a + 0 = 0 + a = a

  4) a + (-a) = 0

  5) k*(l*a) = (k*l)*a = a*(k*l)

  6) k*(a + b) = k*a + k*b

  7) (k + l)*a = k*a + l*a

  8) 1*a = a

  9) a.b = b.a

  10)a.(b + c) = a.b + a.c

  11)k*(a.b) = (k*a)。b = a.(k*b)

  12)0.a = 0

  13)a.a = |a|^2

  三、自由向量的代数(分量)表示

  1、向量在直角坐标中的代数表示方法:

  a=(x,y)

  其中x,y分别是向量在x轴和y轴上的分量。任何一个在直角坐标轴上的分量为(x,y)的向量都相等。比如上图中的每个向量都表示为(-2,1)。

  或者写成a=x*i+y*j,即i和j的线性组合,这里i是x轴方向的单位向量(1,0),j是y轴方向的单位向量(0,1),因此i正交于j.任意一个2-D向量都可以表成i与j的线性组合。

  |i| = |j| = 1

[1] [2] 下一页

【责编:Kittoy】

中国IT教育热线咨询

相关文章
网络游戏的数据传输处理和防火墙穿透
新网游设计—(四)补充
新网游设计—(三)游戏概况
游戏开发工程实现方法理念
通过游戏策划阶段防治游戏外挂
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
 基础入门  开发文档
 最新推荐
  多数的Windows程序都需要Windows.h和Windowsx.h这两个头文件,要确保使用它们。当然,你还需要其它......
游戏引擎演化史
在Windows上安装OGRE的方法
关于滤镜遮罩概念,Sobel 遮罩
游戏开发新手入门之Windows编程
游戏开发新手入门之位图化图形
教你实现卡通渲染的另类勾边方法
游戏设计大师谈如何成为一名游戏设
Visual C#编写 3D游戏框架示例
真正的 Java 学习从入门到精通
游戏开发经验——游戏开发的基本常
  为什么要研究攻击行为在人类有记载的5600年的历史中,共计发生了14,400次战争;今天,平均一天要发生............
游戏开发中显示对话的特殊句法
游戏原型设计的介绍
网络游戏中的攻击行为
谈动作类游戏的必要条件
规则的多元分析模式
载入位图文件到DirectDraw
Archer Game Suite 是什么?
浅谈游戏企划-新手入门篇
暴雪称霸游戏业界的六大秘密绝招
骨骼动画及示例Skinned Mesh的解析
  培训中心