3-D Декартовы точки к двумерному полусферическому и вычислить площадь двумерных клеток Вороного

Я работал над некоторыми функциями в R и MatLab на основе Qhull (geometry в пакете R) для проектирования локальных декартовых X, Y, Z указывает на круговой график на сферическую (тета, phi, R), центрированную на 0,0,0. Так как все значения Z положительны в исходных координатах (X и Y вместо этого центрированы на 0), это дает мне полусферическую проекцию, которую я желаю (цвета точек масштабируются по значениям Z), нанесенные с помощью radial.plot( ) функции R plotrix, используя phi (азимутальный угол) и theta (полярный угол):

Полусферическая проекция трехмерных декартовых точек

Для сферического преобразования, после центрирования на 0,0,0, вместо использования расчетов Bourke (1996), я использую Спецификация ISO, указанная на Wikipedia (не соглашение о физике).

r     <- sqrt(x^2 + y^2 + z^2)
theta <- acos(z/r)
phi   <- atan2(y,x)

Я хотел бы знать область клеток Вороного, содержащую точки данного класса в этой полусферической проекции, сохраняя перспективное искажение. Пока просто рассчитать двумерную диаграмму Вороного для двумерных декартовых точек X, Y, перевод этой диаграммы Вороного в двумерную сферическую форму может не дать желаемых результатов, да? Возможно, было бы лучше всего вычислить диаграмму Вороного непосредственно из полусферических проецируемых точек, а затем вернуть площадь каждой ячейки.

Обновление: я решил это. Мое решение будет передано в новом R-пакете, который я опубликую здесь.