Say I fill up the plane with regular hexagons whose side is distance 1, all packed together. Is there a formula or a pattern that gives all points? I let the $(0,0)$ be the center of the first hexagon, and the first six points are easy $(1,0),(-1,0),(1/2,\sqrt{3}/2),(-1/2,\sqrt{3}/2),(1/2,-\sqrt{3}/2),(-1/2,-\sqrt{3}/2)$. Now can each other point be extended from those? It is easy to handle moving sideways since all we have to do is just add one to the $x$ coordinate each time. But what about moving upwards? Thanks in advance.
Formula for the points in a grid of hexagons.
2.6k Views Asked by Bumbble Comm https://math.techqa.club/user/bumbble-comm/detail AtThere are 2 best solutions below
On
The question is about finding the centers and vertices of a regular hexagonal tiling of the Cartesian plane. All hexagon center points are at coordinates $$(3n,m\sqrt3) \tag{1}$$ and $$\Big(3n+\frac32,(m+\frac12)\sqrt3\Big) \tag{2}$$ while all hexagon vertices are at coordinates $$\Big(3n-\frac12,(m-\frac12)\sqrt3\Big), \tag{3}$$ $$(3n+1,m\sqrt3), \tag{4}$$ $$(3n-1,m\sqrt3), \tag{5}$$ $$\Big(3n+\frac12,(m+\frac12)\sqrt3\Big) \tag{6}$$ where $\,n,m\,$ are any integers. This comes from the center points triangular lattice being the disjoint union of two orthogonal lattices and the hexagonal vertices grid being the disjoint union of four orthogonal lattices, with all six of the lattices given explicitly above. Also notice how each hexagon has six vertices shared among three adjacent hexagons.
For example, for $\,n=m=0\,$ the hexagonal vertices with coordinates $\,(1,0),\, (-1,0),\, (1/2,\sqrt{3}/2),\, (-1/2,-\sqrt{3}/2)\,$ come from equations $(4),(5),(6),(3)$ respectively, the vertex $\,(-1/2,\sqrt{3}/2),\,$ comes from $\,n=0,m=1\,$ with equation $(3)$ and $\,(1/2,-\sqrt{3}/2)\,$ comes from $\,n=0,m=-1\,$ with equation $(6)$.
Notice that the hexagonal tiling has a period rectangle with four vertices $\,(0,0),\,(3,0),\,(0,\sqrt{3}),\,(3,\sqrt{3}).$
For those with access to Wolfram Mathematica the following
code displays a few points labeled with $n, m$ and equation number:
c[u_, x_] := Complex @@ ({3, Sqrt[3]}*(u/6 + x));
p[1, x_] := c[{0, 0}, x];
p[2, x_] := c[{3, 3}, x];
p[3, x_] := c[{-1, -3}, x];
p[4, x_] := c[{2, 0}, x];
p[5, x_] := c[{-2, 0}, x];
p[6, x_] := c[{1, 3}, x];
With[{M = 1}, ComplexListPlot[
Flatten[Table[Labeled[p[k, {n, m}], {k, n, m}, Top],
{k, 1, 6}, {n, -M, M}, {m, -M, M}], 3],
Axes -> True, Ticks -> False, ImageSize -> 500, ImagePadding -> 20]]
To display more points, increase the value of M.
I find it easier to think in terms of complex numbers.
If the center is $(0,0)$ and the hexagon has side $1$, then the other hexagons are integer translations of the central hexagon by $1+\omega$ and $-2+\omega$, where $\omega = \cos(60^\circ)+i \sin(60^\circ)$.
The centers of the hexagons are thus $$ m(1+\omega) + n(-2+\omega) = (m-2n)+(m+n)\omega $$ Each center has exactly one such representation.
The vertices are the translations of the points $1$ and $\omega$ by a center and are thus given by: $$ 1+c, \quad \omega+c $$ where $c$ is a center. Each vertex has exactly one such representation.