0

我有一个多边形。在此处输入图像描述

如何通过 xlib 编程找出黑色线是位于多边形外还是多边形内。

4

1 回答 1

0
  1. 创建确定点是否在多边形内部/边缘/外部的函数

    如果从该点向无穷远的任何方向投射光线(半轴),如果它在多边形内,它应该与奇数条多边形线相交,如果它在多边形外,它应该与奇数条多边形线相交。

    如果光线交点直接位于某个边缘(交点 == 点),则稍微改变方向并重试,或者如果您的多边形不是复杂的,则将双击(从该顶点的两条相邻线)处理为单击......

  2. 如果线不与任何多边形线相交,则

    • 如果它的展位点在多边形内,那么线在多边形内
    • 如果它的展位点在多边形之外,那么线在多边形之外
    • 如果一个点在里面,一个点在外面,那么线部分在里面
    • 如果一个或两个点在边缘,则改为测试线中点
  3. 如果线确实与任何多边形线相交,那么

    并且该交叉点也不是线的顶点(在边缘上),然后线部分进入,否则根据线的第二点完全进入或退出

于 2014-03-24T09:42:24.423 回答