Есть ли способ сделать быструю и грязную трехмерную проверку расстояния, где результаты грубые, но очень быстро? Мне нужно выполнить сортировку глубины. Я использую STL sort
следующим образом:
bool sortfunc(CBox* a, CBox* b)
{
return a->Get3dDistance(Player.center,a->center) <
b->Get3dDistance(Player.center,b->center);
}
float CBox::Get3dDistance( Vec3 c1, Vec3 c2 )
{
//(Dx*Dx+Dy*Dy+Dz*Dz)^.5
float dx = c2.x - c1.x;
float dy = c2.y - c1.y;
float dz = c2.z - c1.z;
return sqrt((float)(dx * dx + dy * dy + dz * dz));
}
Есть ли способ сделать это без квадратного корня или, возможно, без размножения?