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 withmultido
statement. effectively, we rotate2*90
degrees. indeed, this is what we want. then, we convert thispdf
togif
.
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