我知道kd树通常用于存储点,但我想存储线条。是否最好在每个交点处拆分线条以与kd树的分割相匹配?或者只将端点存储到kd树中是否足以找到最近的邻居?
我知道kd树通常用于存储点,但我想存储线条。是否最好在每个交点处拆分线条以与kd树的分割相匹配?或者只将端点存储到kd树中是否足以找到最近的邻居?
嗯,你必须在交叉点上分割线条,否则你会遇到树叶权重的问题。
另一方面,如果你不使用SAH或任何其他算法来遍历树,你可以自由地处理kd-tree的原始想法。但是,如果你被绑定到一些传统算法,你就必须分割线条。你必须这样做,因为树的每个叶子都有一个权重(我猜在你的情况下,它取决于其中线条的长度)。
如果你不分割线条,你也会得到错误的叶子权重。如果你不分割线条,你应该在线条所属的两个叶子中都复制它们。