动画教程(六)

碰撞检测

既是物体之间的交互运动。这需要确定物体间何时发生了碰撞。
原理:两个物体或几个物体是否有在同一时间内某个部分处在了同一位置上。


拿来一个物体,绕着它画一个矩形。用矩形包围物体就是我们所熟知的矩形边界
确认使两个物体分开的最小距离,再看看当前距离,比较两者的大小。


基本的多物体碰撞检测方法

var numObjects:uint = 10;  
for (var i:uint = 0; i < numObjects ‐ 1; i++) { 
  //  使用变量  i 提取引用 
  var objectA = objects[i]; 
  for (var j:uint = i+1; j<numObjects; j++) { 
  //使用变量  j  提取引用 
  var objectB = objects[j]; 
  //在  objectA  与  objectB  之间进行碰撞检测 
  }
}


坐标旋转

如果物体要绕着某一点旋转,并且以物体本身的位置作为旋转的起点,这个公式只需要给出物体距离中心点的相对 x,y 坐标和旋转的角度。它就会返
回物体相对于中心点的新的坐标位置。
x1 = cos(angle) * x - sin(angle) * y; 
y1 = cos(angle) * y + sin(angle) * x;


角度反弹

运动物体在碰撞到有角度的平面时,角度的变化。
1.确实何时越过边界。 
2.直接在边界上重置物体的位置。 
3.改变碰撞轴上的速度。
先把斜面旋转成平面,然后执行反弹,最后再把它旋转回去。意味着旋转斜面,旋转物体坐标,再旋转物体速度向量




撞球物理


质量是物体所承受速度大小的测量单位。
物体的质量越大,这个物体就越难移动,也不易改变其本身的运动(减慢,加速或改变方向)。
质量也与加速度和力有关。物体质量越大,给它加速度的力就越大。


动量是由物体的质量和速度构成的,是质量与速度的乘积。动量通常用字母 p 表示,质量用 m 表示,速度用 v 表示。
p = m * v
完整地描述动量,可以说5 公斤 * 20 米/秒 角度为 23 度的方向运动。


动量守恒才是碰撞反应的实际原理。
在碰撞之前,一个物体以 A 速度运动,另一个
物体以 B 速度运动。碰撞之后,该物体以 C 速度运动,另一个物体以 D 速度运动。



在系统中,碰撞前的动量总合与碰撞后的动量总合相等。
系统是指一个封闭系统,也就是不受其它外力影响的系统。换句话讲,也就是可以忽略除实际碰撞以外的一切。
对于我们而言,只关注两个物体之间的反作用力,系统总是以物体 A 和物体 B 这样的形式出现。系统的总动量
就是由系统中所有物体的动量结合而成。
momentum0 + momentum1 = momentum0Final + momentum1Final 
或者: 
(m0 * v0) + (m1 * v1) = (m0 * v0Final) + (m1 * v1Final)


动能公式
KE = 0.5 * m * v2(2次幂)
碰撞前的动能刚好与碰撞后相同
(m0 * v02) + (m1 * v12) = (m0 * v0Final2) + (m1 * v1Final2)


所以,解方程组得:
                (m0 – m1) * v0 + 2 * m1 * v1 
v0Final = ---------------------------------------------- 

                            m0 + m1 


                (m1 – m0) * v1 + 2 * m0 * v0 
v1Final = --------------------------------------------- 
                            m0 + m1 



两个轴上的动量守恒

两个物体之间的角度非常重要,这个角度称为碰撞角度。将速度按角度分解,对应速度应用动量守恒。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值