游戏编程 向量

游戏编程 向量

ID:34568887

大小:397.14 KB

页数:38页

时间:2019-03-08

游戏编程 向量_第1页
游戏编程 向量_第2页
游戏编程 向量_第3页
游戏编程 向量_第4页
游戏编程 向量_第5页
资源描述:

《游戏编程 向量》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、向量几何在游戏编程中的使用页码,1/38向量几何在游戏编程中的使用-Twinsen编编编写编写写写AndreLamothe说:“向量几何是游戏程序员最好的朋友”。一点不假,向量几何在游戏编程中的地位不容忽视,因为在游戏程序员的眼中,显示屏幕就是一个坐标系,运动物体的轨迹就是物体在这个坐标系曲线运动结果,而描述这些曲线运动的,就是向量。使用向量可以很好的模拟物理现象以及基本的AI。<1>简单的的的2-D追追追踪追踪踪踪AndreLamothe说:“向量几何是游戏程序员最好的朋友”。一点不假,向量几何在游戏编程中的地位不容忽视

2、,因为在游戏程序员的眼中,显示屏幕就是一个坐标系,运动物体的轨迹就是物体在这个坐标系曲线运动结果,而描述这些曲线运动的,就是向量。使用向量可以很好的模拟物理现象以及基本的AI。现在,先来点轻松的,复习一下中学知识。。。。向量v(用粗体字母表示向量)也叫矢量,是一个有大小有方向的量。长度为1的向量称为单单单单位位位位向量,也叫幺幺幺矢幺矢矢矢,这里记为E。长度为0的向量叫做零向量,记为0,零向量没有确定方向,换句话说,它的方向是任意的。一、向量的基本运算1、向量加法:::a+b等于使b的始点与a的终点重合时,以a的始点为始点

3、,以b的终点为终点的向量。2、向量减法:a-b等于使b的始点与a的始点重合时,以b的终点为始点,以a的终点为终点的向量。3、数量乘向量:k*a,k>0时,等于a的长度扩大k倍;k=0时,等于0向量;k<0时,等于a的长度扩大

4、k

5、倍然后反向。4、向量的内积(数量积、点积):a.b=

6、a

7、*

8、b

9、*cosA等于向量a的长度乘上b的长度再乘上a与b之间夹角的余弦。它的几何意义就是a的长度与b在a上的投影长度的乘积,或者是b的长度与a在b上投影长的乘积,它是一个标量,而且可正可负。因此互相垂直的向量的内积为0。1向量几何在游戏编

10、程中的使用页码,2/385、向量的矢积(叉积):axb=

11、a

12、*

13、b

14、*sinA*v=c,

15、a

16、是a的长度,

17、b

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

19、交的,正交向量的内积为零。a.b=

20、a

21、.

22、b

23、*cos(PI/2)=

24、a

25、.

26、b

27、*0=0。二、向量的性质没有下面的这些性质做基础,我们后面向量技巧的推导将无法进行。1)a+b=b+a2)(a+b)+c=a+(b+c)3)a+0=0+a=a4)a+(-a)=05)k*(l*a)=(k*l)*a=a*(k*l)6)k*(a+b)=k*a+k*b7)(k+l)*a=k*a+l*a8)1*a=a9)a.b=b.a10)a.(b+c)=a.b+a.c11)k*(a.b)=(k*a).b=a.(k*b)12)0.a=013)a.a

28、=

29、a

30、^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的线性组合。

31、i

32、=

33、j

34、=12、向量的代数(分量)表示的运算:向量加法分量表示:a+b=(xa,ya)+(xb,yb)=

35、(xa+xb,ya+yb)向量减法分量表示:a-b=(xa,ya)-(xb,yb)=(xa-xb,ya-yb)向量的内积(数量积、点积)分量表示:a.b=(xa*i+ya*j).(xb*i+yb*j)=xa*i*xb*i+xa*i*yb*j+ya*j*xb*i+ya*j*yb*j=(xa*xb)*(i*i)+(xa*yb)*(i*j)+(xb*ya)*(i*j)+(ya*yb)*(j*2向量几何在游戏编程中的使用页码,3/38j)=xa*xb+ya*yb3、向量长度(模)的计算以及单位化(归一化):设a=(x,y),则

36、a

37、

38、=

39、(x,y)

40、=

41、x*i+y*j

42、=sqrt(x^2*i^2+y^2*j^2)=sqrt(x^2+y^2),这里sqrt是开平方符号。a的单位向量为a/

43、a

44、,即(x,y)/sqrt(x^2+y^2)。四、简单的2-D追踪现在,有了向量的基本知识,我们就可以分析一个常见的问题-屏幕上一点到另一点的追

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。