【发布时间】:2017-06-14 06:27:30
【问题描述】:
在本书中The design and analysis of spatial data structures P.56 据说
一旦找到候选节点集,就会尝试找到“最佳”候选节点,该候选节点将成为替换节点。选择最佳候选人有两个标准。标准 1 规定选择比这些轴同一侧的任何其他候选者更接近其每个边界轴的候选者,如果存在这样的候选者
我试图实现这一点,但无法真正弄清楚这个算法应该如何工作。 我开始很简单,创建了两个排序列表,一个按 x 的差异排序,另一个按 y 的差异排序,如果两个对象相同,那么这个对象/点将是我的结果。如果没有,那么我要么没有候选人,要么可能有 2 个候选人,这就是我卡住的地方!
另一种方法有点奇怪,但我仍然会显示伪代码,也许有人有想法
function chooseCandidate(candidate)
clockwiseCandidate = candidate.cQuad(candidate.index) // Index is from 0-3 and cQuad returns (index-1)%4
counterClockwiseCandidate = candidate.ccQuad(candidate.index)
if candidate.x < ccCandidate.x:
possibleWinner = candidate
else if candidate.y < cCandidate.y:
possibleWinner = candidate
等等,这并不是一个真正的解决方案,只是我的一种心理游戏...... 所以我的问题是,有人可以解释这个问题是什么吗?或者我怎么能解决这个问题? (请注意,上面的链接中给出了完整的描述)
【问题讨论】:
-
当您在四页后找到解决方案时,何必担心呢?
-
请参考您认为的解决方案是什么?我只看到“J
-
对不起,你是对的,代码不完整。
标签: algorithm computational-geometry spatial quadtree