我有两个由它们包含的点定义的区域。
也就是说,一个区域是一个点列表 {X, Y}。
每个区域都是相连的。
一个区域在另一个区域内。
我需要一种算法来识别哪个区域在里面。
有人能给我提供解决这个问题的算法的链接吗?
如果有人知道解决这个问题的 opencv 函数,非常欢迎。
提前致谢。
最佳答案
只要外部形状的点都不在内部形状的点内,这可以通过点定位算法在线性时间内完成。从两组中较大的一个点中选择一个点,并通过光线转换检查它是否在另一个区域内。参见 Point in Polygon problem .多种语言的综合实现集在这里:ray casting implementations .
关于algorithm - 包含区域算法之间的内部关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14986596/