5.1.5 Special Case, Dynamic Plane Tessellations using two sided cells.

We can use our 3 dimensional transformation functions to show that every plane transformation function can be seen as a continuous action in space.  We give a “simple” example which is not so simple in execution.

We use as our base cell a scalene right dynamic triangle.

Dtri[α_]:={{Blue, Polygon[α@{{0,0,.01},{1,0,.01},{0,2,.01}}]},{Green,Polygon[α@{{0,0,-.01},{1,0,-.01},{0,2,.01}}]
}}

To picture it we use 3D graphics, but we must add a vertical measuring stick to give the scale

stick:={GrayLevel[.8], Thickness[.01],Line[{{0,0,0},{0,0,2}}]}

Recall

ι3:=TranslationTransform[{0,0,0}]

Graphics3D[{stick,{Dtri[ι3]}}]

Superficially this looks like a plane triangle but note the green streak.  A different view is

β:=TranslationTransform[{0,0,1}]@*RotationTransform[-Pi/3,{0,1,0}]

Graphics3D[{{GrayLevel[.8], Thickness[.01],Line[{{0,0,0},{0,0,2}}]},{Dtri[ι3],Dtri[β]}}]

Later we will make the measuring stick virtually invisible by changing the thickness and color .

stick2:={GrayLevel[.99], Thickness[.001],Line[{{0,0,0},{0,0,2}}]}

We can make a rotation of this triangle into a continuous space motion using

Clear[t]

ThreePointParabola[{q1_,q2_,q3_},{t1_,t2_,t3_}]:=Module[{eq1,eq2,eq3,a1,a2,a3,b1,b2,b3,c1,c2,c3,sol},
eq1={a1,a2,a3}t1^2+{b1,b2,b3}t1+{c1,c2,c3}==q1;
eq2={a1,a2,a3}t2^2+{b1,b2,b3}t2+{c1,c2,c3}==q2;
eq3={a1,a2,a3}t3^2+{b1,b2,b3}t3+{c1,c2,c3}==q3;
sol=NSolveValues[eq1&&eq2&&eq3,{a1,a2,a3,b1,b2,b3,c1,c2,c3}][[1]];
t^2{sol[[1]],sol[[2]],sol[[3]]}+t{sol[[4]],sol[[5]],sol[[6]]}+{sol[[7]],sol[[8]],sol[[9]]}]

G[t_]=ThreePointParabola[{{0,0,0},{0,0,1},{0,0,0}},{0,1,2}]

Γ3[t_]:=TranslationTransform[G[t]]@*RotationTransform[t Pi/2,{0,0,1}]

GraphicsGrid[{{Graphics3D[{stick2,Dtri[Γ3[0]]}],Graphics3D[{stick2,Dtri[Γ3[0]],Dtri[Γ3[.5]]}],Graphics3D[{stick2,Dtri[Γ3[0]],Dtri[Γ3[1]]}]},{Graphics3D[{stick2,Dtri[Γ3[0]],Dtri[Γ3[1.5]]}],Graphics3D[{stick2,Dtri[Γ3[0]],Dtri[Γ3[2]]}]}}]

For those reading the Wolfram notebook in Mathematica

Manipulate[Graphics3D[{stick2,Dtri[Γ3[0]],Dtri[Γ3[t]]}],{t,0,2}]

Since this is an even transformation the original blue side is always up.  In the case of a reflection we see

Γ1[t_]:= TranslationTransform[G[t]]@*RotationTransform[-t*Pi/2,{0,1,0}]

GraphicsGrid[{{Graphics3D[{stick2,Dtri[Γ1[0]]}],Graphics3D[{stick2,Dtri[Γ1[0]],Dtri[Γ1[.5]]}],Graphics3D[{stick2,Dtri[Γ1[0]],Dtri[Γ1[1]]}]},{Graphics3D[{stick2,Dtri[Γ1[0]],Dtri[Γ1[1.5]]}],Graphics3D[{stick2,Dtri[Γ1[0]],Dtri[Γ1[2]]}]}}]

Note that this is a rotation in 3D but the result is a reflection in 2D.  Therefore we see the other side up.
or, in Mathematica

Manipulate[Graphics3D[{stick2,Dtri[Γ1[0]],Dtri[Γ1[t]]}],{t,0,2}]

We can put these together along with a third transformation

Γ2[t_]:=TranslationTransform[G[t]]@*RotationTransform[t Pi/2,{1,0,0}]

Γ[t_]:=Piecewise[{{Γ1[t],0<=t<=2},{Γ1[2],2<t<3},{Γ2[t-3],3<=t<5},{Γ2[2],5<=t<6},{Γ3[t-6],6<=t<8}},Γ3[2]]

Manipulate[If[t<0,Graphics3D[{stick2,Dtri[Γ[0]]}],If[0<=t<2,Graphics3D[{stick2,{Dtri[Γ[0]],Dtri[Γ[t]]}}],If[2<=t<3,Graphics3D[{stick2,Dtri[Γ[0]],Dtri[Γ[t]]}],If[3<=t<=5,Graphics3D[{stick2,Dtri[Γ[0]],Dtri[Γ[2]],Dtri[Γ[t]]}],
If[5<t<6,Graphics3D[{stick2,Dtri[Γ[0]],Dtri[Γ[2]],Dtri[Γ[5]]}],If[6<=t,Graphics3D[{stick2,Dtri[Γ[0]],Dtri[Γ[2]],Dtri[Γ[5]],Dtri[Γ[t]]},Boxed->False]]]]]]],{t,-2,8}]

Those reading this in pdf format may see the moving graphic on YouTube
https://youtube.com/shorts/WPQYpfFQddI?si=l2O08cC6J0U56T9t