Клетки Вороного не являются параллелограммами. Вы смущены здесь изображением, которое вы разместили. Границы ячейки Вороного являются частями гиперплоскостей, разделяющих отдельные средства.
Посетите этот сайт, где обсуждаются и визуализируются трехмерные диаграммы вороной:
http://www.wblut.com/2009/04/28/ooh-ooh-ooh-3d-voronoi/
Чтобы вычислить клетки вороной, обычным способом является сначала построение триангуляции Делоне. Есть несколько алгоритмов, чтобы сделать это в 2D, в то время как в 3D это становится значительно более сложным. Но вы все равно должны быть в состоянии найти что-то. qhull
может быть правильный путь.
Если у вас есть триангуляция Делоне, вычислите центр каждого тетраэдра. Это углы многоугольников, которые вам нужно нарисовать. Для любого ребра в триангуляции Делоне нарисуйте многоугольник, соединяющий соседние центры. Это должна быть гиперплоскость.
Теперь все, что вам нужно сделать, это также нарисовать Гиперплоскости для ребер, которые являются частью выпуклой оболочки. Для этого вам нужно продолжить гиперплоскости, которые у вас уже должны быть, изнутри до бесконечности снаружи.
Я настоятельно рекомендую сначала начать с 2d. Если у вас есть рабочий код для 2D, посмотрите, как сделать то же самое в 3D. Это уже довольно сложно в 2D, если вы хотите, чтобы это было быстро.
Это рисунок из Википедии, отображающий диаграммы Делоне и Вороного:
Черные линии - триангуляция Делоне. Коричневые линии ортогональны этому и образуют диаграмму Вороного. Триангуляция Делоне может использоваться для различных интересных визуализаций: вычисления выпуклой оболочки, диаграмм вороного и альфа-форм: http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Alpha_shapes_3/Chapter_main.html