【问题标题】:Determining if segment lies within a polygon确定线段是否位于多边形内
【发布时间】:2016-07-22 10:54:29
【问题描述】:

给定一个凹多边形,如何确定连接两个顶点的线段(边)是否位于多边形内?在下图中,有一条边(红色)连接两个在原始多边形中未连接的相同顶点。我不知道如何确定内部和外部。感谢您的帮助。

Example of polygons

【问题讨论】:

    标签: geometry polygon


    【解决方案1】:

    如果附加线段与多边形的任何其他线段相交,则它部分在内部,部分在外部。

    否则在附加线段上取一个点,例如它的中点并检查它是在内部还是外部。要测试一个点是否在内部,请取任何从它延伸的光线并计算与多边形边缘的交点数。如果交叉点的数量是奇数,则它在里面。

    听起来很简单,但要准备好处理特殊情况,例如共线线或顶点处的交叉点。这就是实施困难的原因。

    【讨论】:

    • 从该点发出的光线是如何延伸的?它们可以有无数个。同样在我提供的图片中,我看不出奇数/偶数会如何区分。对我来说,它看起来总是相同的计数。
    • @Altidore:没关系,理论上你可以使用任何方向。但是在您的示例中,水平射线将是一个糟糕的选择,因为它与某些边缘共线。这是我提到的特殊情况之一。
    • @Altidore:澄清一下:与从一个点向两个方向延伸的线不同,一条射线仅向一个方向延伸。所以你只计算点一侧的交叉点。
    • 好的,这清楚地说明了这一点。我想知道在两个方向上延伸的线如何会有不同的交叉点数。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 2015-10-25
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多