<<DiscreteMath`ComputationalGeometry`
Table[Random[],{20},{2}]
{{0.710495,0.474366},{0.35206,0.881255},{0.580642,0.251155},{0.759613,0.140506},{0.53346,0.10741},{0.438073,0.898603},{0.161514,0.871184},{0.79823,0.0610739},{0.449798,0.0231686},{0.0633002,0.332937},{0.727815,0.135686},{0.798229,0.520951},{0.0173202,0.661321},{0.446169,0.639696},{0.436678,0.410165},{0.686555,0.49919},{0.903218,0.302755},{0.248483,0.600586},{0.741703,0.43157},{0.450253,0.539513}}
v=VoronoiDiagram[%144];
DiagramPlot[%144,First[v],Last[v],LabelPoints->False];
ReverseEngineer[g_]:=Module[{},gp=Union[Sort/@Flatten[Cases[g,Line[x_]:>Partition[x,2,1],∞],1]];nn=Union[Flatten[gp,1]];EdgesToNodes[Map[First[Flatten[Position[nn,#]]]&,gp,{2}]]]
ReverseEngineerV[g_]:=Module[{},gp=Union[Sort/@Flatten[Cases[g,Line[x_]:>Partition[x,2,1],∞],1],SameTest->Equal];nnf=Flatten[gp,1];nn=Union[nnf,SameTest->Equal];nnc=Select[nn,(Count[nnf,#]<3)&];mid=Apply[Plus,nnc]/Length[nnc];ang=Apply[ArcTan,(#-mid)&/@nnc,{1}];nnc=Last/@Sort[Transpose[{ang,nnc}]];nnc=Append[nnc,First[nnc]];gp=Join[gp,Partition[nnc,2,1]];EdgesToNodes[Map[First[Flatten[Position[nn,#]]]&,gp,{2}]]]
ReverseEngineerV[%165]
{1{2,3,4},2{1,5,6},3{1,10,25},4{1,5,8},5{2,4,9},6{2,7,36},7{6,9,16},8{4,10,11},9{5,7,12},10{3,8,13},11{8,14,17},12{9,14,16},13{10,15,23},14{11,12,18},15{13,19,22},16{7,12,26},17{11,18,19},18{14,17,26},19{15,17,20},20{19,21,30},21{20,29,33},22{15,24,28},23{13,24,25},24{22,23,31},25{3,23,38},26{16,18,27},27{26,30,36},28{22,29,31},29{21,28,32},30{20,27,33},31{24,28,35},32{29,34,35},33{21,30,34},34{32,33,37},35{31,32,38},36{6,27,37},37{34,36,38},38{25,35,37}}
TrivalentQ[%]
True
NeighborsPictureR[%303]//Show;
RandomVoronoi[n_]:=Module[{pts},pts=Table[Random[],{n},{2}];DiagramPlot[pts,First[#],Last[#],LabelPoints->False,TrimPoints->4]&[VoronoiDiagram[pts]]]
RandomVoronoi[10]
⁃Graphics⁃
ReverseEngineerV[%239]
{1{2,3,8},2{1,4,13},3{1,5,7},4{2,5,9},5{3,4,6},6{5,7,10},7{3,6,11},8{1,12,16},9{4,10,13},10{6,9,14},11{7,12,14},12{8,11,15},13{2,9,18},14{10,11,17},15{12,16,17},16{8,15,18},17{14,15,18},18{13,16,17}}
NeighborsPictureR[%]//Show;
RandomVoronoi[60];
ReverseEngineerV[%242];
NeighborsPictureR[%]//Show;
RandomVoronoi[60];