Family Resemblance
This is an isometric projection of one fundamental domain of the Scherk surface and its associate family. This is obviously not a projection that reveals much of the geometry of the surface, but I like how it visually recalls string art parabolas.
Here's the code for the corresponding Manipulate
object:
scherk[u_, v_, \[Theta]_] :=
Re[E^(I \[Theta]) {ArcTanh[z], I ArcTan[z], I ArcTanh[z^2]} /.
z -> u + I v]
Manipulate[Module[{a, projector},
a = .99;
projector = {{1, 0, 0}, {0, 1, 0}};
Show[ParametricPlot[
Table[projector.scherk[u, v, \[Theta]], {u, -a, a, a/10}], {v, -a,
a}, PlotRange -> 3.5, Axes -> False,
PlotStyle -> Directive[Thickness[.0045], RGBColor["#fbfbfb"]]],
ParametricPlot[
Table[projector.scherk[u, v, \[Theta]], {v, -a, a, a/10}], {u, -a,
a}, PlotStyle ->
Directive[Thickness[.0045], RGBColor["#fbfbfb"]]],
ImageSize -> 540, Background -> RGBColor["#08327d"]]], {\[Theta],
0, \[Pi]}]
I originally wrote this as a single ParametricPlot
using projector.# & /@ {scherk[u, v, \[Theta]], scherk[v, u, \[Theta]]}
, but breaking the mesh drawing code into two separate ParametricPlot
s ended up being considerably faster. (Also, note that I've projected down to 2D, which generally seems to lead to higher image quality and faster processing.)
Here's a more conventional projection of the same surface:
And here's the code for this view:
Manipulate[Module[{a, projector},
a = .99;
projector = {{1, 0, 0}, {0, 1, 0}};
Show[ParametricPlot3D[
Table[scherk[u, v, \[Theta]], {u, -a, a, a/10}], {v, -a, a},
PlotRange -> 3.5, Axes -> None, Boxed -> False,
ViewAngle -> \[Pi]/12,
PlotStyle -> Directive[Thickness[.0045], RGBColor["#fbfbfb"]]],
ParametricPlot3D[
Table[scherk[u, v, \[Theta]], {v, -a, a, a/10}], {u, -a, a},
PlotStyle -> Directive[Thickness[.0045], RGBColor["#fbfbfb"]]],
ImageSize -> 540, Background -> RGBColor["#08327d"]]], {\[Theta],
0, 2 \[Pi]}]