假设我们有一个类似于图像中的网格。网格还可以包含矩形节点。现在我想找到半径内与该图像上所示相同的所有节点。一种方法是检查从0,0
开始的所有节点。
对于每个节点,我必须计算到节点的距离(i,j
)。这需要很多时间,特别是如果节点数量巨大的话。
应该有更好的方法来做到这一点。考虑到我知道circle (node (i,j))
的中心,也许我可以从i开始递归函数,而不是检查它们中的每一个。
你可以帮我找一个聪明的方法吗?
距离测量是欧几里德距离。
答案 0 :(得分:1)
您可以测试圆圈边界框内的所有单元格,或者如果您想要更严格一些,请使用类似队列的数据结构执行breadth search。
答案 1 :(得分:1)
我不确定与您在帖子中提到的距离方法相比,这是否会更快或更慢,但Point-In-Polygon在计算机科学中非常常见。值得尝试光线投射算法,看看它是否能提高性能。