It all started (at least in my neck of the woods) with George W. Hart’s YouTube video Mathematically Correct Breakfast. See also a wonderful related article by George W. Hart’s. Then there was also Numberphile YouTube video Topology of a Twisted Torus. And also people asked: how do we cut bagel into linked halves with Wolfram on Mathematica Stack Exchange?
Here I will just foray into very simple visualizations. Let’s begin with a mathematical way to describe this structure. Here is one way as a single object:
In[]:=
single=With[{c=2,b=1},RotationMatrix[-u,{0,0,1}].({0,c,0}+RotationMatrix[u,{1,0,0}].{0,bCos[v],bUnitStep[Pi-v]Sin[v]})];
In[]:=
single//MatrixForm//TraditionalForm
Out[]//TraditionalForm=
sin(u)(-sin(u)θ(π-v)sin(v)+cos(u)cos(v)+2) |
cos(u)(-sin(u)θ(π-v)sin(v)+cos(u)cos(v)+2) |
cos(u)θ(π-v)sin(v)+sin(u)cos(v) |
In[]:=
ParametricPlot3D[single,{u,0,2Pi},{v,0,2Pi}]
Out[]=
We can also do it as two parts: part bagel and part the cutting surface:
In[]:=
bagel={Sin[u](2+Cos[u+v]),Cos[u](2+Cos[u+v]),Sin[u+v]};cut={Sin[u](2+(2v/Pi-1)Cos[u]),Cos[u](2+(2v/Pi-1)Cos[u]),(2v/Pi-1)Sin[u]};{bagel,cut}//MatrixForm//TraditionalForm
Out[]//TraditionalForm=
sin(u)(cos(u+v)+2) | cos(u)(cos(u+v)+2) | sin(u+v) |
sin(u) 2v π | cos(u) 2v π | 2v π |
In[]:=
double=ParametricPlot3D{bagel,cut},{u,0,2Pi},{v,0,Pi},
Out[]=
Now we will double the double and see how links form interactively:
In[]:=
Manipulate[Graphics3D[{double[[1]],Translate[Rotate[Rotate[double[[1]],Pi,{0,0,1}],-aPi/2,{1,0,0}],{1.8a,0,0}]},Boxed->False,Axes->False],{{a,1},0,1},SaveDefinitions->True]
Out[]=
Now imagine what a fly would see orbiting around this object. We need an orbit first -- lets start from a simple circle:
In[]:=
orbit1[u_]:={5Sin[u],5Cos[u],4}
In[]:=
Manipulate[Show[Graphics3D[{double[[1]],Translate[Rotate[Rotate[double[[1]],Pi,{0,0,1}],-aPi/2,{1,0,0}],{1.8a,0,0}]},Boxed->False,Axes->False],ParametricPlot3D[orbit1[u],{u,Pi/2,Pi/2+2Pia},PlotStyle->Red]],{{a,1},0,1},SaveDefinitions->True]
Out[]=
Now using this orbit and ViewPoint we can see the opening bagel in fly’s POV:
Here is a bit more complex case of flying thorough the whole:
Perfectly looped GIF
Perfectly looped GIF
Create half of a GIF loop that opens the bagel and flies camera through it:
Create 2nd half of a GIF loop that closes the bagel and does NOT flies the camera. You have to hold the camera in the same positiion for smoothness:
Compute frames and export GIF:
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Topology breakfast in a fly's POV: cutting a bagel into linked halves
by Vitaliy Kaurov
Wolfram Community, STAFF PICKS, August 13, 2024
https://community.wolfram.com/groups/-/m/t/3247374
by Vitaliy Kaurov
Wolfram Community, STAFF PICKS, August 13, 2024
https://community.wolfram.com/groups/-/m/t/3247374