如果我计算了线段和圆之间的交点,我如何判断这个交点是否位于圆的一段上?
我有方程来判断一条线段是否与圆相交,我也有那个圆上的交点,但我需要知道的是圆上的这个碰撞点是否在 a 的范围内该圆的特定 arg 段。我有弧段的端点、圆的中心和半径以及碰撞点。
如果我计算了线段和圆之间的交点,我如何判断这个交点是否位于圆的一段上?
我有方程来判断一条线段是否与圆相交,我也有那个圆上的交点,但我需要知道的是圆上的这个碰撞点是否在 a 的范围内该圆的特定 arg 段。我有弧段的端点、圆的中心和半径以及碰撞点。
将交点转换为围绕中心的极坐标并比较角度。
作为 Dario 想法的替代方案(应该也可以),您可以:
intdist1
和intdist2
)。arcdist
)。intdist1
和intdist2
都小于,则您知道该点是否在弧中arcdist
。intdist1
或intdist2
大于arcdist
)。我猜,因为你没有另外指定,端点之间的弧线绕得很短。在这种情况下,您无需担心上面的第 4 步。
但是,如果您使用的弧线恰好覆盖圆的 180 度,则该方法会失败。在这种情况下,您可以将 180 度弧线分成 90 度弧线并检查它们我想。
此外,您当然可以使用距离的平方来比较这些距离,以节省平方根。此外,这种方法应该比计算角度更快,因为这涉及使用昂贵的反余弦。