【发布时间】:2011-04-12 09:08:46
【问题描述】:
如果我计算了一条线段和一个圆的交点,我怎么知道这个交点是否在圆的一段上?
我有方程来判断一条线段是否与圆相交,我也有那个圆上的交点,但我需要知道的是圆上的这个碰撞点是否在该圆的特定 arg 段的边界。我有圆弧段的端点、圆的中心和半径以及碰撞点。
【问题讨论】:
标签: math trigonometry geometry segment
如果我计算了一条线段和一个圆的交点,我怎么知道这个交点是否在圆的一段上?
我有方程来判断一条线段是否与圆相交,我也有那个圆上的交点,但我需要知道的是圆上的这个碰撞点是否在该圆的特定 arg 段的边界。我有圆弧段的端点、圆的中心和半径以及碰撞点。
【问题讨论】:
标签: math trigonometry geometry segment
将交点围绕中心转换为polar coordinates,并比较角度。
【讨论】:
作为 Dario 想法的替代方案(应该也可以),您可以:
intdist1 和intdist2)。 arcdist)。 intdist1 和 intdist2 都小于 arcdist,则您知道该点是否在圆弧中。intdist1 或 intdist2 大于 arcdist,则您知道该点是否在圆弧中。 我猜,因为您没有另外指定,所以端点之间的弧线绕得短。在这种情况下,您无需担心上述第 4 步。
如果您使用的圆弧正好覆盖圆的 180 度,则该方法会失败。在这种情况下,您可以将 180 度弧线分成 90 度弧线并检查它们我想。
此外,您当然可以使用距离的平方来比较这些距离,以节省平方根。此外,这种方法应该比计算角度更快,因为这涉及使用昂贵的反余弦。
【讨论】: