怎么求某一外部点到kd树的某一节点所代表的空间的顶点的距离?
已知一颗kd树,分割空间如图。求某一外部点到树的某一节点所代表的空间的顶点的距离。
如p2点所代表的空间是AODE,求N点到四边形AODE四个顶点的距离。
已知条件:p2的节点坐标和父节点等节点结构
N点的坐标
[解决办法]
目标在于找到“左右上下”这四条边。这四条边显然是由其父亲系列或外围框组成的。
造成这种形况的原因在于,一个父亲生成两个孩子,一个在左,一个在右,或者一个在上,一个在下。
因此父亲可能在孩子的右边,左边,或下边,上边。存在这种不确性。
p8点:左->上->左->下 //其它3条都找到了,少了“右”这一条,继续往上找,直到一条“右”的边出现
如果出现下面这种形况:找到效率就会降低,但最终还是可以找到(地图大小有限)。
左->上->左->上->左->上->左->上->左->上->左->上->左->上->……
[解决办法]
我以为4L的办法就是7L的意思- -b
从parent开始一直往parent走,看哪个可以填上下左右四条边的位置。如果走到root了还有哪条边没填的话就用边界的坐标填充。
当然实际操作中如果查询多的话可能需要每个节点cache一下。