【发布时间】:2014-05-22 20:04:04
【问题描述】:
请看示例图片:
平面中有一组多边形(凸面、非凸面、但不是自相交的)。 多边形由顶点定义 - 点(x 和 y 坐标,笛卡尔坐标系)。
多边形示例集:
- 第一个多边形是 A、B、C。
- 第二个多边形是 D、E、F、G、H、I、J。
- 第三个多边形是 K、L、M、N。
- 第四个多边形是 O、P、Q。
多边形将平面划分为多个区域。多边形的某些部分可能重叠(例如第一个和第二个多边形、第二个多边形和第三个多边形)。这个重叠的部分也是独立的区域。一些多边形可能在其他多边形内(例如第二个多边形内的第四个多边形)。
细分后的示例区域:蓝色、粉色、绿色、橙色、棕色和紫色。
为了简单起见,我认为平面是一个具有恒定 x、y 坐标的矩形。
目标
通过查询点检测区域(蓝色、粉色、绿色等)。
我正在寻找具有这些假设的平面细分的算法和数据结构。
【问题讨论】:
-
您的具体问题是什么?难道你不能首先通过检查哪些多边形重叠来构建所有区域,然后对所有区域执行命中测试吗?
-
不清楚是要计算区域,还是简单计算查询点在哪个区域。这是两个非常不同的问题。第一个需要相交算法和包含测试,而后者只需要“多边形中的点”算法。
标签: algorithm computational-geometry