二叉空间分区树(Binary Space Partioning Tree,BSP Tree)也叫二叉空间分割树,简称BSP树,它可以被视为kd树的推广应用。与kd树一样,BSP树也是二叉树,但是现在可以任意选择分割平面的方向和位置。 BSP树的需求 二叉空间分割树产生于计算机图形学需要快速绘制由多边形组成的三维场景。绘制此类场景的一种简单方法是画家算法...
构建树(Building the Tree) 如果数据集中的三角形互不穿过彼此的平面,即所有三角形都位于其他所有三角形的同一侧,那么可以使用以下算法构建一棵可以使用上述代码遍历的 BSP 树: \rm tree\text{-}root=node(T_1) \\ \bold{for}\ i∈[2,.., N]\ \bold{do}\\ \ \ \ \ tree\text{-}root.add(T_...
1. 什么是BSP树 BSP算法的初始数据是一个多边形集,BSP在预处理的时候先在多边形集中选取一个多边形作为支持平面,然后根据这个平面将集合划分成两个部分,每个部分是一个新的子节点,递归进行该过程,直到每个子节点中的多边形都构成一个凸区域(最小凸边型),每个区域是一个叶节点,或成为cell,然后算法预计算在每个区域...
BSP树的应用 参考 k-d树 (k-dimensional tree) k-d树的应用 参考 自定义区域 判断目标点是否在凸多边形区域算法 自定义区域划分的应用 结语 前言: 在游戏程序中,利用空间数据结构加速计算往往是非常重要的优化思想,空间数据结构可以应用于场景管理、渲染、物理、游戏逻辑等方面。
在这个树中,一个进行分割的多边形被存储在树的节点,所有位于子空间中的多边形都在相应的子树上。当然,这一规则使用于树中每一个节点。 我们来看一下图7.21种的多边形。为了简单起见,我们选择一个这样一个平面投影,在它上面,所有多边形都能映射为直线段。让我们由多边形B开始构造一个BSP树。(见图7.21) 多边形B...
这篇文章的主题是介绍 BSP 树合并的意义。 它没有描述实体的网格表示和 BSP 树表示之间的转换,如果你想使用 BSP 树进行网格布尔运算,则必须执行此转换 – 你必须将网格转换为 BSP 树表示 ,进行树合并,然后转换回网格。 许多文本以不太精确的方式介绍 BSP 树。 直观上,这些解释是有道理的,但你可能不清楚是否...
BSP树是一种二叉树,它将空间逐级进行一分为二的划分,如下图。BSP树能很好地与空间数据库中空间对象的分布情况相适应,但对一般情况而言,BSP树深度较大,对各种操作均有不利影响,所以在GIS系统中采用BSP空间索引的并不多见。如图: BSP的想法最早在Fuchs(1980)中被提出,起初的目的是为了解决实时地消除隐藏面。BSP...
BSP树 BSP树 2007年12月17日 星期一 19:59 二叉空间分割(BSP)树 BSP (Binary Space Partition)表示二叉空间分割。使用这种方法可以使我们在运行时使用一个预先计算好的树来得到多边形从后向前的列表,它的复杂度为 。它是由Fuch和Kedem在1980年首先提出的。它的基本思想是基于这样一个事实,任何平面都可以...
四叉树八叉树BSP树与KD树 四叉树, 八叉树, BSP 树与 KD 树-- 空间数据的划分与查找