Consider a regular square lattice, formed by a grid of intersection points of uniformly spaced parallel horizontal and vertical lines in the plane. One may easily find points that form the vertices of a square in this lattice.

But can one find points that form the vertices of regular hexagon? Or a regular pentagon? How about an equilateral triangle? And so on.

The answer is that one cannot find these shapes using vertices in the square lattice.

**Theorem.** There is no regular pentagon in the square lattice, and no regular hexagon, no regular heptagon, and so on. Indeed, the only nondegenerate regular polygons to be found using vertices in a square lattice are squares themselves.

I think this must be a classical result. I was inspired by Vaughn Climenhaga’s beautiful image in his Proof without words answer on MathOverflow, which handled the case of a hexagon. Reflecting upon it, I realized that the same idea works with other regular polygons, and I endeavored to produce the corresponding images, below.

**Proof.** Suppose that we could find five vertices in the square lattice that formed a regular pentagon. Construct on each side a perpendicular of the same length, as pictured in brown below. Since the lattice is invariant under $90^\circ$ rotations centered at a lattice point, each of these new points is still a lattice point. And by symmetry, they form the vertices of a (proportionally smaller) regular pentagon. Therefore, there can be no regular pentagon at all in the square lattice, since if there is one, it is clear that there would have to be a smallest instance.

An alternative way to argue is: by similarity, the size of the smaller pentagon shrinks by the same factor with each step, and so in the limit the size approaches zero; but clearly, we cannot have a lattice-point regular pentagon whose size is smaller than the square lattice spacing itself. So there is no regular pentagon in the square lattice.

The same argument works with larger regular polygons. The main point to realize is that for all regular $n$-gons, where $n>4$, when you construct the perpendicular on one of the sides, the resulting point is strictly inside the original polygon, and this is why the resulting regular $n$-gon is strictly smaller than the original. This completes the proof for all $n$-gons for $n>4$.

The case of an equilateral triangle requires special care. If one attempts the same construction idea as above, building the perpendicular on the edges of a triangle, then the resulting triangle becomes larger, rather than smaller, and so the proof method breaks down.

Nevertheless, one can reduce the equilateral triangle case to a hexagon: if you could find an equilateral triangle in the square lattice, then since the lattice is invariant under translation via a lattice-point line segment, it follows that we could build a regular hexagon. But we have already showed that we cannot find a regular hexagon in the square lattice, and so we cannot find an equilateral triangle.

So we’ve completed the proof for all nondegenerate regular polygons, except the square. **QED**

For those who might be interested, here is the tex code I used to generate the nested polygons. The code accepts input $n$ to produce a regular $n$-gon with the perpendiculars constructed.

\documentclass{minimal}

\usepackage[rgb]{xcolor}

\usepackage{tikz}

\usetikzlibrary{positioning,calc}

\usepackage{ifthen}

`\begin{document}`

`\newcommand\nestedpolygon[1]{`

\begin{tikzpicture}[scale=4]

\pgfmathsetmacro\n{#1}

\pgfmathsetmacro\m{\n-1}

\pgfmathsetmacro\shrink{sqrt((sin(180/\n))^2+(cos(180/\n)-2*sin(180/\n))^2)}

\pgfmathsetmacro\OffSet{acos((sin(180/\n)^2+cos(180/\n)*(cos(180/\n)-2*sin(180/\n)))/\shrink)}

\pgfmathsetmacro\gc{360+100*exp((5-\n)/3.5)}

\pgfmathsetmacro\gcc{640+120*exp((5-\n)/3)}

\definecolor{GonColor}{wave}{\gc}

\definecolor{GonColorC}{wave}{\gcc}

\pgfmathsetmacro\d{8}

\foreach \k in {0,...,\d} {

\pgfmathsetmacro\R{\shrink^\k};

\pgfmathsetmacro\c{100*exp(-\k/6)};

\pgfmathsetmacro\a{2*\R*sin(180/\n)}

\pgfmathsetmacro\f{\k*\OffSet}

\foreach \i in {0,...,\m} {

\coordinate (x) at (360*\i/\n+\f:\R);

\coordinate (y) at (360*\i/\n+360/\n+\f:\R);

% the perp indicator

\ifthenelse{\k=0\AND\i=\m\AND\n<20}{\draw[very thin,black!\c!white] ($(x)!.85!(y)$) node (p) {} --

($(p)!1!90:(y)$) node (q) {} -- ($(q)!1!90:(p)$);}{}

% connecting to lower level

\draw [line width=.5*exp(-\k/2),GonColorC!\c!white] (y) -- ($(y)!1!-90:(x)$);

% edge and vertices of current gon

\draw [line width=1.5*exp(-\k/2),GonColor!\c!white] (x) node

[circle,scale=.3*\R,black!\c!white,fill=black!\c!white] {} -- (y);

}

`\draw (\f:\R) node [circle,scale=.3*\R,black!\c!white,fill=black!\c!white] {};`

}

\end{tikzpicture}}

`\foreach\n in {5,6,7,8,9,10,12,16,20} {`

\eject

$$\nestedpolygon{\n}$$

}

`\end{document}`