3D游戏部分基础数学知识整理笔记1

详细内容参看《3D游戏编程大师技巧》或更专业的数学书籍。
1.很多图形算法都以这样的方式进行优化:在第一象限中解决问题,根据对称性将解决方案反射到其他象限。
2.2D笛卡尔坐标(Cartesian Coordinates)用(x,y)形式标示一个点,2D极坐标(polar coordinates)用(距离,角度)形式标示一个点。
3.2D极坐标转为2D笛卡尔坐标,x=距离*cos(角度),y=距离*sin(角度)。
4.2D笛卡尔坐标转为2D极坐标,距离=sqrt(x^2 + y^2),角度=tan^-1(y/x)。
5.2D极坐标,游戏Wolfenstein和光线投射技术的基础。坐标变换对于很多有关弹道、瞄准和导航的问题很重要。
6.3D笛卡尔坐标,三条轴构成三个平面:x-y、x-z、y-z,每个平面都将空间分成两个半空间,三个平面就分成了8个卦限(octans)。
7.3D笛卡尔坐标分左手坐标系(LHS,简单理解为z正方向指向屏幕内)和右手坐标系(RHS,简单理解为z正方向指向屏幕外)。
8.3D柱面坐标(cylindrical coordinate)在2D极坐标的基础上增加了一条z轴。(射击游戏控制相机、环境映射)
9.3D球面坐标使用两个角度和到原点的距离来定义点。两角分别是正z轴的夹角,2D极角。
10.以a代表某希腊字母,一些三角恒等式:
 正割:csc(a)=1/sin(a)
 余割:sec(a)=1/cos(a)
 余切:cot(a)=1/tan(a)
 勾股定理:sin(a)^2+cos(a)^2=1
 转换恒等式:sin(a)=cos(a-PI/2)
 反射恒等式:
  sin(-a)=-sin(a)
  cos(-a)=cos(a)
 角度相加恒等式:
  sin(a1+a2)=sin(a1)*cos(a2)+cos(a1)*sin(a2)
  cos(a1+a2)=cos(a1)*cos(a2)-sin(a1)*sin(a2)
  sin(a1-a2)=sin(a1)*cos(a2)-cos(a1)*sin(a2)
  cos(a1-a2)=cos(a1)*cos(a2)+sin(a1)*sin(a2)
11.应避免求角度,很慢。
12.矩阵平移、旋转、缩放等组合操作,可转为多个正弦和余弦等旋转变换的组合。不应盲目使用通用矩阵乘法。
13.向量可以表示速度、加速度等。向量被定义后,总是相对于原点的。
14.向量长度(范数norm)是各分量平方和的平方根。|u|
15.向量归一化(normalize),向量除以其长度。
16.点积u.v = ux * vx + uy * vy(标量)
 u.v = |u|*|v|*cos(a)
17.点积用来求夹角,夹角=cos^-1((u.v)/(|u|*|v|))
 u和v之间夹角是直角则点积为0
 u和v之间夹角是锐角则点积>0
 u和v之间夹角是钝角则点积<0
18.点积作用之一,计算向量在给定方向上的分量(投影)
 v必须被归一化。
 u在v上的投影:Projv u = ((u.v)*v)/(|v|*|v|)
19.点积满足的乘法定律
 u.v=v.u
 u.(v+w)=(u.v+u.w)
 k标量:k*(u.v)=(k*u).v=(u.(k*v))

至pdf page159...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值