KBlog

KD-Tree

KD树 KD树 KD-Tree(k-dimensional tree的简称), 可以实现k近邻搜索, 构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分 k-d树每个结点都是k维的点二叉树, 所有非叶子节点可以看作用超平面把空间分成两个部分, 节点左子树代表超平面左边的点, 右子树代表右边的点适合需要进行相邻区间和查询的情况, 比如需要找到一个点附近的一些点, 维护这些点之间...

八叉树

八叉树 八叉树是一种空间划分树, 每个结点对应空间中的一片区域, 结点的子节点按八等分继续细分 如果不做限制就会一直细分, 所以需要限制最大划分层级和最大对象数, 如果结点代表的区域包含的对象数大于最大对象数且当前层级小于最大层级,那么就对当前结点进行划分. 适合需要进行相邻区间和查询的情况, 比如需要找到一个点附近的一些点, 维护这些点之间的状态, 就可以用八叉树 C#实现 ...

俯视视角游戏高效检测视野边缘的方法

俯视视角游戏高效检测视野边缘的方法 通过在初始时遍历屏幕左下、左上、右上、右下四个点,分别从屏幕发出一条射线,即可获得与地面平面碰撞的四个交点,这四个点构成的平面就是视野范围。如果地面是近似无限的平面,那么把从摄像机初始到当前的位置向量,分别加上与这四个点的偏移,就可以得到当前的摄像机视野范围。假设这四个点围成的线段长度为l1,l2,l3,l4,总长度为L,那么可以求得落在视野边缘的...