KSeg v0.2

This document has all the non-intuitive stuff.  Read it.  It's very
dense. 
It is a substitute for real documentation, as I don't have time or
patience or skill to do it.

Stuff in v0.1:

RIGHT-CLICK to construct points!  I expect that will be the most
common problem--in order to construct anything you must first have
points.

Select objects (by clicking or dragging--multiple objects by holding
shift) and make new objects.

To construct a locus, select a point on a path (circle, line, arc,
segment, or ray) and an object that depends on that point.  The locus
that the object traces will be constructed if you hit ALT+O.

Hold CTRL and drag a point to reconstrain it.  You can drag a point
off a line, or circle, for example, and move it onto an intersection.
Experiment with this--it is very useful.

Stuff in v0.2: (NEW!)

To create a calculation involving measured values, double click on one
of the measurements.  Then enter the formula.  You can use functions,
such as sin, cos, floor, exp, etc. in it.  To insert other
measurements or calculations, click on them in the sketch.

Constructions are sort of like macros: you first define them, and then
play them back in a sketch or in another construction.  A construction
can have different types of objects.  Most objects are normal
geometric objects, the same as you would have in a sketch.  You can
mark some objects given, (meaning the construction will be performed
on them) and then in order to play the construction, you will have to
select objects of the same type as the givens.  For example, if you
want to make a construction that creates a circumcircle given three
points, you would draw three points, construct their circumcircle, and
then mark the three points as given (using the construction menu).  To
play the construction in a sketch, you would just select three points,
select the construction from the play menu, and a circumcircle will
magically appear.  See the circumcircle.sec example file for this.

A lot of the power of constructions comes from their ability to be
recursive.  To recurse in a construction, select a set of objects of
types corresponding to the givens, and choose Recurse from the
Construction menu.  A loop will be created.  Notice that once you have
loops in your construction, the set of givens is fixed.  To change the
givens, you must first delete the loops (they would become invalid
anyway if the givens were changed).  When you play back a construction
with loops, a dialog will appear asking for the desired recursion
depth.  Be careful: the size of a construction may be exponential with
depth and KSEG will easily let you exhaust your memory--make sure you
don't construct too many objects.

Another type of construction objects are final.  They are only
constructed at the greatest recursion depth.  They can be well used
for cosmetic purposes.

The "initial" type of objects is the most difficult to understand and
use.  Even I often have trouble telling what they may do.  If you are
not a super-power KSEG user, skip the rest of this paragraph and don't
use them; I might (unlikely) disable them in the future if I am the
only one who can use them.  The idea behind initial objects is to let
you save memory by constructing them only once and keeping them the
same across the entire recursion tree.  So if you need the same
independent subconstruction at all depths, you can mark it as initial.
You can also confuse the hell out of yourself.

Often, when dealing with constructions, you will not be allowed to do
something which you think you should be able to do.  While there are
certainly bugs, most of the time you really shouldn't be able to do
it.  Just think about it for a while and it should become clear why.

All of this is way easier done than said.

Play around with it to find out more featrues.  Have fun with it.

	-Ilya Baran
	ibaran@mit.edu
	http://www.mit.edu/~ibaran/



