【发布时间】:2020-03-13 16:52:38
【问题描述】:
我正在尝试编写一个圆到线段的碰撞检测算法,其中涉及确定圆和线段的交点。线段代表子弹在最后一帧上的轨迹,这意味着即使有多个圆与线相交,它也会击中第一个圆。
我想获得交点的t 值,这是对交点沿线段距离的度量。计算t 值需要求解一个二次方程,其中涉及公式t = (-b - sqrt(det)) / (2 * a)。为了使代码更快,我试图完全避免使用sqrt,这意味着我不会比较在所有潜在圈子中找到最小的t,而是尝试为它们找到最小的t^2。但是,我不知道如何在没有sqrt 的情况下找到t^2,即使给定t = (-b - sqrt(det)) / (2 * a),因为二项式展开仍然涉及sqrt。
不使用sqrt函数如何计算t^2 = ((-b - sqrt(det)) / (2 * a))^2?
【问题讨论】:
标签: math collision-detection intersection quadratic