Skip to main content

rotating a tetrahedron about its rotational symmetry axes

a regular tetrahedron has twelve rotational symmetries. they can be classified based on the axis about which we do the rotation. seeing the symmetries in one of them is easy. the other one though, is quite nontrivial. i have managed to understand it with the help of a visualization. later, i have realized that it is possible to accept it if one performs a few geometric deductions, too.

let’s describe first, the easy rotation. take a regular tetrahedron. construct the line passing through one of its vertex and the opposite centroid. now rotate the tetrahedron about that line 2pi/3 radians. you’ll see that this maps the tetrahedron to itself. rotating it 4pi/3 radians does the same. so, for this line, there is two rotational symmetries. see that there is four lines like that, at total.

the second one is done as follows: construct the line passing through the midpoint of any edge chosen and the midpoint of the opposite edge. rotate the tetrahedron about that line pi radians.

now, i think it is fairly hard to believe that this rotation maps the tetrahedron to itself. as i said, a visualization helped me seeing it. but, what i want to do is showing you the geometric deductions i have discovered from the visualization, that forces this rotation to map the tetrahedron to itself.

see first that the line about which we do the rotation is orthogonal to both edges of which it passes through the midpoints. consider for now, only one edge. and keep in mind that we rotate pi radians. so indeed, this rotation interchanges the positions of the vertices of that edge. this is also true for the other edge. thus, after the rotation, we know that the positions of the four, i.e. all, vertices will stay the same. and a rotation is an isometry. thus, this rotation really maps the tetrahedron to itself.

side story time

those above was my notes to myself, i have taken them in the course of reading the first few pages of the book Groups and Symmetry. i simply could not have imagined the nontrivial rotation in question. then i plotted the tetrahedron, animated the rotation, just for pragmatic concerns. then i wanted to write this blog post but i could not have used that animation, it was simply too ugly and i have had to record it with another software, e.g. obs. eventually, i’ve decided to create the animation with latex.

i was aware of a package called pst-solides3d, tried to give it a go and it performed really well. nevertheless, actually rotating the tetrahedron was not simple. let me give you the code and shut up already:

\documentclass[pstricks, border=12pt]{standalone}
\usepackage{pst-solides3d}
\usepackage{xfp}

\psset
{
    lightsrc=viewpoint,
    Decran=30,
    solidmemory,
}

\newcommand{\al}{3}
\newcommand{\ax}{4}
\edef\ax{\fpeval{\al+0.1}}

\newcommand{\ul}{0.81730}
\newcommand{\um}{0}
\newcommand{\un}{0.57620}

\begin{document}
\multido{\i=0+{2}}{91}
{
    \begin{pspicture}[viewpoint=30 50 30 rtp2xyz] (-2,-2) (2,2)
        \edef\irad{\fpeval{\i*3.14159/180}}
        \defFunction[algebraic]{ntr}(x,y,z)
        {
            x*(\ul*\ul*(1-cos(\irad))+cos(\irad))+
            y*(\um*\ul*(1-cos(\irad))-\un*sin(\irad))+
            z*(\un*\ul*(1-cos(\irad))+\um*sin(\irad))
        }
        {
            x*(\ul*\um*(1-cos(\irad))+\un*sin(\irad))+
            y*(\um*\um*(1-cos(\irad))+cos(\irad))+
            z*(\un*\um*(1-cos(\irad))-\ul*sin(\irad))
        }
        {
            x*(\ul*\un*(1-cos(\irad))-\um*sin(\irad))+
            y*(\um*\un*(1-cos(\irad))+\ul*sin(\irad))+
            z*(\un*\un*(1-cos(\irad))+cos(\irad))
        }
        \psSolid[
            object=tetrahedron,
            action=draw*,
            r=2.12132,
            fillcolor=magenta!20,
            transform=ntr,
        ] %(0,0,0.71)
        \psSolid[
            object=line,
            args=-1 0 \fpeval{0-0.71} 1 0 \fpeval{1.41-0.71},
        ]
        %\axesIIID[labelsep=10pt] (\al,\al,\al) (\ax,\ax,\ax)
    \end{pspicture}
}
\end{document}

first, let’s cite the rotation matrix page. we’ll use it to do the actual rotation. read that little section. see that the matrix is useful if we translate the tetrahedron and the axis so that the axis passes through the origin. did it and gave the coordinates of the direction vector - it is normalized - of the axis as \ul,\um and \un in the code. then i’ve just simply typed the bulky expression into defFunction.

a few nonessential details of that code:

  • the trigonometric functions in the expression take their arguments in radian. so we do a conversion in line 24.

  • we actually produce 91 pages. this is done with multido statement. effectively, we rotate 2*90 degrees. indeed, this is what we want. then, we convert this pdf to gif.

let me also give you the makefile:

all:
    latex main.tex
    dvips main.dvi
    ps2pdf main.ps

gif:
    convert -verbose -delay 5 -loop 0 -density $(DENSITY) -alpha off\
        main.pdf $$(date +%F_%Hh)-dens$(DENSITY).gif

and this is the sweet product:

sad story time

things happen, and they don’t seem tangible. we can’t even alter afterwards the effect of them.

the fence change their
fulfilling life
hence they file
the sadness
they defence