我试图检测抛射物是否会撞击到盾牌,以及碰撞会发生在哪里。
从这张图片中可以看到情况。虽然A和B两个抛射物与盾牌中心S的距离大致相同,但其中一个会与盾牌碰撞,另一个则不会。
数学上最直接的解决方案是使用圆的数学方程和抛射物路径的线性方程。
我可以用纸和笔计算出结果。但是,直接实现解析几何给我的经验非常糟糕。
此外,这种方法会针对离开盾牌的抛射物返回正值。如何过滤它们呢?
第二种方法是朋友的想法,测量抛射物路径与盾牌中心之间的最小距离-如果l小于r,则发生碰撞。
这种方法似乎更容易实现,但不能让我知道碰撞会发生在哪里。
我工作在2维空间中。我使用C#和Unity引擎,但通用解决方案也受欢迎。
当然,抛射物被视为大小为零的点。