我正在构建一个空间八叉树。为了确定某个点 (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;
还有其他提示吗?