2条重叠线上的2D线反射

时间:2013-10-22 16:58:13

标签: android reflection line collision

情况如下:

enter image description here

我的2D线碰撞检测效果很好,因为反射也是如此。但我遇到的问题是,当一条线与三角形的顶点发生碰撞时(只有3个2DLine =第(1)行,第(2)行,第(3)行),它有时会反映在预期的线上,但有时会它反映在错误的路线上。

换句话说,在上图中:红线有时反映在预期的线(3)上,有时反映在线(1)上,当它反映在错误的线上时(在图像上,第1行)它进入三角形并反射直到它碰撞一个顶点。

我知道问题是三角形的线是重叠的,我的函数首先检查红线是否与线(1)碰撞,然后如果它与线(2)和最后的线(3)相撞,所以红线首先反映在第(1)行,但我不能用另一种方式来解决这个问题。

1 个答案:

答案 0 :(得分:1)

你可以:

(a)将新的速度矢量设置为(C-P1),其中C是三角形的中心,P1是顶部顶点。换句话说,从三角形反弹。

(b)忽略顶点碰撞。

这取决于您希望模拟的准确程度。对于游戏,我通常选择忽略这种罕见的情况,而不是编写特殊代码来“正确”处理它们。只要结果看起来合理,就没有人会注意到或关心。