Вам, вероятно, придется рисовать сферу слоями. Для сферы с радиусом R, центрированной на CX, CY, CZ, самый нижний блок будет в CX, CY, (CZ-R). По мере продвижения на один уровень вверх, тестируйте [PX + 1, PX, PX-1], [PY + 1, PY, PY-1], PZ + 1 (здесь «P» означает «Plotted», чтобы увидеть, какой из них ближе всего к расстоянию R от CX, CY, CZ.
Для каждого отдельного слоя я бы, вероятно, использовал (3D) расстояние от CX, CY, CZ, потому что это немного проще. Существует также немало симметрии для использования, чтобы уменьшить количество необходимых вычислений.