Weaving a hyperbolic surface
Sándor Kabai
This is an example of how to make physical models of ruled surfaces, for instance hyperbolic paraboloid, with stretched threads. Here the threads are stretched between small cubes that are arranged on the surface of a large cube. This can be regarded also as a conceptual design for an adjustable device. Alternatively, the thread could be passed through holes in a large cube located at the places of small cubes for making a physical model.
This is an example of how to make physical models of ruled surfaces, for instance hyperbolic paraboloid, with stretched threads. Here the threads are stretched between small cubes that are arranged on the surface of a large cube. This can be regarded also as a conceptual design for an adjustable device. Alternatively, the thread could be passed through holes in a large cube located at the places of small cubes for making a physical model.
In[]:=
Manipulate[cube=GraphicsComplex[PolyhedronData["Cube","VertexCoordinates"],Line[PolyhedronData["Cube","EdgeIndices"]]];cubf=GraphicsComplex[PolyhedronData["Cube","VertexCoordinates"],Polygon[PolyhedronData["Cube","FaceIndices"]]];cub={RGBColor[1,1,0.7],Scale[cubf,dens{1,1,1},{0,0,0}]};points1=Table[{x,-0.5,xstretch},{x,-0.5,0.5,dens}];points2=Table[{x,0.5,-xstretch},{x,-0.5,0.5,dens}];row1=Map[Translate[cub,#]&,points1];row2=Map[Translate[cub,#]&,points2];threadx={Yellow,Cylinder[#,cyl]&/@Transpose[{points1,points2}]};points3=Table[{-0.5,x,xstretch},{x,-0.5weave,0.5weave,dens}];points4=Table[{0.5,x,-xstretch},{x,-0.5weave,0.5weave,dens}];row3=Map[Translate[cub,#]&,points3];row4=Map[Translate[cub,#]&,points4];thready={Green,Cylinder[#,cyl]&/@Transpose[{points3,points4}]};Graphics3D[{cube,row1,row2,row3,row4,threadx,thready},BoxedFalse,SphericalRegionTrue,ImageSize400,ViewAngle0.4],{{stretch,0,"stretch"},0,1},{{weave,1,"weave"},0,1,0.01},{{cyl,0.01,"thread diameter"},0.001,0.01},{{dens,0.1,"density"},0.1,0.01},TrackedSymbols{stretch,cyl,dens,weave}]
Out[]=

