The octonions in quaternion pairs,
\begin{center}
\newcommand*\circled[1]{
%\tikz[baseline=(char.base)]{
% \node[shape=circle,draw=white,inner sep=0pt,fill=white] (char)
%{
\small{\(#1\)}
%}
%;}
}
\begin{tikzpicture}
\begin{scope}[very thick,decoration={
markings,
mark=at position 0.5 with {\arrow{>}}}
]
\draw[draw=white, double=black, thick,->] (0,0) circle (1);
\draw[thin,->] (1,0) -- (1,0.0001);
\draw[thin,->] (-1,0) -- (-1,-0.0001);
\draw[thin,->] ({-1/sqrt(2)},{-1/sqrt(2)}) -- ({-1/sqrt(2)+0.001},{-1/sqrt(2)-0.001});
\draw[thin,->] ({1/sqrt(2)},{-1/sqrt(2)}) -- ({1/sqrt(2)+0.001},{-1/sqrt(2)+0.001});
\node (0) at (0,0) {\circled{(0,1)}};
\foreach \i/\j/\k in {0/{(0,i)}/{(k,0)},1/{(0,j)}/{(i,0)},2/{(0,k)}/{(j,0)}}{%
\node[fill=white] (\i;0) at ({2*cos(-30+120*\i)},{2*sin(-30+120*\i)}) {\(\j\)};
\node[fill=white] (\i;1) at ({cos(30+120*\i)},{sin(30+120*\i)}) {\(\k\)};
}
\foreach \i/\j/\k/\l in {0/0/0/1,0/1/1/0,1/0/1/1,1/1/2/0,2/0/2/1,2/1/0/0}{%
\draw[thin,postaction={decorate}] (\i;\j) -- (\k;\l);
}
\draw[thin,postaction={decorate}] (0) -- (0;1);
\draw[thin,postaction={decorate}] (0) -- (1;1);
\draw[thin,postaction={decorate}] (2;1) -- (0);
\draw[thin,postaction={decorate}] (0) -- (0;0);
\draw[thin,postaction={decorate}] (0) -- (1;0);
\draw[thin,postaction={decorate}] (0) -- (2;0);
%\draw[thin,postaction={decorate}] (1) -- (7);
%\draw[thin,postaction={decorate}] (2) -- (4);
%\draw[thin,postaction={decorate}] (2) -- (5);
%\draw[thin,postaction={decorate}] (3) -- (4);
%\draw[thin,postaction={decorate}] (3) -- (6);
%\draw[thin,postaction={decorate}] (4) -- (5);
%\draw[thin,postaction={decorate}] (4) -- (6);
%\draw[thin,postaction={decorate}] (4) -- (7);
%\draw[thin,postaction={decorate}] (5) -- (3);
%\draw[thin,postaction={decorate}] (6) -- (1);
%\draw[thin,postaction={decorate}] (7) -- (2);
\end{scope}
\end{tikzpicture}
\end{center}
Rotating the diagram by \(\sfrac{1}{3}\) of a revolution gives an automorphism of \(\Oct{}\).
Rotating by \(\sfrac{1}{6}\) doesn't work: the inner arrows don't go the right way, but if we change \(e_4 \mapsto -e_4\), we fix that.
Similarly, if we flip the diagram by a reflection preserving the vertical axis, and then change the signs of \(e_6\) and \(e_2\) we find another automorphism.
We can also draw this diagram as a cube:
\begin{center}
\newcommand{\Depth}{1}
\newcommand{\Height}{1}
\newcommand{\Width}{1}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (0) at (0,0,0);
\coordinate (1) at (\Depth,0,\Height);
\coordinate (2) at (\Depth,\Width,0);
\coordinate (3) at (0,\Width,\Height);
\coordinate (4) at (\Depth,\Width,\Height);
\coordinate (5) at (0,\Width,0);
\coordinate (6) at (0,0,\Height);
\coordinate (7) at (\Depth,0,0);
\draw[gray!10,fill=gray!10] (0) -- (6) -- (1) -- (7) -- cycle;% Left Face
\draw[gray!10,fill=gray!30] (0) -- (7) -- (2) -- (5) -- cycle;% Bottom Face
\draw[gray!10,fill=gray!40] (0) -- (6) -- (3) -- (5) -- cycle;% Back Face
\draw[gray!10,fill=gray!20,opacity=0.6] (1) -- (4) -- (2) -- (7) -- cycle;% Front Face
\draw[gray!10,fill=gray!20,opacity=0.8] (1) -- (4) -- (3) -- (6) -- cycle;% Top Face
\draw[gray!10,fill=gray!20,opacity=0.8] (4) -- (3) -- (5) -- (2) -- cycle;% Right Face
\node at (1) {\small\(1\)};
\node at (2) {\small\(2\)};
\node at (3) {\small\(3\)};
\node at (4) {\small\(4\)};
\node at (5) {\small\(5\)};
\node at (6) {\small\(6\)};
\node at (7) {\small\(7\)};
%% Following is for debugging purposes so you can see where the points are
%% These are last so that they show up on top
%\foreach \xy in {O, A, B, C, D, E, F, G}{
% \node at (\xy) {\xy};
%}
\end{tikzpicture}
\end{center}
with one vertex not marked.
If we let \(k=\Z{}/2\Z{}\), then the cube is the set of points in \(k^3\), or more precisely, since the unlabelled point is the origin and is deleted, the cube is the projective plane \(\Proj{2}_k\) over the finite field \(k\) of order 2.
The lines in this projective plane, suitably ordered, are
\begin{center}
\newcommand{\Depth}{1}
\newcommand{\Height}{1}
\newcommand{\Width}{1}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords]%Highlight the bottom
\coordinate (0) at (0,0,0);
\coordinate (1) at (\Depth,0,\Height);
\coordinate (2) at (\Depth,\Width,0);
\coordinate (3) at (0,\Width,\Height);
\coordinate (4) at (\Depth,\Width,\Height);
\coordinate (5) at (0,\Width,0);
\coordinate (6) at (0,0,\Height);
\coordinate (7) at (\Depth,0,0);
%
\draw[gray!10,fill=gray!10] (0) -- (6) -- (1) -- (7) -- cycle;% Left Face
\draw[gray!10,fill=gray!110] (0) -- (7) -- (2) -- (5) -- cycle;% Bottom Face
\draw[gray!10,fill=gray!40] (0) -- (6) -- (3) -- (5) -- cycle;% Back Face
\draw[gray!10,fill=gray!20,opacity=0.6] (1) -- (4) -- (2) -- (7) -- cycle;% Front Face
\draw[gray!10,fill=gray!20,opacity=0.8] (1) -- (4) -- (3) -- (6) -- cycle;% Top Face
\draw[gray!10,fill=gray!20,opacity=0.8] (4) -- (3) -- (5) -- (2) -- cycle;% Right Face
\node at (1) {\small\(1\)};
\node at (2) {\small\(2\)};
\node at (3) {\small\(3\)};
\node at (4) {\small\(4\)};
\node at (5) {\small\(5\)};
\node at (6) {\small\(6\)};
\node at (7) {\small\(7\)};
%% Following is for debugging purposes so you can see where the points are
%% These are last so that they show up on top
%\foreach \xy in {O, A, B, C, D, E, F, G}{
% \node at (\xy) {\xy};
%}
\end{tikzpicture}
\begin{tikzpicture}[tdplot_main_coords]%Highlight the left
\coordinate (0) at (0,0,0);
\coordinate (1) at (\Depth,0,\Height);
\coordinate (2) at (\Depth,\Width,0);
\coordinate (3) at (0,\Width,\Height);
\coordinate (4) at (\Depth,\Width,\Height);
\coordinate (5) at (0,\Width,0);
\coordinate (6) at (0,0,\Height);
\coordinate (7) at (\Depth,0,0);
%
\draw[gray!10,fill=gray!90] (0) -- (6) -- (1) -- (7) -- cycle;% Left Face
\draw[gray!10,fill=gray!30] (0) -- (7) -- (2) -- (5) -- cycle;% Bottom Face
\draw[gray!10,fill=gray!40] (0) -- (6) -- (3) -- (5) -- cycle;% Back Face
\draw[gray!10,fill=gray!20,opacity=0.6] (1) -- (4) -- (2) -- (7) -- cycle;% Front Face
\draw[gray!10,fill=gray!20,opacity=0.8] (1) -- (4) -- (3) -- (6) -- cycle;% Top Face
\draw[gray!10,fill=gray!20,opacity=0.8] (4) -- (3) -- (5) -- (2) -- cycle;% Right Face
\node at (1) {\small\(1\)};
\node at (2) {\small\(2\)};
\node at (3) {\small\(3\)};
\node at (4) {\small\(4\)};
\node at (5) {\small\(5\)};
\node at (6) {\small\(6\)};
\node at (7) {\small\(7\)};
%% Following is for debugging purposes so you can see where the points are
%% These are last so that they show up on top
%\foreach \xy in {O, A, B, C, D, E, F, G}{
% \node at (\xy) {\xy};
%}
\end{tikzpicture}
\begin{tikzpicture}[tdplot_main_coords]%Highlight back face
\coordinate (0) at (0,0,0);
\coordinate (1) at (\Depth,0,\Height);
\coordinate (2) at (\Depth,\Width,0);
\coordinate (3) at (0,\Width,\Height);
\coordinate (4) at (\Depth,\Width,\Height);
\coordinate (5) at (0,\Width,0);
\coordinate (6) at (0,0,\Height);
\coordinate (7) at (\Depth,0,0);
%
\draw[gray!10,fill=gray!10] (0) -- (6) -- (1) -- (7) -- cycle;% Left Face
\draw[gray!10,fill=gray!30] (0) -- (7) -- (2) -- (5) -- cycle;% Bottom Face
\draw[gray!10,fill=gray!120] (0) -- (6) -- (3) -- (5) -- cycle;% Back Face
\draw[gray!10,fill=gray!20,opacity=0.6] (1) -- (4) -- (2) -- (7) -- cycle;% Front Face
\draw[gray!10,fill=gray!20,opacity=0.8] (1) -- (4) -- (3) -- (6) -- cycle;% Top Face
\draw[gray!10,fill=gray!20,opacity=0.8] (4) -- (3) -- (5) -- (2) -- cycle;% Right Face
\node at (1) {\small\(1\)};
\node at (2) {\small\(2\)};
\node at (3) {\small\(3\)};
\node at (4) {\small\(4\)};
\node at (5) {\small\(5\)};
\node at (6) {\small\(6\)};
\node at (7) {\small\(7\)};
%% Following is for debugging purposes so you can see where the points are
%% These are last so that they show up on top
%\foreach \xy in {O, A, B, C, D, E, F, G}{
% \node at (\xy) {\xy};
%}
\end{tikzpicture}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (0) at (0,0,0);
\coordinate (1) at (\Depth,0,\Height);
\coordinate (2) at (\Depth,\Width,0);
\coordinate (3) at (0,\Width,\Height);
\coordinate (4) at (\Depth,\Width,\Height);
\coordinate (5) at (0,\Width,0);
\coordinate (6) at (0,0,\Height);
\coordinate (7) at (\Depth,0,0);
%
\draw[gray!10,fill=gray!10] (0) -- (6) -- (1) -- (7) -- cycle;% Left Face
\draw[gray!10,fill=gray!30] (0) -- (7) -- (2) -- (5) -- cycle;% Bottom Face
\draw[gray!10,fill=gray!40] (0) -- (6) -- (3) -- (5) -- cycle;% Back Face
\draw[gray!10,fill=gray!20,opacity=0.6] (1) -- (4) -- (2) -- (7) -- cycle;% Front Face
\draw[gray!10,fill=gray!20,opacity=0.8] (1) -- (4) -- (3) -- (6) -- cycle;% Top Face
\draw[gray!10,fill=gray!20,opacity=0.8] (4) -- (3) -- (5) -- (2) -- cycle;% Right Face
\draw[gray!10,fill=gray!80,opacity=0.8] (0) -- (6) -- (4) -- (2) -- cycle;
\node at (1) {\small\(1\)};
\node at (2) {\small\(2\)};
\node at (3) {\small\(3\)};
\node at (4) {\small\(4\)};
\node at (5) {\small\(5\)};
\node at (6) {\small\(6\)};
\node at (7) {\small\(7\)};
%% Following is for debugging purposes so you can see where the points are
%% These are last so that they show up on top
%\foreach \xy in {O, A, B, C, D, E, F, G}{
% \node at (\xy) {\xy};
%}
\end{tikzpicture}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (0) at (0,0,0);
\coordinate (1) at (\Depth,0,\Height);
\coordinate (2) at (\Depth,\Width,0);
\coordinate (3) at (0,\Width,\Height);
\coordinate (4) at (\Depth,\Width,\Height);
\coordinate (5) at (0,\Width,0);
\coordinate (6) at (0,0,\Height);
\coordinate (7) at (\Depth,0,0);
%
\draw[gray!10,fill=gray!10] (0) -- (6) -- (1) -- (7) -- cycle;% Left Face
\draw[gray!10,fill=gray!30] (0) -- (7) -- (2) -- (5) -- cycle;% Bottom Face
\draw[gray!10,fill=gray!40] (0) -- (6) -- (3) -- (5) -- cycle;% Back Face
\draw[gray!10,fill=gray!20,opacity=0.6] (1) -- (4) -- (2) -- (7) -- cycle;% Front Face
\draw[gray!10,fill=gray!20,opacity=0.8] (1) -- (4) -- (3) -- (6) -- cycle;% Top Face
\draw[gray!10,fill=gray!20,opacity=0.8] (4) -- (3) -- (5) -- (2) -- cycle;% Right Face
\draw[gray!10,fill=gray!80,opacity=0.8] (0) -- (1) -- (4) -- (5) -- cycle;
\node at (1) {\small\(1\)};
\node at (2) {\small\(2\)};
\node at (3) {\small\(3\)};
\node at (4) {\small\(4\)};
\node at (5) {\small\(5\)};
\node at (6) {\small\(6\)};
\node at (7) {\small\(7\)};
%% Following is for debugging purposes so you can see where the points are
%% These are last so that they show up on top
%\foreach \xy in {O, A, B, C, D, E, F, G}{
% \node at (\xy) {\xy};
%}
\end{tikzpicture}
{
\tdplotsetmaincoords{50}{110}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (0) at (0,0,0);
\coordinate (1) at (\Depth,0,\Height);
\coordinate (2) at (\Depth,\Width,0);
\coordinate (3) at (0,\Width,\Height);
\coordinate (4) at (\Depth,\Width,\Height);
\coordinate (5) at (0,\Width,0);
\coordinate (6) at (0,0,\Height);
\coordinate (7) at (\Depth,0,0);
\draw[gray!10,fill=gray!10] (0) -- (6) -- (1) -- (7) -- cycle;% Left Face
\draw[gray!10,fill=gray!30] (0) -- (7) -- (2) -- (5) -- cycle;% Bottom Face
\draw[gray!10,fill=gray!40] (0) -- (6) -- (3) -- (5) -- cycle;% Back Face
\draw[gray!10,fill=gray!20,opacity=0.6] (1) -- (4) -- (2) -- (7) -- cycle;% Front Face
\draw[gray!10,fill=gray!20,opacity=0.8] (1) -- (4) -- (3) -- (6) -- cycle;% Top Face
\draw[gray!10,fill=gray!20,opacity=0.8] (4) -- (3) -- (5) -- (2) -- cycle;% Right Face
\draw[gray!10,fill=gray!80,opacity=0.8] (0) -- (7) -- (4) -- (3) -- cycle;
\node at (1) {\small\(1\)};
\node at (2) {\small\(2\)};
\node at (3) {\small\(3\)};
\node at (4) {\small\(4\)};
\node at (5) {\small\(5\)};
\node at (6) {\small\(6\)};
\node at (7) {\small\(7\)};
%% Following is for debugging purposes so you can see where the points are
%% These are last so that they show up on top
%\foreach \xy in {O, A, B, C, D, E, F, G}{
% \node at (\xy) {\xy};
%}
\end{tikzpicture}
}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (0) at (0,0,0);
\coordinate (1) at (\Depth,0,\Height);
\coordinate (2) at (\Depth,\Width,0);
\coordinate (3) at (0,\Width,\Height);
\coordinate (4) at (\Depth,\Width,\Height);
\coordinate (5) at (0,\Width,0);
\coordinate (6) at (0,0,\Height);
\coordinate (7) at (\Depth,0,0);
\draw[gray!10,fill=gray!10] (0) -- (6) -- (1) -- (7) -- cycle;% Left Face
\draw[gray!10,fill=gray!30] (0) -- (7) -- (2) -- (5) -- cycle;% Bottom Face
\draw[gray!10,fill=gray!40] (0) -- (6) -- (3) -- (5) -- cycle;% Back Face
\draw[gray!10,fill=gray!20,opacity=0.6] (1) -- (4) -- (2) -- (7) -- cycle;% Front Face
\draw[gray!10,fill=gray!20,opacity=0.8] (1) -- (4) -- (3) -- (6) -- cycle;% Top Face
\draw[gray!10,fill=gray!20,opacity=0.8] (4) -- (3) -- (5) -- (2) -- cycle;% Right Face
\draw[gray!10,fill=gray!80,opacity=0.8] (1) -- (3) -- (2) -- cycle;
\node at (1) {\small\(1\)};
\node at (2) {\small\(2\)};
\node at (3) {\small\(3\)};
%\node at (4) {\small\(4\)};
\node at (5) {\small\(5\)};
\node at (6) {\small\(6\)};
\node at (7) {\small\(7\)};
\end{tikzpicture}
\end{center}
Each line represents a copy of the quaternions living inside \(\Oct{}\), and if we label the lines with arrows, they recover our multiplication table.
\draw (0,0) circle (1cm);
. Drawing a circle and filling it:\fill (2,2) circle (.15cm);
. Drawing a straight line\draw (0,0) -- (2,2);
I think that would do it. The(x,y)
are coordinates, and you can also use(θ:1cm)
for polar coordinates (e.g.,(30:2cm)
, where30
is the angle). By the way, just reading the first pages of the pgfmanual.pdf would clear most of it.regular polygon
and look at the first example.