I am writing my Master's thesis which heavily draws upon geometry. In particular, I need to create diagrams similar to the one attached.

I have been thinking about what tools might come in handy: already considered R and Python plotting, and briefly thought about Inkscape (which I have never used).

What tools would you recommend to recreate the following diagram and/or to draw similar?

enter image description here

[Source: https://commons.wikimedia.org/wiki/File:Minimal_surface_curvature_planes-en.svg ]

  • 3
    Do you require the feature to enter formulae to generate the curves, or would approximation be suitable for your objective? Do you also require to manipulate the curves in 3-space or only to generate 2-D imagery to match the above solution?
    – fred_dot_u
    Aug 18 '19 at 0:31
  • Hi. Welcome to GDSE. If manual drawing is something you'd consider, then Inkscape is a definite possibility. The drawing is an SVG, and that is what Inkscape excels at. Have a look at this related question (not a duplicate).
    – Billy Kerr
    Aug 18 '19 at 11:54
  • Thank you for all the answers. 1) An approximation would be suitable, but formulae would (I think) make it easier to generate the exact shapes. I only need to generate 2-D imagery to match the above solution - it will be used in a pdf report. 2) I am not willing to invest a fortune into the best tools out there :) 3) Thank you, I know that Inkscape is exceptional at using standard shapes like rectangles / circles, but would it manage with a shape like the one attached? Aug 18 '19 at 14:17
  • 1
    You can draw any shapes you want in Inkscape - but it's more or less a manual task - using the Bézier tool to create shapes with curves, etc. There is nothing in your example that could not be created in Inskcape, if that's what you want to know. But Inkscape like any similar vector image editor has a fairly steep learning curve.
    – Billy Kerr
    Aug 18 '19 at 15:39
  • 1
    If you really want to get there, not just know how somebody who is there would approach this it would be a good idea to see what you can do now. I mean what you have there could easily be done with a text editor if one knows what one is doing
    – joojaa
    Aug 18 '19 at 15:43

As you probably have guessed and at least one long time member has confirmed, Inkscape can be used to make also geometry illustrations. But you have no easy way to input formulas for wanted 3D shapes which you want to see rendered as 2D drawings. Only XY plane shapes can be inputted as parametric curves.

Images of 3D compositions must be drawn manually or you can import them from elsewhere and use Inkscape for colorings and inserting annotations.

That "Elsewhere" can be a math program which can output scenes in SVG or PDF vector formats. I haven't such software, but acceptable scenes to visualize some math relations surely also can be constructed in CAD software. Here's one attempt to make something which resembles your example. Here's the result at first:

enter image description here

There's no fine gradient colorings, only flat colors. But nothing prevents inserting gradients manually.

In a CAD program I drew few splines in a plane:

enter image description here

The rectangle is only a reference for quick original drawing plane recall, it was not used as a part in the drawing.

The upside down Us are end and middle profiles of the forthcoming surface, the shallow U is the blending spine. It's the extrusion route for the top point of the surface. In CAD terminology making a surface by blending curves along one or more spines is also called "lofting".

To make the blending the curves must be shifted to different planes and rotated to their final positions:

enter image description here

Those dots and lines around the splines popped visible without asking (if not disabled) when the curves were rotated. They are the internal definition parts of spline curves.

In the next image a blend is ordered to be made. I have only a spine for one point, but one can add them as many as needed to get more defined edge forms. Your example would need at least 2 more for the bottom edges:

enter image description here

The rectangular grating isn't a part of the drawing, it's an automatically shown reference for those who want to know which are the default surface texture mapping coordinate lines. That's not used in this example.

The splines are needed later, so one should either prevent them vanishing int the blending or copy and paste duplicates in their original places.

The reference plane is needed in this phase. With it one draws easily 3 rectagular plane pieces which meet at the equilibrium point of the saddle (= draw one, move it so that the centerpoint is at the crossing of the splines, make two rotated copies and stretch them to good widths):

enter image description here

This starts to be quite a mess. 2 of the 3 plane cutting lines are there already as construction curves, but one is still needed. It's the intersection between the surface and the horizontal plane. It appears when one splits the surface with a plane. The result seen from another direction:

enter image description here

Also a couple of crossing lines of the planes are useful. There's no separate image of that. The result is seen later.

My CAD program is a radically limited free version of a professional program, but there's still possible to make different scenes for exporting. At fist one must decide the wanted projection. This resembles your example:

enter image description here

One useful scene is full wireframe. It can be printed as vector PDF and opened in Inkscape:

enter image description here

The generated PDF is incredibly complex, it's full of nested groups. Fortunately Inkscape has Extension > Arrange > Deep Ungroup which made all strokes easily reachable. They needed new thicknesses, stroke styles and colors. The result is in the first image.

The surface and the planes could be colored also in Inkscape. But in PDF the border curves are harmfully splintered, one should rejoin them to make fillable closed shapes. Inkscape hasn't Shape Builder like Illustrator, so joining should be made with the node tool. I decided to make a colored scene in CAD program without any lines. The planes got quite transparent (=default) grey color and the surface was made orange. It's made a little less transparent:

enter image description here

This was also printed as PDF and imported to inkscape. It was layered under the colored wireframe.

Actually the colored PDF version is a raster image. Unfortunately there's no adjustable lights nor photorealistic rendering, so the only possibility for me to get a proper gradient shading is to use other software for rendering or paint the gradients manually. I skipped both.

The used freeware CAD program is DesignSpark Mechanical. It's a severely downgraded version of SpaceClaim. One of the limitations was only global surface transparency. The orange surface was made less transparent by extruding it to very thin solid. The transparency of solids is freely adjustable.

If you are going to do this by yourself, prepare to use a week per program for full day practicing. It's substantially less than what's needed if you start with some really complex software, but much more than what's needed if you hired a competent illustrator who can understand math things, I guess.

  • Learning how to use inkscape effectively is a quite huge time investment. You dont feel it because you already use inkscape proficiently. But truth to be told most students, even art students, would take quite some time to get there. Learing how to use a 3d application and inkscape is even bigger investment in time.
    – joojaa
    Aug 18 '19 at 15:31
  • @joojaa that's the unfortunate truth for every piece of software other than those which are made for shelling out money (=playing, buying, watching)
    – user287001
    Aug 18 '19 at 15:36
  • Yes but still we dont know what level the OP is at. Only maybe one in 20 of my engineering students would have been able to pull this kind of imagery off even with a month of coaching. And its not a dard image by any means.
    – joojaa
    Aug 18 '19 at 15:46
  • 1 of 20? I guess the industry has a problem! Maybe the high number of the starting places in the university doesn't rise the quality of certain actions which have happened 20 years earlier.
    – user287001
    Aug 18 '19 at 20:57
  • 1
    No, engineers are not illustrators. They do various other things, so most engineers would pragmatically just accept the render of their graphing application or cad. Doing the final step would not interest them in any way and it shows. But also in many cases they would have hard tine bublishing said image as it was designed because they use word. Latex users would use latex packages for this offcourse.
    – joojaa
    Aug 19 '19 at 5:30

I frequently do this kind of schematics for my papers and lectures. My workflow, commonly, involves some of the following

  • Python scripting (using Matplotlib) when I can create the whole drawing programmatically. See my wiki gallery.

  • A CAD for complex 3D things (commonly I use FreeCAD). This allows exporting SVG files that can be edited afterward.

  • ParaView for complex visualizations.

  • Inkscape for details or for creating the whole thing when I don't care about the units/scale being perfect.

The best parts of the tools I mentioned before (and also Blender) is that they all let me use Python for scripting to automate things.

The following is a schematic similar to your that I created using ParaView and edited in Inkscape.

enter image description here

I would say that Inkscape is really useful to create illustrations for technical purposes, but as mentioned in the comments it might be difficult at the beginning.

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.