Most LaTeX-ers know about Tikz, which allows the user to create images in LaTeX without having to embed images created from an external program. The main advantages are that

1. The ambient LaTeX fonts are used in the image, so labels and such conform to the ambient style of the document.
2. The size of the .tex file is kept small, since it is only text you are creating.
3. It yields a picture that is smooth and that looks good upon zooming in (i.e., the resolution of the picture is good).
4. It is functional code so that you can automate the drawing of many pictures by giving commands such as “draw a line between these two points”.

The main disadvantage, is that there is a steep learning curve. The best way to learn is through examples, and even though I’m still a hack, my tikz code has improved via my copying segments of other people’s code. For geometry, there isn’t much out there, so I thought that I would dump some images here. Below are some Tikz pictures of configurations in finite geometry that I’ve collected and think should be available for everyone else to use. A big thanks to Stephen Glasby who went to a lot of trouble to make the two generalised hexagons of order 2. If you have suggestions on how I can simplify my code, please let me know.

### Desargues’ configuration, two ways

\begin{tikzpicture}
\tikzstyle{point1}=[ball color=cyan, circle, draw=black, inner sep=0.1cm]
\tikzstyle{point2}=[ball color=green, circle, draw=black, inner sep=0.1cm]
\tikzstyle{point3}=[ball color=red, circle, draw=black, inner sep=0.1cm]
\node (v1) at (0,8) [ball color=blue, circle, draw=black, inner sep=0.1cm] {};
\node (v2) at (0,6) [point1] {};
\node (v3) at (2,5.5) [point1] {};
\node (v4) at (1.5,4) [point1] {};
\node (v5) at (0,0) [point2] {};
\node (v6) at (2.75*2,8-2.75*2.5) [point2] {};
\node (v7) at (1.5*1.5,8-1.5*4) [point2] {};
\draw (v1) -- (v2) -- (v5);
\draw (v1) -- (v3) -- (v6);
\draw (v1) -- (v4) -- (v7);
\draw (v2) -- (v3) -- (v4) -- (v2);
\draw (v5) -- (v6) -- (v7) -- (v5);
\node (v8) at (intersection of v2--v3 and v5--v6) [point3] {};
\node (v9) at (intersection of v2--v4 and v5--v7) [point3] {};
\node (v10) at (intersection of v3--v4 and v6--v7) [point3] {};
\draw (v3) -- (v8) -- (v6);
\draw (v4) -- (v9) -- (v7);
\draw (v4) -- (v10) -- (v7);
\draw (v8) -- (v9) -- (v10);
\end{tikzpicture}


… and the second one:

\begin{tikzpicture}
\tikzstyle{point} = [ball color=black, circle,  draw=black, inner sep=0.1cm]
\foreach\x in {0, 72, 144, 216, 288}{
\begin{scope}[rotate=\x]
\coordinate (o1) at (-0.588, -0.809);
\coordinate (o2) at (0.588, -0.809);
\coordinate (c1) at (-1.1, 4.6);
\coordinate (c2) at (1.1, 4.6);
\coordinate (o3) at (0, 3.236);
\draw[color=black] (o3) -- (3.236*-0.588, 3.236*-0.809);
\draw[color=blue] (o1) ..  controls (c1) and (c2) ..  (o2);
\end{scope}
}
\foreach\x in {0, 72, 144, 216, 288}{
\begin{scope}[rotate=\x]
\coordinate (o2) at (0.588, -0.809);
\coordinate (o3) at (0, 3.236);
\fill[point] (o2) circle (2pt);
\fill[point] (o3) circle (2pt);
\end{scope}
}
\end{tikzpicture}


### The generalised quadrangle of order 2

I think Gordon gave me the original tikz code for this and then I tweaked it.

\begin{tikzpicture}
\tikzstyle{point}=[ball color=magenta, circle, draw=black, inner sep=0.1cm]
\foreach \x in {18,90,...,306}{
\node [point] (t\x) at (\x:2.65){};
}
\foreach \x in {54,126,...,342}{
\draw [color=blue, double=green](\x:1cm) circle (1.17557cm);
}
\fill [white] (0,0) circle (1cm);
\foreach \x in {54,126,...,342}{
\node[point] (i\x) at (\x:1cm) {};
\node[point] (o\x) at (\x:2.17557cm) {};
}

\draw [color=blue,double=green] (t90)--(o126)--(t162)--(o198)--(t234)--(o270)--(t306)--(o342)--(t18)--(o54)--(t90);
\draw (t90)--(i270)--(o270);
\draw (t162)--(i342)--(o342);
\draw (t234)--(i54)--(o54);
\draw (t306)--(i126)--(o126);
\draw (t18)--(i198)--(o198);
\end{tikzpicture}


### The two generalised hexagons of order 2

These pictures were originally drawn by Schroth in his 1999 paper, and then appeared in Burkard Polster’s book “A geometrical picture book”.

\begin{tikzpicture}
\foreach\n in {0, 1,..., 6}{
\begin{scope}[rotate=\n*51.4286]
\coordinate (a0) at (10,0);
\coordinate (b0) at (7,0);
\coordinate (c0) at (1.45,0);
\coordinate (d0) at (4.878,-0.4878);
\coordinate (e0) at (2.1729,0.37976);
\coordinate (f0) at (1.45,0.612);
\coordinate (g0) at (2.78,-0.585);
\coordinate (h0) at (4.074,0.7846);
\coordinate (i0) at (6.0976,2.9268);
\foreach\k in {1, 2,..., 6}{
\foreach\p in {a,b,c,d,e,f,g,h,i}{
\coordinate (\p\k) at ($(0,0)!1! \k*51.4286:(\p0)$);
}
}
\draw[thick,blue] (a0)--(b0)--(c0);
\draw[thick,blue] (d0)--(e0)--(f0);
\draw[thick,black] (g0)--(h0)--(i0);
\draw[thick,black] (a0)--(g1)--(a3);
\draw[thick,green] (i0)--(d1)--(i2);
\draw[thick,black] (c0)--(g3)--(d3);
\draw[thick,color=purple] (b0) .. controls (5.7,-1.8) and (4.6,-2.2)
.. (h6) .. controls (1.5,-3.2) and (-1,-2.4) .. (e4);
\draw[thick,black] (b0)--(h0)--(e2);
\draw[thick,purple] (f6)--(c0)--(f0);
\foreach\k in {1, 2,..., 6}{
\foreach\p in {a,b,c,d,e,f,g,h,i}{
}
}
\end{scope}
}
\end{tikzpicture}


\begin{tikzpicture}
\foreach\n in {0, 1,..., 6}{
\begin{scope}[rotate=\n*51.4286]
\coordinate (a0) at (85,0);
\coordinate (b0) at (55,0);
\coordinate (c0) at (12.5,0);
\coordinate (d0) at (8.5,1.3);
\coordinate (e0) at (16.2,9);
\coordinate (f0) at (30,14.3);
\coordinate (g0) at (26.6,17.0);
\coordinate (h0) at (26.3,22.4);
\coordinate (i0) at (29.5,28);
\foreach\k in {1, 2,..., 6}{
\foreach\p in {a,b,c,d,e,f,g,h,i}{
\coordinate (\p\k) at ($(0,0)!1! \k*51.4286:(\p0)$);
}
}
\draw[thick,black] (a0)--(e1)--(a3);
\draw[thick,green] (b0)--(h0)--(b2);
\draw[thick,purple] (f0)--(g0)--(f1);
\draw[thick,blue] (h0)--(i0)--(a1);
\draw[thick,purple] (h6)--(c0)--(d0);
\draw[thick,purple] (f0)--(e0)--(i3);
\draw[thick,black] (b0)--(i6)--(g6);
\draw[thick,color=blue] (g0) .. controls (27,2) and (17,-5)
.. (d6) .. controls (-7,-5) and (-5,-5) .. (c3);
\draw[thick,color=blue] (c0) .. controls (16,3) and (17,5)
.. (e0) .. controls (15,13) and (8,15) .. (d1);
\foreach\k in {1, 2,..., 6}{
\foreach\p in {a,b,c,d,e,f,g,h,i}{
}
}
\end{scope}
}
\end{tikzpicture}


The first is the Split Cayley hexagon as it is usually given, whilst the second is its dual.

### The projective plane of order 2

\begin{tikzpicture}
\tikzstyle{point}=[ball color=cyan, circle, draw=black, inner sep=0.1cm]
\node (v7) at (0,0) [point] {};
\draw (0,0) circle (1cm);
\node (v1) at (90:2cm) [point] {};
\node (v2) at (210:2cm) [point] {};
\node (v4) at (330:2cm) [point] {};
\node (v3) at (150:1cm) [point] {};
\node (v6) at (270:1cm) [point] {};
\node (v5) at (30:1cm) [point] {};
\draw (v1) -- (v3) -- (v2);
\draw (v2) -- (v6) -- (v4);
\draw (v4) -- (v5) -- (v1);
\draw (v3) -- (v7) -- (v4);
\draw (v5) -- (v7) -- (v2);
\draw (v6) -- (v7) -- (v1);
\end{tikzpicture}