有没有算法从一个点找到一个形状?

时间:2014-12-16 10:22:31

标签: algorithm

是否有任何逐点查找的算法?考虑一下我是否有多边形列表,我得到了2个形状:

形状1: x和y

[10,10,]
[10,40,]
[40,10,]
[40,40,]

形状2: x和y

[40,40,]
[40,80,]
[80,40,]
[120,120,]

如果我有一点可以说 第1点用x和y

[119,199]

这意味着我选择了形状2, 是否有任何算法可以从点确定形状?

2 个答案:

答案 0 :(得分:2)

有许多不同的数据结构可用于执行此类查询 - 大多数是树结构,它们表示某种空间层次结构中的多边形。我个人最喜欢的是R树,它有一个very good implementation in recent versions of the boost libraries。您可以从多边形列表构建一个R树,然后对一个给定点执行查询以查看它所在的多边形,这是一个非常简单(高效)的问题。

答案 1 :(得分:0)

请看JTS Topological Toolsuite

它是开源的,因此您可以研究他们的代码。请查看Geometry.contains()方法以了解您的具体问题。