How can I visualize the standard topological "rubber-sheet" construction of a torus, that is, morphing a square into a torus?
How can I start or are there any examples in the Mathematica documentation respectively?
Answer
Edit I had some time so I've added full surface torus. Old code in edit history.
DynamicModule[{x = 2., l = 100., x2 = 2., l2 = 100., grid, fast, slow},
Grid[{{
Graphics3D[{
Dynamic[Map[{Blue, Polygon[#[[{1, 2, 4, 3}]]]} &,
Join @@@ (Join @@ Partition[#, {2, 2}, 1])
]&[
ControlActive[fast[l, l2], slow[l, l2]]]
]
}, PlotRange -> {{-7, 7}, {-7, 7}, {-1, 2}}, ImageSize -> 600,
Axes -> True, BaseStyle -> 18]
,
Column[{
Slider[Dynamic[x, (l = 10.^#; x = #) &], {.0001, 2.}],
Slider[Dynamic[x2, (l2 = 10.^#; x2 = #) &], {.0001, 2.}] }]
}}]
,
Initialization :> (
grid[l_, l2_, n_, m_] := Outer[Compose,
Array[RotationTransform[# Pi/l2, {0, 0, 1.}, {0, -l2, 0}] &, n, {-1, 1}],
Array[RotationTransform[# Pi/l, {1., 0, 0}, {0, 2, l}][{0, 2, 0}] &, m, {-1, 1}],
1];
fast[l_, l2_] = grid[l, l2, 10, 10];
slow[l_, l2_] = grid[l, l2, 50, 25];
)]
For < V.9
please switch Array
to Table
. This syntax for Array
was introduced, silently, in V.9
. linespace equivalent in MMA
Comments
Post a Comment