Существует версия алгоритма Брезенхема для рисования кругов. Рассмотрим двумерное место в точке z = 0 (предположим, что сфера сейчас находится на уровне 0,0,0), и рассмотрим только плоскость x-y точек сетки. Начиная с x = R, y = 0, следуйте алгоритму Брезенхема до y = y_R, x = 0, за исключением того, что вместо рисования вы просто используете результат, чтобы знать, что все точки сетки с нижними координатами x находятся внутри круга, вниз в х = х_центр. Поместите их в список, сосчитайте их или запишите. Когда закончите с двумерной задачей, повторите с изменением z и используя уменьшенный радиус R (z) = sqrt (R ^ 2-z ^ 2) вместо R, пока z = R.
Если центр сферы действительно расположен в точке сетки, вы знаете, что каждая точка сетки внутри или снаружи правой половины сферы имеет зеркального партнера с левой стороны, а также сверху / снизу, так что вы можете сделать половину подсчет / листинг по измерению. Вы также можете сэкономить время, выполняя Bresenham только до линии 45 градусов, потому что любая точка x, y относительно центра имеет партнера y, x. Если сфера может быть где-либо, вам придется вычислять результаты для каждого октанта.