Function Repository Resource:

MeshVoronoiEntropy

Source Notebook

Compute the Voronoi entropy of a mesh region

Contributed by: Jessica Alfonsi (Padova, Italy)

ResourceFunction["MeshVoronoiEntropy"][mesh]

computes the Voronoi entropy for the MeshRegion mesh.

Details

The Voronoi entropy of a mesh enables the quantification of the ordering of a 2D tessellated structure according to the following formula S{XMLElement[i, {}, {XMLElement[span, {class -> stylebox}, {vor}]}]}=-ΣiPilnPi where i is the number of polygon types, and Pi is the fraction of polygons possessing n sides (edges) in a given Voronoi diagram, i.e. the coordination number of each polygon.
The formula for the Voronoi entropy is similar to the statistical measure of information and entropy in statistical mechanics, which is also known in the literature as Shannon entropy.
The Voronoi entropy is zero for a perfectly ordered structure, where there are polygons of only a single kind, and increases its value with the number of types of polygons. For a fully 2D random distribution, values of S{XMLElement[i, {}, {XMLElement[span, {class -> stylebox}, {vor}]}]}=1.71 have been reported in the literature.

Examples

Basic Examples (2) 

Compute the entropy of a hex mesh:

In[1]:=
ResourceFunction["MeshVoronoiEntropy"][\!\(\*
GraphicsBox[
TagBox[
DynamicModuleBox[{Typeset`mesh = {MeshRegion, {Epilog -> {
RGBColor[1, 0, 0], 
Point[CompressedData["
1:eJw1zWk4FHgcwHExGMbmGmbWOBpkXeUqbdH+p7DWkeRhaaidqWljUYpQzqVF
0jFoXZNil56pWeVYydH/1+qYR1KbYx1DbpL7eYxxzrYv9sX3+bz80k+c9Tkl
KyMjc+Rz/ylosgjx1a9G/ysy4C2ORczg20djP5ldFSG77X2s23IbeNZrdWvD
qRlU8qQtPyhCHp5Kx82lj8TIn5reo2KpAuXBpXoishRJnb7zXLZWh65/+pUs
DhIY0+dizxD5ZPjqRk7SPURk7P1lriXZjQp1cQ3JftMkxuM/jHfpEnRhfP/p
4CaOKmPxkthv0fsjvhHk2De7qw9nTfl/XfJsHZsOrEg5VY9wlGFCh94VAtgG
kU+vbA6iOmLHUsyaMoykE8fkoxfQa37k2yYvdUigblV0/EKCxEzOesnE5/+l
mFeTl6Uoo7fQj79JgS//5oQSUgiMMIcoi2hvGiQYCi8qtRIZSgL0/KS7AYT6
usq+eUFidJ1Ju2ZGXcMBzkHux5pnMeoRBuS6EWBtY5fvM3kRFoK2f6E+CRzj
bUw11quQT9qKaUylOiQW9KYylXoRjV2UPNdGBotm+/BTb+fQMosRabWDCrEZ
dqx5NwlSjs7XbZuiQTJTurN6pxRN85WVfcT6UB5QGT0fTmBkHen+PT+MDrEX
4yrf3VJkHKWJ5abqCVDVfPoBbXQZHxlKOtipTQKeT3FwyM8zWFuYdXSRow5B
zwQHLfMGsU1h9s7JC2SoaZ/4JG2sQQ1v6AWldlRoux/IdWUNIo18vhP5PA2O
v6/PLlRfQGXnDHqcP+pDcLZqpZbaCnq9JYIb7kmHxDpdaby2DOOaRWb3NQsj
uGPcwitMl2NwFCeYqYEkiLqgN6bmLsVXYrjeKQtqEKcfstGZIMZ/Cpaqz8po
QUfrG22vgXns555T26xHhdVIVk3KUD92bc984Z9Og+DKxh+53Hvo5YvQ9UWi
AbSmNrrWGw4hxz0Nr3Qu0EGUifO2vZ1Bd5Pf6e6zNYL7d9mU9h4xOrC7c79t
mzGs0oNTD3dKEW803q/XRx04IVeJRVsIoDUko9siIINP8Wrt4xtSzPTAlBln
KmjThTYKWhK8G6/ODLNpEJSruYMROINbXSmj+bYGwMm6sxRlPoiP2VToOCM6
TGZtZtQKS9GAr5mbi6URdK+Gvh/fLkLmZdlFHaXGUFMaf8vRegG55ZJ39PJM
QMG7IOGQwzJ6enjV7SRRC+IsI/ZsTSJC2Ed6msCSChWe/KUtvXIgK3LXy2TS
gLW/pd3x5iZuy1NdCJ/QBweFyorrk2Is6kIHeEl0yN7jkhwXtoApGy5nZPca
gWFa7uRA3TBm2X27N3HYGC5/WJEjlfJxXq7/velcE/jBXr5ifKofVTN/OpBu
agqqTpTDhk/mkWYOb0I8R4G1O8V1v7JIsMpNVBwX0+Bupuc3XclEsM9fG7Uf
0Ye5VGvUEyoH1ydu8WVc6LCtaemv4jwpfsRNCGiwNoKOCYWX9jorOI3NZfWO
G4M142L2wtw8bg/30C0rNYFcyT6J5vgQJnGNuq8HmoJg6VCX58gDvCYbrVwm
NIN9Xq1LwyYjaCysN1sopIHDtpT7hzTU4AObnVOeYQAMynpRXa0KPFQ5+7Dy
GzqQIz/E5lQpgiQrw8NXYggktpVV0gM5IPU3Hj/PMwY/3c7USt4m7vre/EnB
TRNgPSePVJyQ4PPq+ZZsK1N4PyYgM9dmcXi5ikeChjmIJm9rlkQP4d/Igzrz
fRbguT7iVFBfhf8FbB6T+Q==
"]]}}}}, 
TagBox[GraphicsComplexBox[CompressedData["
1:eJwV0vk/FPgfwPFhXIPJMY6Ma4wz0TdHjr7pM6VrQyXUF9vl6pgilpooV99I
+Toym5xh5IivKLf4vH1XRSm1rhxhHLuEMRKDMLvfH16P5z/w0vEKOO4rSiAQ
wv/u/5axC3Jp6wLsVZG8FJM7gOxuNDZyn4tCdhSD7mXKR1UTF9gPzpFgxMGx
YJi0gtzjGgKDDxJg5Mou1KcwgJAMiR2TSYEVWffH0UNExprT1qruCRUgPndS
OnVRitGXoygR7CIPIzt4UVKqBEZQavoR6YQFLHpG+4PzlQLcXBgzrDMnB/2c
xjM9CY/wdsqE9ViSKCSKc5vHi0pQ+pZfm0rsNsEmOtHc9KQAKUXrHOZKSsJx
pswfOgY8FJnbJJLoTQUN+946JkeWsWfNfVuZjDz0XRuIfBg3ixLSleLZZBJ4
7FmE/bdH0QT5uvOlbAqc812dzekWIJotm/lnuTJUOlyQ6FcXYwxot9TKRilC
9/aNQ/etCAyf7BZhpYkqjFcdFrFFBMbUoLMHq1gTfqkkuPB+lmKEhFUmsSia
8Aq5sSrCZRiuq93axpZqYBXZlLZPVorRnr/gvuUeFTgP1JmxU0RG26Q/5026
HChPmyt2+87ik18nkuY2FrHBHSlOn9oQdiysuPufAgng6SjctD7MQb9OJFrJ
GhAgzcTorMNVLtZ5xEghDUqBS3X4dx/5ATyjHJb1g6kIQ+JmNlE75tD8/u7O
ux6bQNZx6d+fhkbRoxvmjfFHRWH39/xbDzzncOpiS4bgHBWibnqOTHxaRk+e
4BhisBqsQ5jxTCCBEfexRuLsN2WYm3fJrU4XILZ0nv+nzaoQ+kVAlrbio4ru
vR/ekLTAbtKCzIskMLzOupcT9tEgKU6r426fJOPDzqxnF8M0oCQ9vO8tU4yx
Ojlt7FlIgx77SwYNEmIMj/4x1c6niiA0+9xcbMjH+kmROc6lFBhxX8j4weMi
RxbHgLxABq2XrHpVmwFs8n2yhB8oAWVML7eUWzw8efjjt6Z5ZTB+0XNB0XIE
PXoyuVsuVBEW1LcpxGm8wD6iinMxv6uAIKPlNvVqNloJ+omUGUUHlmNLZNno
Bop84V3k3KkBxeGDrim3BWhDI/dytoUaOMw4hMTa85FHCie/okMTNrMi1sX/
y0f2DtQr0lU0sKWK1RjpC9DOsWbjOHE6/I9Sy+wsIjLcC6eU7mvRAAw8U72C
CAz++6v2xTeocD7a5/YGh4skdyukJtgqwi2ZqRO3hzew/2Ili9RHgbLAjCH5
SyOY5/G5t/gQCb5ahdln6Avw53WbMo0DZFC92Sp9fGwJ57c177vjTIGsQ62s
5FIBJnr5N84fUIOr7b39enVJSDfooufJAmWYDkp6l+nzBXOrEbHqBBUSaqKZ
LMsBTPQQJvsW0YByJfuCevsIGuudJOjY0MCsyzmxeZ2Pcn1C+9+VaoCungkh
X8hF3XfepvrOaIJ3GvuHZtFlRL14/beUdDpI+YdGOwpnkVbHDbJfmS4IA7Ne
c0SEaPEtsUlxWQe2CQx6PccESOqV7ry8tR5Ed8aapY8uI7uJNo0/zdVA2y2h
qW1NiIMN67t67FXBN1ztq3fnHHbKsKIrq8vD/nTFJm6GELeuBXb4ralA3a6I
+E+vhLhS90pAtpYaUI7Zngk7OIfTG8aLd8mpQDxzWhIVLGOffPHiOn8qpKIJ
O9FHS9h8Q3e3ZrkmuHw5OFVM42HRpweWuEo0UApgW2Svp6GOqTFE6dGAANaa
+XDtIC41NrQL/kyD+1tLLF3fcPFgnF/KwVA6HBnPyUnsqsSy5yrUFdJ1wVVC
e3pbxywSySt984JEh82+XfyS84MonlLQINevD2S7PXayf/BQ0D766fZAfSi3
3tGdsSJAYyYfXltn06BcUqgnWUOEEtp0yfIpPRCXtsomeg2jqgY/24DfKBAi
c8/V0VkMVnp38VzfKQOnLD9i5gcRRGVTyG2PadBk0Zk+XivABfbqBWrPNEH8
ukyqsH8DBy9QPg040uBIk2qs5coc9rmuXr2TrQEv+zwejhcu4UnvlQT9CiqI
OplGKBiIQabDYtZovS4kTp1/f5RfjkXWEi3CFnWgtTDoiBd7GK82jk/F/qwH
iZF7/f06uLiS9kwvnGwA7JhWRuU/S3Bdw97k3ymGkFVb0KCaykPEpqexO1z0
wfDo1l6+FxfFqsQblarQ4I1E32z8xAZucyPPyP+iD5fcOqMLa5bxD5Nrm2rz
6GB6ee28htE8nvuyVOusqgpNUS8tjMMl4cSK4e6vyWow7xRiZvhBEjrqn9p0
BWjAcoo3qf4ZEQaU6JbVrYYQXfrS29h1CB3rjqlR86ODVXh9aN99IQ55fy1q
qkUXLrffeb/3yDzmHrOk3ZKnw+RRsr2p1Qpmn3Gtf22mB84tZiaZogIcPKY8
/pOEAfzDZrn8fQQfr6/sGLizzRAg7YJYbjkHl64858yx9GHcJMR8tYiL8x4v
rR4XoYHCCd3IE58locK5oPparhHczdwTf95nBDn8a8u7YwFa0GBsLxN3SApO
GWRRKt2pIJ5XsjRjKgsPSZ3tvZaaEKvdv2s0SBbCguxzbLt0oNExyiniNRGo
+he5/pWG0O6WfOMAcRhPb7kpJ5e0BdJeXmu3vs9ERrRvp3v+/nEtKta34zQB
fljZdnfNGcE92heT7ae5OLc79RtT3RDyqHUO7z7y8V9xcPrm
"], 
{Hue[0.6, 0.3, 0.95], EdgeForm[Hue[0.6, 0.3, 0.75]], 
TagBox[PolygonBox[{{10, 27, 25, 8, 1, 4}, {15, 26, 10, 4, 2, 12}, {14,
            30, 15, 12, 3, 11}, {16, 29, 14, 11, 7, 18}, {19, 34, 16, 18, 5, 17}, {23, 33, 19, 17, 6, 22}, {20, 38, 23, 22, 13, 21}, {28, 43, 31, 27, 10, 26}, {9, 42, 28, 26, 15, 30}, {
           41, 45, 9, 30, 14, 29}, {35, 44, 41, 29, 16, 34}, {32, 49, 35, 34, 19, 33}, {36, 48, 32, 33, 23, 38}, {39, 53, 36, 38,
            20, 37}, {24, 58, 57, 43, 28, 42}, {56, 40, 24, 42, 9, 45}, {46, 61, 56, 45, 41, 44}, {54, 60, 46, 44, 35, 49}, {
           50, 65, 54, 49, 32, 48}, {51, 64, 50, 48, 36, 53}, {47, 69,
            51, 53, 39, 52}, {59, 55, 73, 58, 24, 40}, {72, 76, 59, 40, 56, 61}, {62, 75, 72, 61, 46, 60}, {66, 80, 62, 60, 54,
            65}, {63, 79, 66, 65, 50, 64}, {67, 84, 63, 64, 51, 69}, {
           70, 83, 67, 69, 47, 68}, {74, 90, 89, 55, 59, 76}, {77, 71,
            74, 76, 72, 75}, {78, 94, 77, 75, 62, 80}, {81, 93, 78, 80, 66, 79}, {82, 97, 81, 79, 63, 84}, {88, 96, 82, 84, 67,
            83}, {85, 101, 88, 83, 70, 86}, {95, 106, 105, 90, 74, 71}, {92, 107, 95, 71, 77, 94}, {91, 102, 92, 94, 78, 93}, {104, 111, 91, 93, 81, 97}, {98, 110, 104, 97, 82, 96}, {99, 115, 98, 96, 88, 101}, {108, 114, 99, 101, 85, 100}, {118, 120, 119, 106, 95, 107}, {87, 116, 118, 107, 92, 102}, {109, 121, 87, 102, 91, 111}, {112, 124, 109, 111, 104, 110}, {113, 103, 112, 110, 98, 115}, {122, 126, 113, 115, 99, 114}, {123, 125, 122, 114, 108, 117}}],
Annotation[#, "Geometry"]& ]}],
MouseAppearanceTag["LinkHand"]],
AllowKernelInitialization->False],
"MeshGraphics",
AutoDelete->True,
Editable->False,
Selectable->False],
DefaultBaseStyle->{"MeshGraphics", FrontEnd`GraphicsHighlightColor -> Hue[0.1, 1, 0.7]},
Epilog->{
RGBColor[1, 0, 0], 
PointBox[CompressedData["
1:eJw1zWk4FHgcwHExGMbmGmbWOBpkXeUqbdH+p7DWkeRhaaidqWljUYpQzqVF
0jFoXZNil56pWeVYydH/1+qYR1KbYx1DbpL7eYxxzrYv9sX3+bz80k+c9Tkl
KyMjc+Rz/ylosgjx1a9G/ysy4C2ORczg20djP5ldFSG77X2s23IbeNZrdWvD
qRlU8qQtPyhCHp5Kx82lj8TIn5reo2KpAuXBpXoishRJnb7zXLZWh65/+pUs
DhIY0+dizxD5ZPjqRk7SPURk7P1lriXZjQp1cQ3JftMkxuM/jHfpEnRhfP/p
4CaOKmPxkthv0fsjvhHk2De7qw9nTfl/XfJsHZsOrEg5VY9wlGFCh94VAtgG
kU+vbA6iOmLHUsyaMoykE8fkoxfQa37k2yYvdUigblV0/EKCxEzOesnE5/+l
mFeTl6Uoo7fQj79JgS//5oQSUgiMMIcoi2hvGiQYCi8qtRIZSgL0/KS7AYT6
usq+eUFidJ1Ju2ZGXcMBzkHux5pnMeoRBuS6EWBtY5fvM3kRFoK2f6E+CRzj
bUw11quQT9qKaUylOiQW9KYylXoRjV2UPNdGBotm+/BTb+fQMosRabWDCrEZ
dqx5NwlSjs7XbZuiQTJTurN6pxRN85WVfcT6UB5QGT0fTmBkHen+PT+MDrEX
4yrf3VJkHKWJ5abqCVDVfPoBbXQZHxlKOtipTQKeT3FwyM8zWFuYdXSRow5B
zwQHLfMGsU1h9s7JC2SoaZ/4JG2sQQ1v6AWldlRoux/IdWUNIo18vhP5PA2O
v6/PLlRfQGXnDHqcP+pDcLZqpZbaCnq9JYIb7kmHxDpdaby2DOOaRWb3NQsj
uGPcwitMl2NwFCeYqYEkiLqgN6bmLsVXYrjeKQtqEKcfstGZIMZ/Cpaqz8po
QUfrG22vgXns555T26xHhdVIVk3KUD92bc984Z9Og+DKxh+53Hvo5YvQ9UWi
AbSmNrrWGw4hxz0Nr3Qu0EGUifO2vZ1Bd5Pf6e6zNYL7d9mU9h4xOrC7c79t
mzGs0oNTD3dKEW803q/XRx04IVeJRVsIoDUko9siIINP8Wrt4xtSzPTAlBln
KmjThTYKWhK8G6/ODLNpEJSruYMROINbXSmj+bYGwMm6sxRlPoiP2VToOCM6
TGZtZtQKS9GAr5mbi6URdK+Gvh/fLkLmZdlFHaXGUFMaf8vRegG55ZJ39PJM
QMG7IOGQwzJ6enjV7SRRC+IsI/ZsTSJC2Ed6msCSChWe/KUtvXIgK3LXy2TS
gLW/pd3x5iZuy1NdCJ/QBweFyorrk2Is6kIHeEl0yN7jkhwXtoApGy5nZPca
gWFa7uRA3TBm2X27N3HYGC5/WJEjlfJxXq7/velcE/jBXr5ifKofVTN/OpBu
agqqTpTDhk/mkWYOb0I8R4G1O8V1v7JIsMpNVBwX0+Bupuc3XclEsM9fG7Uf
0Ye5VGvUEyoH1ydu8WVc6LCtaemv4jwpfsRNCGiwNoKOCYWX9jorOI3NZfWO
G4M142L2wtw8bg/30C0rNYFcyT6J5vgQJnGNuq8HmoJg6VCX58gDvCYbrVwm
NIN9Xq1LwyYjaCysN1sopIHDtpT7hzTU4AObnVOeYQAMynpRXa0KPFQ5+7Dy
GzqQIz/E5lQpgiQrw8NXYggktpVV0gM5IPU3Hj/PMwY/3c7USt4m7vre/EnB
TRNgPSePVJyQ4PPq+ZZsK1N4PyYgM9dmcXi5ikeChjmIJm9rlkQP4d/Igzrz
fRbguT7iVFBfhf8FbB6T+Q==
"]]},
ImageSize->{181.5064697265625, Automatic}]\)]
Out[1]=

Generate a set of points arranged in a square lattice:

In[2]:=
b = LatticeData["SquareLattice", "Basis"]; pts = Tuples[Range[0, 9], 2] . b; Graphics[{PointSize[Medium], Red, Point@pts}]
Out[2]=

Generate the associated mesh region:

In[3]:=
meshvorSQ = VoronoiMesh[pts];
regSQ = MeshRegion[MeshCoordinates[meshvorSQ], With[{a = PropertyValue[{meshvorSQ, 2}, MeshCellMeasure]}, With[{m = 2}, Pick[MeshCells[meshvorSQ, 2], UnitStep[a - m], 0]]], MeshCellLabel -> {2 -> "Index"}]
Out[4]=

The resulting Voronoi entropy equals zero:

In[5]:=
ResourceFunction["MeshVoronoiEntropy"][regSQ]
Out[5]=

Scope (2) 

A Voronoi tessellation built from slightly distorted hexagons has a corresponding entropy equal to zero, since there is only one kind of polygon (P1=1; ln P1=0).

In[6]:=
bhex = {{-Sqrt[3], -1}, {-Sqrt[3], 1}}/2
Out[6]=

Generate lattice points from the basis plus distortion:

In[7]:=
hexpts = Tuples[Range[0, 8], 2] . bhex; dishexpts = hexpts + RandomReal[{-0.1, 0.1}, {Length[hexpts]}]
Out[7]=

Create a mesh:

In[8]:=
hexmesh = VoronoiMesh[dishexpts];
hexreg = MeshRegion[MeshCoordinates[hexmesh], With[{a = PropertyValue[{hexmesh, 2}, MeshCellMeasure]}, With[{m = 2}, Pick[MeshCells[hexmesh, 2], UnitStep[a - m], 0]]], Epilog -> {Red, Point[dishexpts]}]
Out[9]=
In[10]:=
ResourceFunction["MeshVoronoiEntropy"][hexreg]
Out[10]=

Applications (3) 

A semi-regular set of points obtained by alternatively deleting sites from a square lattice gives a twin-tile tessellation with regular hexagons and smaller squares:

In[11]:=
b = LatticeData["SquareLattice", "Basis"];
pts = Tuples[Range[0, 9], 2] . b;
newpts = Delete[pts, {{1}, {3}, {5}, {7}, {9}, {21}, {23}, {25}, {27}, {29}, {41}, {43}, {45}, {47}, {49}, {61}, {63}, {65}, {67}, {69}, {81}, {83}, {85}, {87}, {89}}];
Graphics[{PointSize[Medium], Red, Point@newpts}]
Out[5]=

Generate the corresponding mesh:

In[12]:=
meshvorC = VoronoiMesh[newpts];
MeshRegion[meshvorC, Epilog -> {Red, Point[pts]}, MeshCellLabel -> {2 -> "Index"}];
reg = MeshRegion[MeshCoordinates[meshvorC], With[{a = PropertyValue[{meshvorC, 2}, MeshCellMeasure]}, With[{m = 2}, Pick[MeshCells[meshvorC, 2], UnitStep[a - m], 0]]], Epilog -> {Red, Point[pts]}]
Out[7]=

The Voronoi entropy is =0.6365:

In[13]:=
ResourceFunction["MeshVoronoiEntropy"][reg]
Out[13]=

Properties and Relations (5) 

A hexagonal lattice basis:

In[14]:=
bhex = {{-Sqrt[3], -1}, {-Sqrt[3], 1}}/2
Out[14]=

Add distortions:

In[15]:=
hexpts = Tuples[Range[0, 8], 2] . bhex; dishexpts = hexpts + RandomReal[{-0.1, 0.1}, {Length[hexpts]}]
Out[15]=

Create an irregular hexagonal mesh:

In[16]:=
hexmesh = VoronoiMesh[dishexpts];
hexreg = MeshRegion[MeshCoordinates[hexmesh], With[{a = PropertyValue[{hexmesh, 2}, MeshCellMeasure]}, With[{m = 2}, Pick[MeshCells[hexmesh, 2], UnitStep[a - m], 0]]], Epilog -> {Red, Point[dishexpts]}]
Out[17]=

A Voronoi tessellation built from slightly distorted hexagons has a corresponding entropy still equal to zero, since there is only one kind of polygon (P1=1; ln P1=0):

In[18]:=
ResourceFunction["MeshVoronoiEntropy"][hexreg]
Out[18]=

By increasing the distortion, the Voronoi entropy increases in value:

In[19]:=
hexpts = Tuples[Range[0, 8], 2] . bhex; dishexpts = hexpts + RandomReal[{-0.5, 0.5}, {Length[hexpts]}];
In[20]:=
hexmesh = VoronoiMesh[dishexpts];
hexreg = MeshRegion[MeshCoordinates[hexmesh], With[{a = PropertyValue[{hexmesh, 2}, MeshCellMeasure]}, With[{m = 2}, Pick[MeshCells[hexmesh, 2], UnitStep[a - m], 0]]], Epilog -> {Red, Point[dishexpts]}]
Out[21]=
In[22]:=
ResourceFunction["MeshVoronoiEntropy"][hexreg]
Out[22]=

Neat Examples (3) 

Create a 2D set of points obtained from a spatial Poisson point process:

In[23]:=
res = Disk[{0, 1}];
sample = RandomPoint[res, 10^3];
spd = SpatialPointData[sample];
Short[pts = Flatten[spd[[1]], 1]]
Out[26]=

Generate a Voronoi mesh and show it along with the points:

In[27]:=
meshvorPoisson = VoronoiMesh[pts]; regrandom = MeshRegion[MeshCoordinates[meshvorPoisson], With[{a = PropertyValue[{meshvorPoisson, 2}, MeshCellMeasure]}, With[{m = 2}, Pick[MeshCells[meshvorPoisson, 2], UnitStep[a - m], 0]]], Epilog -> {Red, Point[pts]}]
Out[27]=

The Voronoi entropy is S{XMLElement[i, {}, {XMLElement[span, {class -> stylebox}, {vor}]}]}=1.71 according to the value reported in the literature for a randomly distributed set of points:

In[28]:=
ResourceFunction["MeshVoronoiEntropy"][regrandom]
Out[28]=

Publisher

Jessica Alfonsi

Requirements

Wolfram Language 13.0 (December 2021) or above

Version History

  • 1.0.0 – 03 May 2024

Source Metadata

Related Resources

Author Notes

No issues or additional options are devised, at the moment. This is the most basic version of the Voronoi entropy formula which does not take into account edge length. Probably, this will be considered in (another) evolved future version of the function.

License Information