# [GIF] Gridded (Associate family of Scherk's surfaces)

Posted 3 years ago
3227 Views
|
6 Replies
|
5 Total Likes
| GriddedThe code below implicitly uses the Weierstrass–Enneper parametrization $f(z) = \frac{4}{1-z^2}$, $g(z) = iz$, since $\int_0^\zeta \frac{f(z)(1-g(z)^2)}{2} dz = 2 \operatorname{arctanh} \zeta$, $\int_0^\zeta i \frac{f(z)(1+g(z)^2)}{2} dz = 2 i \arctan \zeta$, and $\int_0^\zeta f(z) g(z) dz = 2 i \operatorname{arctanh}(\zeta^2)$.This is too slow to give a useful Manipulate, so I just give the GIF-generating code: scherk2[u_, v_, θ_] := Re[E^(I θ) {ArcTanh[z], I ArcTan[z], I ArcTanh[z^2]} /. z -> u + I v] scherkfamily = Module[{a = .9, cols}, cols = RGBColor /@ {"#07588A", "#E4FCF9"}; ParallelTable[ Show[ ParametricPlot[ Table[scherk2[u, v, θ][[2 ;;]], {v, -a, a, a/7}], {u, -a, a}, PlotRange -> 2, Axes -> None, Background -> Last[cols], ImageSize -> 540, PlotStyle -> cols[]], ParametricPlot[ Table[scherk2[u, v, θ][[2 ;;]], {u, -a, a, a/7}], {v, -a, a}, PlotStyle -> cols[]]], {θ, 0., 2 π - #, #}] &[2 π/250] ]; Export[NotebookDirectory[] <> "scherkfamily.gif", scherkfamily, "DisplayDurations" -> {1/50}] Answer
6 Replies
Sort By:
Posted 3 years ago
 Very nice and compact :-) Answer
Posted 3 years ago - another post of yours has been selected for the Staff Picks group, congratulations !We are happy to see you at the top of the "Featured Contributor" board. Thank you for your wonderful contributions, and please keep them coming! Answer
Posted 3 years ago
 Hopefully, the following version is a bit more responsive for everybody: With[{a = 0.9, n = 60, ls = Directive[AbsoluteThickness[1.6], Opacity[1, RGBColor["#07588A"]]]}, Animate[ParametricPlot[With[{z = u + I v}, Re[E^(I θ) {I ArcTan[z], I ArcTanh[z^2]}]], {u, -a, a}, {v, -a, a}, Axes -> None, Background -> RGBColor["#E4FCF9"], BoundaryStyle -> ls, Frame -> None, ImageSize -> 540, Mesh -> 13, MeshStyle -> ls, PlotPoints -> 55, PlotRange -> 2, PlotStyle -> None], {θ, 0, 2 π, 2 π/(n - 1)}]] Answer
Posted 3 years ago
 Ah, jeez, that was stupid of me. Of course ParametricPloting the region will be much faster than plotting dozens of individual curves. Answer
Posted 3 years ago
 I liked the polar version, too: scherk[r_, θ_, φ_] = FullSimplify[ComplexExpand[With[{z = r E^(I θ)}, Re[E^(I φ) {ArcTanh[z], I ArcTan[z], I ArcTanh[z^2]}]], TargetFunctions -> {Re, Im}]]; With[{a = 0.9, vp = {1.3, -2.4, 2.}, n = 60, ls = Directive[AbsoluteThickness[1.6], Opacity[1, RGBColor["#07588A"]]]}, Animate[ParametricPlot[Most[RotationMatrix[{vp, {0, 0, 1}}].scherk[r, θ, φ]], {r, 0, a}, {θ, -π, π}, Axes -> None, Background -> RGBColor["#E4FCF9"], BoundaryStyle -> ls, Evaluated -> True, Frame -> None, ImageSize -> 540, Mesh -> 13, MeshStyle -> ls, PlotPoints -> {55, 175}, PlotRange -> 2, PlotStyle -> None], {φ, 0, 2 π, 2 π/(n - 1)}]]  Answer
Posted 3 years ago
 Yeah, definitely. Here's the polar one I made before I got rid of the rendered surface altogether (check out the file size to see why I got rid of the rendered surface):  Answer