姓名:卜凡

学号:2020211066

指导老师:符强

日期:2022-05-31

[#] 作业内容

作业要求:

1)场景初始有一大一小两个物体(例如一大一小两个圆球) ,其中大物体静止,另小物体朝着静止的大物体运动。

2)当两个物体发生碰撞(使用中心质点代表小物体+包围盒代表大物体检测碰撞),小物体的运动方向和速度改变,大物体也产生运动。

3)报告中给出碰撞检测,以及碰撞后运动效果实现的物理计算过程(大小球的质量可以自行设定,运动效果符合动量守恒,不考虑摩擦力),附上截图。

4)报告+代码压缩在一个文件中提交。

注:本次作业仍是基于往期作业的框架制作而成。

[1] 正交碰撞箱及其与定义域的反弹

1.1 碰撞点 / 碰撞箱 / 速度

I.碰撞点 / 碰撞箱

下面简称各棱均与坐标轴平行的长方体为正交体

为每个要做物理碰撞的物体(称为碰撞体)指定一个正交体,称为正交碰撞箱,认为该物体具有正交碰撞箱所定义的碰撞箱(如果体积为 $0$,也可以说它具有碰撞点)。

后面会定义一个箭头模型的网格对象 arrow 作为碰撞点对象,定义一个正交体模型的网格对象 cobe 作为碰撞箱对象。

II.碰撞点 / 碰撞箱

当前速度是一个物理量,每帧对网格模型原点位置进行相应更新如下:

$$ \boldsymbol p' = \boldsymbol p + \boldsymbol v \cdot \Delta t $$

上面的物理属性将被添加为网格物体类的成员: