166

What software do you use to accurately draw geometry diagrams?

Lucky
  • 1,149
  • 3
  • 13
  • 25

26 Answers26

93

For geometry I've always used Geogebra, and I think it's pretty good.

Jorge Miranda
  • 998
  • 1
  • 12
  • 14
  • 1
    Despite the fact that its a possible GPL violation. I found Kig which is a similar package. – user877329 Apr 24 '15 at 16:55
  • Also, geogebra allows you to export to tikz (or pstricks). One workflow I would like to use is to draw in geogebra and then export it to tikz (and then edit tikz code as needed). – Cyriac Antony Sep 21 '20 at 08:59
  • It's hard to set the size of the drawing area in GeoGebra if you need precise image dimensions. You have to unpack the GGB file using a ZIP archive tool and edit the XML source, then re-pack it. For precision stuff you might look elsewhere. – posfan12 Apr 18 '21 at 06:06
  • It's not only for diagrams. It is an interactive geometry software with CAS built in; it will calculate everything for you. There's also a 3D version. – aiwl Feb 10 '22 at 05:08
42

Tikz is a nice LaTeX package for easily drawing diagrams. Diagrams are made by putting code directly into the TeX document, eliminating the need for extra image files. The package also is very powerful and versatile; the manual contains a very detailed description of its features.

Moor Xu
  • 2,184
  • 2
  • 23
  • 28
28

Asymptote is my tool of choice for virtually any mathematics diagram, geometry included.

MCCCS
  • 1,525
  • 1
  • 12
  • 30
Vaughn Climenhaga
  • 631
  • 1
  • 5
  • 14
14

I have been enjoying kseg. It is very quick to draw diagrams in kseg.

After you draw the diagram you can drag the components around and the others will follow, retaining the same constraints. For example, in this diagram it appears that $NM$ is the perpendicular bisector of $PQ$:

example diagram

And I can see if that still appears to be the case even after I move point $C$ to make a very different inscribed quadrilateral:

screenshot

kseg also lets you define complicated loci, but I haven't tried that yet.

MJD
  • 62,206
  • 36
  • 276
  • 489
14

Mathematica

Isaac
  • 35,106
  • 14
  • 99
  • 136
  • 17
    This is *very* expensive. A free, partial-alternative is wxMaxima. http://andrejv.github.io/wxmaxima/screenshots.html – Rhubbarb Nov 07 '13 at 23:56
  • 1
    @Rhubbarb, the link is now broken, probably the new one is https://wxmaxima-developers.github.io/wxmaxima/. – MarianD Feb 16 '19 at 17:43
  • 1
    Xcas is free (developed at some French university), understands the Maple language (and French, and also supports graphics, I didn't test much of these two features). – Max Jun 24 '20 at 04:52
12

Geometer's Sketchpad— Sketchpad 5 exports/copy-pastes diagrams much better than 4 did.

Isaac
  • 35,106
  • 14
  • 99
  • 136
11

One of the best is WinGCLC.

Graph quality is really exceptional, it's easy to use, can be easily exported to SVG/EPS/BMP/LaTeX, supports command line for scripting, supports animation...

What is really useful is that once you define all the points/lines/intersections/circles, you can easily change the location of one of the starting objects and the whole diagram will be accurately redrawn.

n0vakovic
  • 869
  • 1
  • 7
  • 18
11

Inkscape is a popular open source drawing package. One feature that makes it particularly nice for drawing mathematical diagrams is that you can easily insert LaTeX output in your drawings.

John D. Cook
  • 6,710
  • 2
  • 25
  • 38
9

LaTeXDraw is a graphical front end for PSTricks.

Colin Pratt
  • 489
  • 3
  • 5
8

Adobe Illustrator

Isaac
  • 35,106
  • 14
  • 99
  • 136
7

These are my choices:

  • Interactive software: Ipe produces postscript and pdf files, can include LaTeX labels and other text, and has helpful snapping modes.

  • Non-interactive: Eukleides lets you design pretty high quality geometry diagrams with a simple language.

Jan Hlavacek
  • 101
  • 1
  • 3
7

Metapost. There are a few packages to simplify drawing geometry drawings.

Aditya
  • 221
  • 1
  • 6
6

If you are a mathematician and wants to use such pictures for your notes or presentations using TeX files, use the pstricks package enhanced for use of easy by the package LaTeXdraw.

Then there is a very useful linux program called xfig.

5

Live Geometry for Windows users.

night owl
  • 1,794
  • 2
  • 21
  • 25
Pratik Deoghare
  • 12,837
  • 6
  • 29
  • 44
4

I use the programme CaRMetal. Here are a few screenshots:

http://i34.tinypic.com/2vwcits.jpg

http://i35.tinypic.com/oa42ts.jpg

http://i35.tinypic.com/2lxfin8.jpg

http://i35.tinypic.com/rble9l.jpg

I guess most geometric constructions programmes are good, although I wouldn't recommend Kig.

night owl
  • 1,794
  • 2
  • 21
  • 25
Andrew
  • 115
  • 5
3

The free version of Cinderella is in some cases also a good choice.

user52942
  • 73
  • 5
3

tkz-euclide is a package for embedding, into Tex, drawings of Euclidean constructions. That is, it supplies commands to draw straight lines and circles but nothing any more sophisticated e.g. ellipses or the graphs of arbitrary functions. It also provides commands to locate the points at which one straight line or circle cuts another. (With TikZ, if you wanted to use the intersection points, you'd have to work out their coordinates for yourself.)

It is a layer on top of TikZ. Currently, the only documentation is in French, but it contains numerous examples, so it is quite easy to follow even if you don't understand French.

Rosie F
  • 2,418
  • 1
  • 8
  • 26
3

gnuplot

Features

I used gnuplot (official website), which is open source and can produce a huge number of different file types. For instance, you can also output tikz-code if you want to work with LaTeX. It is used for plotting datasets and one can plot easily errorbars.

Installation

You can download it from sourceforge or from your package database if you are using a linux distribution.

strpeter
  • 101
  • 4
3

Python Matplotlib

https://matplotlib.org/

Although Matplotlib's focus is on data plotting, it has become so featureful that you can generally produce good 2D illustrations with it.

Being written in Python is also a huge plus over domain specific languages like gnuplot.

It must be said that since it's main focus is not illustration, sometimes you have to Google a bit for the solution, but one often exists, or at least a reasonable workaround. And when it doesn't, it is often not hard to code it yourself and submit a patch.

Consider for example this simple educational graph demo I've made:

enter image description here

Source code

Also note that nothing in that demo is mandatory: you could easily rip off the axes or title for example.

It must be said that Matplotlib is not perfect for 3D however, as it does not support an OpenGL backend. As a result, the 3D interface is particularly clumsy and rather incomplete.

But you can get away with sometimes if your requirements are not too strict. For example, here's my attempt at a Bloch sphere illustration that I made for this other answer:

enter image description here

Source code.

In that example, we can see how I was unable to place the little circles above the plot as I would have wanted, showing how 3D is not perfect. But there is even a draft pull request for it.

One advantage of Matplotlib is that it has its own LaTeX subset parser, and thus dispenses a full LaTeX installation for mathematics as mentioned at https://matplotlib.org/3.3.3/tutorials/text/mathtext.html:

Note that you do not need to have TeX installed, since Matplotlib ships its own TeX expression parser, layout engine, and fonts. The layout engine is a fairly direct adaptation of the layout algorithms in Donald Knuth's TeX, so the quality is quite good (matplotlib also provides a usetex option for those who do want to call out to TeX to generate their text

Tested on matplotlib==3.2.2.

3blue1brown's Manim

https://github.com/ManimCommunity/manim/

This is based on the engine that 3blue1brown uses for his amazingly looking videos, which include complex moving graphs and formulas.

I'll let a sample video speak for itself: https://www.youtube.com/watch?v=r6sGWTCMz2k&t=1s

And there's an in-tree demo:

git clone https://github.com/ManimCommunity/manim/
cd manim
git checkout 1b12f076be49a677add97346eed6900e3cf18873
cd example_scenes
manim basic.py OpeningManimExample
xdg-open ./media/videos/basic/480p15/OpeningManimExample.mp4

enter image description here

Inkscape demos

Inkscape had been previously mentioned at: Software for drawing geometry diagrams but here are some demos that felt relevant.

https://graphicdesign.stackexchange.com/questions/141237/how-to-color-2-circles-intersection-in-different-color-in-draw-io shows how it supports doing intersection of figures (you have to potentially copy objects to merge them):

enter image description here

Intuition behind normal subgroups shows a more free-form block diagram I've put up myself:

enter image description here

Inkscape currently doesn't support constraints however unfortunately: https://gitlab.com/inkscape/inbox/-/issues/1465 e.g. "same widths, parallel, etc.", but you can generally get decent results by just snapping to a grid in the editor. The "Align and Distribute" tool also helps, acting as "one time constraints", but there's no way to make real permanent constraints right now.

There isn't LaTeX math support in an extremely convenient out-of-box way it seems, but there are some possible methods available:

FreeCAD SVG export

This is usually a bit overkill, but it is really cool.

FreeCAD, as a CAD software, actually supports explicit constraints with a constraint solver.

This is a bit along the lines of what Software for drawing geometry diagrams mentioned kseg can do, except that kseg seems a bit abandoned, e.g. last release on SourceForge is from 2011.

FreeCAD is not focused on doing nice looking SVGs, but a possible workflow would be to export a perfect geometry to SVG, and then import the SVG into Inkscape to finish more visual details. This might be a reasonable workaround until the blessed day when Inkscape will implement constraints.

To export to SVG, you have to create a sketch. FreeCAD is a bit intimidating since it does so much more than 2D figures, so just watch this video: https://www.youtube.com/watch?v=sxnij3CkkdU

With that, I obtain a perfectly specified figure, you can see some constraints showing on the FreeCAD GUI, e.g. equality of edges of that triangle:

enter image description here

And then, I export to SVG via:

  • Select the sketch on the right menu
  • File
  • Export
  • Files of type: Flattned SVG

And then after conversion to PNG for uploading here:

inkscape -b 'FFF' -z -w 512 eye.svg -e eye.png

I obtain:

enter image description here

TODO: why is it so messed up?

Tested on FreeCAD 0.18.4, Ubuntu 20.04.

MathMod

https://github.com/parisolab/mathmod

Not a huge community as of 2020, but it does seem to be able to produce some really nice 3D parametric/isocurve graphs with OpenGL and customizable shading.

You can use a custom scripting language to automate it (shame not python), and the GUI has widgets to vary parameters, including animations in time.

I got it to run on Ubuntu 20.10 by downloading the 10.1 prebuilt from the official download page on SourceForge (unfortunately). Then just unzip and run with:

./RunMathMod.sh

Here's a screenshot from the 10.1 release:

enter image description here

2

Geometry is a pretty new app on Mac OS X for making geometric constructions and check angles etc. Contrarily to Latex or others, you can move points and lines etc interactively and see how the drawing evolves based on the construction constraints.

screen

I like that this app is lightweight, with easy keyboard shortcuts, and that it is associated with a website that proposes a few good geometry exercises too. Totally worth its price!

Thomas
  • 1,124
  • 7
  • 13
2

If you are referring to geometric sketch, I like to use Dr. Geo, a free software of mine. It is an interactive geometry and programming software. You can make very easily construction with the mouse or more complex iterative one with its programming API.

Interactive geometric sketch designed with mouse and clic

  • 1
    It would probably be a good idea to mention that you are the creator of Dr. Geo. – Mike Pierce Apr 16 '16 at 22:42
  • 1
    Right, information added. So my answer is downvoted because.... I am the author of this free software? Nevertheless, I think I answer appropriately the question, I take time to illustrate it with related examples and I do not hide myself behind anonymous pseudo. – Hilaire Fernandes Apr 16 '16 at 23:14
2

Desmos Graphing Calculator, is, yes a graphing calculator, but it is also really useful for geometric drawing.

On their homepage they illustrate several examples of how versatile the tool is for drawing. The main drawback of the program is that you need to know the algebraic (Cartesian, Parametric, or Polar) equations behind your shape to draw it.

On the flip side however, that means your drawings are truly accurate; and, furthermore, it is not too difficult to draw everything imagine-able using parametric equations. (You can of course, superimpose multiple equations with one another to draw pictures).

As of 2018, Desmos has released a geometry tool typically for drawing geometry diagrams. That means, using Desmos to draw diagrams no longer requires too much mathematical background. It was a huge improvement.

amWhy
  • 204,278
  • 154
  • 264
  • 488
KR136
  • 1,760
  • 10
  • 14
2

I've used Smile by Satimage on my Mac. (Not SmileLab, just the free Smile. And not to be confused with PDF utility company "Smile on My Mac")

Smile uses AppleScript for drawing. Some example files show an amazing facility for geometric drawings: named points, marked angles, primitives for things like barycenter and circumcenter, TeX-styled labels, etc. A fully-labeled illustration of the Euler Circle can be created with a few lines of script. Outputs to PDF, JPG, etc.

I always have lots of trouble navigating the online documentation, so I know I'm not getting the full benefit of the program. Nevertheless, the ability to describe a drawing precisely with a script is what I need, and it's what the app delivers.


Update (10 years later!) Since the question was bumped by an edit, I thought I'd take the opportunity to amend this answer.

macOS made changes to AppleScript compatibility a couple of years ago while Smile wasn't being actively maintained, and the app became completely unusable. I think the developer may have started giving the app some attention lately, but I have since moved on to GeoGebra (mentioned in other answers here) and my own graphics code.

Blue
  • 69,412
  • 11
  • 108
  • 217
1

I think Geo-Gabra is easy to use.I used is just about 3 months. it is very easy for mathematical drawing. Download Here;

Geo-Gabra 4.4

Achira
  • 25
  • 3
0

Microsoft Excel. Just paste x and y (or long and lat) as a table and create a scatter (XY) chart from it.

Do make sure to include lines.

0

I use AutoCAD. In addition to features that help with geometric construction (such as drawing a segment perpendicular to a line, tangent to a circle, bisecting a line, or constructing a circle tangent to 3 lines, etc), which can be more or less found in GeoGebra, AutoCAD allows to make precise constructions using cartesian or polar coordinates.

Saeed
  • 1,725
  • 2
  • 13