Message Boards Message Boards

GROUPS:

[GIF] Scherk surface and family resemblance

Posted 3 years ago
3457 Views
|
2 Replies
|
6 Total Likes
|

Family Resemblance

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 ParametricPlots 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:

More traditional Scherk surface mesh

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]}]
2 Replies

This is very beautiful, thank you for sharing !

Thanks!

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract