目前我正在尝试创建一个仅处理矩形(可以旋转)和圆形的 2D 物理引擎。到目前为止,我已经能够实现适当的碰撞检测算法。现在我需要一个合适的碰撞解决算法,并且我拥有了我需要做的所有元素和步骤;我现在唯一缺少的是两个物体碰撞时的接触点,我不完全确定如何找到它。
这是我掌握的信息:
对于矩形:
(x, y) = 矩形的中心。
W = 宽度,h = 高度
θ = 顺时针旋转角度(以弧度为单位)
(Vx, Vy) = 矩形在 x 和 y 轴上的速度。
(我能够计算出 4 个顶点的坐标,所以如果找到接触点需要这个,就不需要解释了。)
对于圈子:
- (x, y) = 圆心。
- r = 半径
- (Vx, Vy) = 圆在 x 和 y 轴上的速度。
使用所有这些信息,我如何找到以下联系人:
- 旋转矩形与旋转矩形碰撞?
- 旋转矩形与圆形碰撞?
(我能够实现圆形与圆形碰撞解决方案)