I'm looking for a gui drawing program that will let me, for example, draw a circle, inscribe a square in the circle, connect the opposite edges of the square with line segments, draw the diagonals of the square, and label the vertices, edges, and regions of the figure.
So, something like xfig, except that it should have geometrically describable grouping or linking options. (You can glue objects together with xfig, but afaik not link them loosely, like through a point of tangency.) I.e., if i draw two primitives (like a square and a circle), then it should be possible to demand that they stay tangent, or that the corners of the square be on the cricle (inscription), and these relations will continue to hold if one primitive or the other is resized or scaled or moved (and the relations should be recorded as some kind of constraints in the file format). Maybe some kind of svg editor is capable of doing this? Anyhow, tia for any pointers. dan