1

我正在构建一个空间八叉树。为了确定某个点 (x,y,z) 应该放置在哪个分支/八分圆中,我使用了这个函数:

if (x>x_centre) {
    xsign = 1;
}
else {
    xsign = 0;
}

if (y>y_centre) {
    ysign = 1;
}
else {
    ysign = 0;
}

if (z>z_centre) {
    zsign = 1;
}
else {
    zsign = 0;
}

return xsign + 2*ysign + 4*zsign;

它为每个八分圆返回一个唯一的 0 到 7 之间的数字。事实证明,这个片段被多次调用。建造大树时会非常耗时。

有什么简单的方法可以加快这个过程吗?

这已经提供了 30% 的加速:

xsign = x>x_centre;
ysign = y>y_centre;
zsign = z>y_centre;

return xsign + 2*ysign + 4*zsign;

还有其他提示吗?

4

0 回答 0