{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Voronoi Diagrams\n", "\n", "Voronoi diagrams are constructed from their sites (given in homogeneous coordinates).\n", "\n", " \n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1 -1/2 0\n", "1 1/2 0\n" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "$VD = new VoronoiPolyhedron(SITES=>[[1,1,1],[1,0,1],[1,-1,1],[1,1,-1],[1,0,-1],[1,-1,-1]]);\n", "print $VD->VORONOI_VERTICES;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "Actually, via lifting to the standard paraboloid, Voronoi diagrams are derived from `Polytope`. That's why they have `VERTICES`, `FACETS`, and such.\n", "\n", " \n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2 -2 -2 1\n", "1 0 -2 1\n", "2 2 -2 1\n", "2 -2 2 1\n", "1 0 2 1\n", "2 2 2 1\n", "1 0 0 0\n" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print $VD->FACETS;" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1 0 2\n", "0 -1 0 2\n", "0 0 1 2\n", "0 0 -1 2\n", "1 -1/2 0 -1\n", "1 1/2 0 -1\n" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/html": [ "
Click here for additional output
\n", "
\n",
       "polymake: used package lrs\n",
       "  Implementation of the reverse search algorithm of Avis and Fukuda.\n",
       "  Copyright by David Avis.\n",
       "  http://cgm.cs.mcgill.ca/~avis/C/lrs.html\n",
       "\n",
       "
\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print $VD->VERTICES;" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", " \n", " V_bounded\n", " \n", " \n", "\n", "\n", "\n", "\t\t
\n", "\t\t\t
\n", "\t\t\t\tTransparency\n", "\t\t\t\t\n", "\t\t\t
\n", "\t\t\t\n", "\t\t\t
\n", "\t\t\t\tRotation\n", "\t\t\t\t
\n", "\t\t\t\t\t
x-axis
\n", "\t\t\t\t\t
y-axis
\n", "\t\t\t\t\t
z-axis
\n", "\t\t\t\t\t\n", "\t\t\t\t
\n", "\n", "\t\t\t\t
Rotation speed
\n", "\t\t\t\t\n", "\n", "\t\t\t
\n", "\n", "\n", "\t\t\t
\n", "\t\t\t\tDisplay\n", "\t\t\t\t
\n", "\t\t\t\t\t
\n", "\t\t\t\t\t
Labels
\n", "\t\t\t\t
\n", "\t\t\t
\n", "\n", "\n", "\t\t\t
\n", "\t\t\t\tSVG\n", "\t\t\t\t
\n", "\t\t\t\t\t
\n", "\t\t\t\t\t\t Download
\n", "\t\t\t\t\t\t New tab
\n", "\t\t\t\t\t
\n", "\t\t\t\t\t\n", "\t\t\t\t
\n", "\t\t\t
\n", "\n", "\t\t
\t\n", "\t\t\n", "\t\t\n", "
\n", "\n", "\n", "\n", "\n", "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Click here for additional output
\n", "
\n",
       "polymake: used package cdd\n",
       "  cddlib\n",
       "  Implementation of the double description method of Motzkin et al.\n",
       "  Copyright by Komei Fukuda.\n",
       "  http://www-oldurls.inf.ethz.ch/personal/fukudak/cdd_home/\n",
       "\n",
       "polymake: used package threejs\n",
       "   Three.js is a lightweight cross-browser JavaScript library/API used to create and display animated 3D computer graphics on a Web browser.\n",
       "   See http://github.com/mrdoob for the source code.\n",
       "\n",
       "
\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "Can't locate object method \"VISUAL_VORONOI\" via package \"Polymake::polytope::VoronoiPolyhedron__Rational\"\n" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "$R=rand_inner_points(cube(2,4),27);\n", "$V=new VoronoiPolyhedron(SITES=>$R->LATTICE_POINTS);\n", "$V->VISUAL;\n", "compose($V->VISUAL,$V->VISUAL_VORONOI);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n" ] } ], "metadata": { "kernelspec": { "display_name": "polymake", "language": "polymake", "name": "polymake" }, "language_info": { "codemirror_mode": "perl", "file_extension": ".pl", "mimetype": "text/x-polymake", "name": "polymake" } }, "nbformat": 4, "nbformat_minor": 2 }