我有一个多边形。
如何通过xlib编程判断黑色线是在多边形外还是在多边形内。
最佳答案
创建确定点是否位于多边形内部/边缘/外部的函数
如果您从该点向无穷远的任何方向转换光线(半轴),如果它在多边形内部,则它应该与奇数条多边形线相交,如果它在多边形外部,则应该与偶数条线相交。
如果光线交点直接位于某个边上(交点==点),则稍微改变方向并重试,或者如果您的多边形不是复杂的多边形,则将双击(来自该顶点的两条相邻线)处理为单击。 ..
如果线不与任何折线相交
- 如果其展位点位于多边形内部,则线位于多边形内部
- 如果其展位点在多边形之外,则线在多边形之外
- 如果一个点在内部,一个在外部,则线部分在内部
- 如果一个或两个点位于边缘,则改为测试线中点
如果线确实与任何多边形线相交
并且该交点不是线的顶点(在边缘上),则线部分进入,否则根据线的第二个点完全进入或完全退出
关于c - xlib编程-如何查找线是否在给定多边形之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19065592/