Предполагая одинаковую длину кубов сетки во всех измерениях, вы можете получить координату, ближайшую к исходной, вычислив
gx = x - x%l;
gy = y - y%l;
gz = z - z%l;
Где gx
, gy
, gz
— координаты куба сетки, ближайшие к ориго (здесь я предполагаю, что x
,y
, z
>=0), %
— оператор модуля, а l
— длина кубов сетки.
Примечание. Вы также можете выполнять вычисления таким образом: gx = static_cast<int>(x)/l*l;
(static_cast<>
для учета нецелого числа x
)
Тогда 8 углов куба сетки (x, y, z)
попадают в:
(gx, gy, gz)
(gx+l, gy, gz)
(gx, gy+l, gz)
(gx, gy, gz+l)
(gx+l, gy+l, gz)
(gx+l, gy, gz+l)
(gx, gy+l, gz+l)
(gx+l, gy+l, gz+l)
person
Attila
schedule
09.05.2012