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?
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:
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:
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:
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:
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):
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:
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:
One useful scene is full wireframe. It can be printed as vector PDF and opened in Inkscape:
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:
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.