MathpadDraw is a drawing tool for mathematical objects, both two and three dimensional. A major feature of the program is the ability to annotate a drawing with almost any mathematical text. You can save any drawing as a small proprietary type file or as a "png" image; of course, you can print any drawing that you make.
Two dimensionsal drawings include lines, circles and arcs (allowing almost any plane geometry figure), simple polygons, general polygons, polygon sets (allowing Venn diagrams), conics, curves defined by "guide points" (Bezier curves and splines), discrete graphs (digraphs and trees), function graphs, inequalities, parametric curves and implicit equations. Due to a combination of the Java library of drawing tools and sophisticated algorithms employed by the program, these drawings are uniformly excellent. Animation offered by the program is not only fun to watch, but can be very instructive about the underlying mathematics of the drawing.
The simplest three dimensional drawing is one of points and lines; for some reason this is not usually available. The Platonic and Archimedean polyhedra can be drawn and modified by truncation and finding of duals. Graphs of space curves, functions of two variables, parametric surfaces and implicitly defined surfaces round out the three dimensional possibilities.