我正在用 C++ 实现一个八叉树,它稍后应该包含一个用于渲染的网格。但目前我正在为八叉树的构建而苦苦挣扎。更准确地说,是 addNode() 函数导致了问题。我想到了类似二叉树的递归实现: Binary Tree implementation C++
但是,在八叉树中,每个节点都有 8 个儿子,而不仅仅是 2 个。此外,因此我不能像在二叉树中那样使用简单的开关(左/右)来决定在何处添加节点。我需要检查 8 个儿子中的一个是否为空(指针为 NULL),如果没有指针为空,我需要用其中一个儿子作为参数调用 add 函数。然而,这将导致一个八叉树,其中第一个儿子总是包含所有后续的子八叉树。这个add函数一般是怎么实现的,又是如何避免这个问题的呢?
最佳答案
需要检查对象的x,y,z维度,八叉树只能保存有限数量的对象。
关于c++ - 如何在C++中构建八叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22156966/