姓名:卜凡
学号:2020211066
指导老师:符强
日期:2022-05-31
作业要求:
1)场景初始有一大一小两个物体(例如一大一小两个圆球) ,其中大物体静止,另小物体朝着静止的大物体运动。
2)当两个物体发生碰撞(使用中心质点代表小物体+包围盒代表大物体检测碰撞),小物体的运动方向和速度改变,大物体也产生运动。
3)报告中给出碰撞检测,以及碰撞后运动效果实现的物理计算过程(大小球的质量可以自行设定,运动效果符合动量守恒,不考虑摩擦力),附上截图。
4)报告+代码压缩在一个文件中提交。
注:本次作业仍是基于往期作业的框架制作而成。
I.碰撞点 / 碰撞箱
下面简称各棱均与坐标轴平行的长方体为正交体。
为每个要做物理碰撞的物体(称为碰撞体)指定一个正交体,称为正交碰撞箱,认为该物体具有正交碰撞箱所定义的碰撞箱(如果体积为 $0$,也可以说它具有碰撞点)。
后面会定义一个箭头模型的网格对象 arrow
作为碰撞点对象,定义一个正交体模型的网格对象 cobe
作为碰撞箱对象。
II.碰撞点 / 碰撞箱
当前速度是一个物理量,每帧对网格模型原点位置进行相应更新如下:
$$ \boldsymbol p' = \boldsymbol p + \boldsymbol v \cdot \Delta t $$
上面的物理属性将被添加为网格物体类的成员: