【问题标题】:How to determine if a vertical line segment intersects a circle?如何确定垂直线段是否与圆相交?
【发布时间】:2010-11-09 15:56:18
【问题描述】:

这是一个编程作业,我对自己做这件事没有任何疑虑,但我对它的几何形状很感兴趣。给定圆的中心和半径以及垂直线段的两个端点,我需要能够确定确切的交点,并且由于几何不是我的强项,我希望得到一些帮助(甚至是右侧的指针方向将不胜感激!)

这可能不是提出此类问题的最佳场所,但我不确定在哪里寻求帮助,如果违反规则或其他内容,我深表歉意。

编辑:

抱歉,我真正遇到的问题是确定交叉点是什么(以及是否有一个或两个交叉点。)我已经尝试了每个给出的解决方案,它们非常适合确定是否存在交叉点与否,但由于我的问题措辞错误,我的问题仍然存在。如果有人可以提供帮助,将不胜感激!

【问题讨论】:

    标签: geometry


    【解决方案1】:

    试试http://mathworld.wolfram.com/Circle-LineIntersection.html,它很好地涵盖了你的问题的几何方面。

    【讨论】:

    • Greg Sexton:这看起来很像我需要的,但我的问题可能是我不太擅长数学。如果判别式 > 0 是否意味着总是有两个交叉点?我不认为是这种情况,但我不确定在这种情况下如何确定正确的交点。也许我只需要多看一些,但它肯定很容易回答我原来的问题,所以谢谢你 - 但不幸的是,我忘记在原来的问题中添加实际上困扰我的部分。不过感谢您的链接!
    【解决方案2】:

    如果 C=(x0,y0) 是中心,r 是半径,k 是线的横坐标,你有 y = y0 +/- sqrt(r^2-(k-x0)^2),但如果 r 则没有交集

    【讨论】:

    • enzotib:我很抱歉,但我真的不明白你所说的 x0,y0 是什么意思——它们是从 0 开始的下标吗?我习惯于在数学中从 1 开始下标,但我知道在大多数编程语言中它们从 0 开始,所以这可能是一个愚蠢的问题。此外,横坐标是 (x,y) 坐标对中的 x 坐标是否正确?我查了一下,这似乎是正确的,但我不确定。无论如何,这回答了我最初的问题,所以谢谢你,但不幸的是我忘了包括我需要能够确定交点。
    • x0, y0 只是圆心的两个坐标的名称
    【解决方案3】:

    使用圆的中心 [x,y],找出这条特定线到中心的距离。refer 现在如果这个距离>圆的半径=>线不会相交。否则,它会。

    【讨论】:

    • anirvan-majumdar:我很抱歉这不是我想要的解决方案,尽管它回答了我最初的问题。不过感谢您的回复!
    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多