I am plotting a surface using ParametricPlot3D. Is there a way that only the region with negative Gaussian curvature is plotted?

  • 2
    $\begingroup$ Try RegionFunction! It would be very helpful if you provide a minimal example. $\endgroup$ Aug 10, 2020 at 7:50
  • $\begingroup$ @UlrichNeumann Thank you for your reply. supposing that I am plotting a cyclide ParametricPlot3D[ ResourceFunction["Cyclide"][.3, 1.5, {u, v}], {u, -\[Pi], \[Pi]}, {v, -2 \[Pi], 2 \[Pi]}] and I only wanted to plot the regions with negative Gaussian curvature. I wasn't sure how to use RegionFunction. thank you for your reply! $\endgroup$
    – brndt
    Aug 10, 2020 at 8:01
  • 3
    $\begingroup$ If you know the curvature curv[u,v] try ParametricPlot3D[…,RegionFunction->Function[{u,v},curv[u,v]<0]] $\endgroup$ Aug 10, 2020 at 8:13

1 Answer 1


There is a ResourceFunction that can compute Gaussian curvature which allows you to incorporate the comment by Ulrich Neumann

Clear[surf, curv]
surf[u_, v_] = ResourceFunction["Cyclide"][.3, 1.5, {u, v}];
curv[u_, v_] = 
  ResourceFunction["GaussianCurvature"][#, {u, v}] &@surf[u, v];
 surf[u, v], {u, -\[Pi], \[Pi]}, {v, -2 \[Pi], 2 \[Pi]}, 
 RegionFunction -> Function[{u, v}, curv[u, v] < 0]]

Regions of negative curvature of a cyclide


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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