欢迎来到天天文库
浏览记录
ID:13049401
大小:228.50 KB
页数:19页
时间:2018-07-20
《《游戏编程数学与物理基础》学习笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、点和直线点的表示:在2D平面上用一个2元组表示(x,y)在3D位置上用一个3元组表示(x,y,z)记得要统一x,y,z轴的起点和方向。直线的属性:斜率斜率slope=性质①斜率相等的两条直线平行②斜率为负值,表示直线沿左上角到右下角延伸③斜率为正值,表示直线沿左下角到右上角延伸④斜率为0,直线为水平线,和x轴平行⑤分母为0,表示直线为垂直型,和y轴平行⑥相互垂直的直线斜率的积为-1直线的标准表示是Ax+By=C,斜率为m=-A/B斜截式是y=mx+b,斜率为m点斜式是(y–y1)=m(x–x1),斜率为m对于同一平面上的两条直线组成的线性方程组,其解的情
2、况如下:①如果两直线的斜率不相等,则有一组解,该解为两直线交点;②如果两直线的斜率以及在y轴上的截距相等,则有无穷组解,即两直线重叠;③如果两直线的斜率以及在y轴上的截距不相等,则无解,即两直线平行。相关几何知识1两点间的距离在人工智能程序中,智能体可以通过判断敌人与自己的距离来决定发动攻击的时机。2D场景中的距离公式:设点P1(x1,y1)和P2(x2,y2)分别为线上的点,他们的距离d的计算方法如下:3D场景中的距离公式:2两点的中点坐标设有点P1(x1,y1)和P2(x2,y2),两点的中点P3的坐标是:3抛物线抛物线总是轴对称的。有两个因素决定了
3、抛物线的形状,第一是顶点,是抛物线的与对称轴的交点;第二个是对称轴。抛物线有2种形状,一种是对称轴垂直,一种是对称轴水平。对称轴垂直的抛物线方程:y=a(x-h)2+k顶点是(h,k),对称轴为x=h对称轴水平的抛物线方程:x=a(y–k)2+h顶点是(h,k),对称轴为y=k常数a代表了抛物线的开口方向和开口大小。如果a是正数,对于y=a(x-h)2+k的抛物线来说开口向上,对于x=a(y–k)2+h的抛物线来说开口向右。如果a是负数,对于y=a(x-h)2+k的抛物线来说开口向下,对于x=a(y–k)2+h的抛物线来说开口向左。a的绝对值越大,开口越
4、小。4圆和球圆是所有到定点长度等于定长的点的集合,这个定长称为半径,定点称为圆心。圆的方程:(x-h)2+(y-k)2=r2圆心是(h,k),半径是r球是一个圆绕着圆心旋转所得到的。球体的方程:(x-h)2+(y-k)2+(z-l)2=r2圆心是(h,k,l),半径是r使用方程时应注意圆心坐标的正负号。5在碰撞检测中的应用可以在游戏中利用圆或球的边界进行碰撞检测。当然也可以利用其他图形。不过圆和球都可以方便地进行数学计算,它们在检测的速度上也优于其他图形。虽然精确度不高,但是可以作为外围检测。两圆之间,如果两圆心的距离小于两圆的半径和,即发生碰撞。设两圆
5、方程分别为:(x–h1)2+(y–k1)2=r12和(x–h2)2+(y–k2)2=r22。如果:,则两圆发生碰撞。由于开方运算会占用大量的处理器资源,所以建议使用平方进行比较。利用圆边界进行碰撞检测是一种较快的方法,但是极有可能会产生错误的碰撞检测结果,所以避免错误的方法是寻找一种更适合的图形来检测。只要这个图形可以用数学公式表示出来。也可以使用多重圆形进行多重检测,先检测外面的圆,如果发生碰撞则检测内部的圆,减小错误判断的几率。但多重检测会消耗更多的CPU时间。三角函数1角度和弧度每个角都由相交于一点的两条射线组成,我们把其中一条射线称为始边,另一条
6、称为终边。而角的始边总是沿着x轴的正方向。从x轴正方向开始,沿逆时针方向进行旋转的角称为正角,沿顺时针方向旋转的角称为负角,注意该旋转也将决定了终边的位置。一个周角是360。,也可以表示成。这是角度和弧度之间进行转换的基础。角度转换成弧度公式:角度×=弧度注意:①R只是个单位符号②对于C++中所有的三角函数,比如sin()、cos()、tan()等它们都是以弧度值作为输入的;因此在处理角度的时候,我们可以在函数开头用#define定义一个宏,完成弧度和角度的互换。#defineRadToDeg57.29577951f#defineDegToRad0.01
7、7453293f只需把角度×DegToRad即可得到相应的弧度,或弧度×RadToDeg即可得到相应角度。弧度转换成角度公式:弧度×=角度2三角函数所有的三角函数都是直角三角形中定义的。cabα常用角度的三角函数值(角度)(弧度)sincostan0001030/60.5=0.866=0.577445/4=0.7071=0.7071160/3=0.8660.590/210不可算1202/3=0.866-0.5-1800-102703/2-10不可算3600010在真正进入游戏主循环之前,可以建立一个三角函数的查找表,这样在游戏中需要用到三角函数值的时候就
8、不用重新计算,只需进行查表工作就可以,大大加快运行速度。插入代码角的正弦值在第一
此文档下载收益归作者所有