如果给你一组线对,你将如何找到所有线对所包含的面积(如果存在)?例如,如果我有两行:
((0, 0), (0, 10)) & ((10, 0), (10, 10))
和
((0, 0), (10, 0)) & ((0, 10), (10, 10))
你将如何找到所有这些线所包围的区域(在这个简单的例子中,它是由点 (0,0),(10,0),(10,10) & (0, 10).
哪些算法可以为我指明解决此类问题的方向?
编辑:线条不会总是在末端接触或相互交叉。如果存在一对线不与任何其他线相交并且不在边缘接触,则可以得出结论,这组线对没有被所有线包围的区域。
EDIT2:采用以下几行:
对 1:((0, 0), (10, 0)) & ((0, 10), (10, 10))
对 2:((0, 0), (0, 10)) & ((10, 0), (10, 10))
对 3:((2, 0), (2, 10)) & ((8, 0),(8, 10))
这三对直线围成的区域是由点 (2,0)、(2,10)、(8,10) 和 (8,0) 定义的区域。然而,凸包算法将返回值 (0,0)、(10,0)、(10,10) 和 (0,10)。
最佳答案
编辑:凸包似乎不是解决方案。
只是为了确保我理解您的问题:这张图片中的红色区域是您想要的吗?
关于algorithm - 给定一组线对,您将如何找到所有这些线所包围的区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20876747/