9
$\begingroup$

Jeener's Flower is a minimal surface attributed to the french engraver Patrice Jeener whom we can see here:

enter image description here

The DNA of his flower can be written as

rep = ReplaceAll[z :> x + I y]; 

a = rep @ Re[(z + z^5/2) * I];
b = rep @ Re[z - z^5/2];
c = rep @ Re[z^4];

and viewed with

ParametricPlot3D[{a, b, c}, {x, -1.6, 1.6}, {y, -1.6, 1.6},
 BoundaryStyle -> Automatic,
 ColorFunction -> "RedBlueTones",
 Mesh -> 30,
 PlotPoints -> 60,
 PlotRange -> All]

enter image description here

Based upon kglr's answer to my recent question: A perforated ding dong surface

I wanted to show it like

ParametricPlot3D[{a, b, c}, {x, -1.6, 1.6}, {y, -1.6, 1.6},
 ColorFunction -> "RedBlueTones",
 Extrusion -> .5,
 Mesh -> {61, 60},
 MeshShading -> {{Automatic, Automatic}, {None, Automatic}},
 MeshStyle -> None,
 PlotPoints -> {41, 41},
 PlotRange -> All]

enter image description here

But I couldn't produce a closed surface - regardless of PlotPoints and Mesh settings chosen. The same problem arises with other less complicated surfaces, but not, for example, with a Catenoid.

I don't have this problem with my Python version of ParametricPlot3D which displays in Blender like

enter image description here

The simple solution used there: Loop over all (rectangular) polygons and throw away the unwanted ones.

Any help would be highly appreciated.

$\endgroup$
1
  • $\begingroup$ MeshShading->{{Automatic,Automatic},{Automatic,None}} seems to work. $\endgroup$ Commented Oct 5, 2023 at 18:09

1 Answer 1

10
$\begingroup$

Specifying explicit list of mesh divisions (rather than the number of them) gives more control. The following mesh specs gives a picture close enough to the desired result:

meshlist = Rescale[#, MinMax @ #, {-1.6, 1.6}] & @
   Accumulate[Flatten @ ConstantArray[{1, 1/3}, 20]];

ParametricPlot3D[{a, b, c}, 
 {x, -1.6, 1.6}, {y, -1.6, 1.6}, 
 ColorFunction -> "RedBlueTones", 
 Extrusion -> .5, 
 Mesh -> {meshlist , Rest@ meshlist}, 
 MeshShading -> {{Automatic, Automatic}, {None, Automatic}}, 
 MeshStyle -> None, 
 PlotPoints -> {41, 41}, 
 ImageSize -> Large,
 PlotRange -> All]

enter image description here

Replace 15 with 25 in definition of meshlist to get:

enter image description here

$\endgroup$
2
  • 2
    $\begingroup$ Thank you so much! One additional question: Where does this Extrusion come from? It displays in red and I couldn't find it in the documentation. $\endgroup$
    – eldo
    Commented Oct 5, 2023 at 23:11
  • 2
    $\begingroup$ @eldo, it is still undocumented . It has worked since v10 -- perhaps earlier. The earliest mention on this site is this answer by Simon Woods. To avoid red highlighting, you can use it as a Method suboption (e.g., Method -> {"Extrusion" -> 1, "ExtrusionStyle" -> White}. $\endgroup$
    – kglr
    Commented Oct 6, 2023 at 6:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.