Algorithm 我什么时候应该使用kd树?

Algorithm 我什么时候应该使用kd树?,algorithm,kdtree,Algorithm,Kdtree,前几天,我在读关于kd树的书。我在寻找这样一种数据结构可能有用的具体而简单的情况。有人举过这样的例子吗?我使用它们作为一种有效的方法来查找给定点的最近邻,以便进行机器学习。它们用于光线跟踪,将场景分解为几个框。它会加速碰撞,因为如果光线不与边界框碰撞,它肯定不会与其内容碰撞。VTK有一个:例如 看看像FindClosestPoint这样的函数。在给定大量输入点的情况下,该类需要相对较长的时间来构建。但是在树构建之后,像这样的函数运行得非常快。我在一个定价项目中使用了它们。目的是找到符合多个标准的

前几天,我在读关于kd树的书。我在寻找这样一种数据结构可能有用的具体而简单的情况。有人举过这样的例子吗?

我使用它们作为一种有效的方法来查找给定点的最近邻,以便进行机器学习。

它们用于光线跟踪,将场景分解为几个框。它会加速碰撞,因为如果光线不与边界框碰撞,它肯定不会与其内容碰撞。

VTK有一个:例如


看看像
FindClosestPoint
这样的函数。在给定大量输入点的情况下,该类需要相对较长的时间来构建。但是在树构建之后,像这样的函数运行得非常快。

我在一个定价项目中使用了它们。目的是找到符合多个标准的最佳价格。

我使用kd树模拟光通过波产生的喷雾传输。这使得渲染喷雾液滴成为可能,这些喷雾液滴不仅由灯照亮,还可以由其他液滴间接照亮

我将喷雾点存储在kd树中,然后使用kd树快速找到彼此靠近的点,从而找到彼此照亮的水滴。(事实上,它有点复杂,但它的结构仍然是一棵kd树。)这使得能够通过喷雾渲染出漂亮的光晕

下面是正在使用的方法的图片


请注意灯光周围的喷雾是如何随着散射光而发光的

它们在光线跟踪中用于将场景分解为几个框。它会加速碰撞,因为如果光线不与边界框碰撞,它肯定不会与其内容碰撞。