.start
.related online license gui tips localize
Context sensitive Help

This help system will give you tips about the current tool, or about
your last action. E.g., to get help about the macro tool, choose the
macro tool and press the I-button to learn more about it. You can
close the window with the same button, or just leave it open. Place
the window beside the C.a.R. window to be able to see both. It will
remember its position and size.

In the upper part of this help window, you see a drop down list with
related topics. Please choose one of them to read about it.

You may also search for key words. Searching for "macro" will also
find "Macro", and words containing "macro". The search results are
presented in the drop down list too. One of the found topics is opened,
if there was a match.

Best wishes for your work with C.a.R.

The author
Ren Grothmann

.online
.related start tips
Online Help

You find the homepage of C.a.R. via my homepage at
"www.rene-grothmann.de". You are welcome to look for new versions
there, or to browse through the examples and demos there.

I opened two discussion groups about C.a.R. on Yahoo groups. One is in
German and the other in English. You find the English discussion
version via the support link on the homepage of C.a.R.

Of course, you can reach me by email. You find my email address on my
homepage too.

.license
.related online start
License to C.a.R.

C.a.R. is free software under the GPL (Gnu General Public License) and
you are welcome to use the program as you like. If you distribute it,
you must include at least a link to my pages. 

You may also get the sources via the homepage of C.a.R. However,
these sources and all changes you or others do must remain open. You
are enforced to provide the sources and all changes along with the
program. Moreover, you must provide a link to the original sources.

The same license also applies to the documentation.

If you want to make money with this program, you can do that by
providing additional services like books, instructions, tutorials and
such. You can also include the program into a commercial distribution
of software, e.g., in a Linux distribution. I kindly ask to get a
notice, if you that, and a sample, please.

.gui
.related iconbar mouse zoom online keyboard
User Interface

The larger area you see is the main window of C.a.R. It displays the
construction. The view can be moved with the arrow keys, and enlarged
with +/-. Alternatively, there is a tool to zoom and drag the
construction with the mouse.

Above the construction you find the icon bar. The icons show tool
tips, if the mouse remains over them for more than two seconds. The
icon display may also be concentrated into a single bar. In a two
line icon bar, the lower bar contains the construction tools. The
upper bar contains default settings, and settings for the display.

Below the construction, there is a status line, which displays
important text information. In the non-visual mode, this line is
replaced by an input line.

The menu contains many further options, like loading and saving of
files. It also displays the keyboard shortcuts to the tools.

.iconbar
.related restricted gui settings
Iconbar

To select an icon, click on it. To learn more about an icon, hold the
mouse over it for a while. A small window will appear with some text
explaining the tool.

There are different types of icons.

Icons expecting mouse input: Examples are the point or segment tools,
the macro parameter selection or the zooming.

Icons to change default settings: Examples are the default color or
the point type.

Icons changing the look: Examples are the grid icon or the icon to
show hidden elements.

Icons that do an action: Examples are the setting of the comment or
deleting the last object.

To configure the icon bar, start the dialog with the corresponding
menu entry. You can select and deselect any icon. Moreover, you can
choose to display the tools in a single row. Then the icon bar will
only show the most urgent tools.

The icon bar can be set to appear under the construction (see the
special settings).

Deselected tools can still be used in the normal mode using the
keyboard or the menu.

To learn more about the tools in the icon bar, hold the mouse over the
icon for a while. A short information will appear. Some icons behave
differently when selected with the CTRL-key. These icons will show a
different information when the CTRL-key is held.

.restricted beginner
.related iconbar
Restricted Iconbar

There is a restricted form of the icon bar, which is saved with the
construction. The user will see this restricted icon bar, when he
loads the construction.

To set the restricted icon bar, select this item in the options menu.
Then edit this icon bar. Remove all unnecessary tools, or all tools
that could confuse the user of your construction.

Once you disable the restricted icon bar, of when you load a new
construction, you get back your full icon bar.

There is also a special icon bar for beginners. Some tools that could
be confusing are missing here. Beginners should start in this mode.

.mouse
.related gui settings hide point circle move keyboard edit
The mouse

The left mouse button is used to create construction objects according
to the currently active tool. 

Many tools expect that the user chooses more than one object. In this
case, the first point becomes red, while the tools is waiting for the
second point. If a line or a segment is needed, you can click anywhere
on the object.

Objects under the mouse will be highlighted, if they could be used in
the current step. This makes it easier to select the proper objects. 

If the choice is not uniquely determined, the program will display a
list of possible objects. One can take an object from this list by
double clicking on it, or by selecting it and pressing of the button,
or with the keyboard. Points will be black, lines red, angles (and
other objects) green and circles blue. The selection dialog can be
disabled. The program will then select the closest of the objects
automatically.

An important feature is, that a point will be automatically created,
if the program expects the user to select a point, and the user clicks
on free space. Moreover, intersections will be created, if the user
clicks on an intersection. Also, points will be bound to objects if
the user clicks on an object.

If the SHIFT key is pressed, when a circle, a segment or an angle is
constructed, the program will assume that the object is to be fixed and
will display the object dialog. Here the user can enter a value to fix
the object, or simply close the dialog and use the current value.

The right mouse button moves points (alternatively to the move tool),
labels of objects, and it opens the settings dialog for objects. If a
label is right-clicked but not moved, it jumps to its default
position. If the Shift-key is down, when the label is selected, it
can move anywhere on the construction.

With the CTRL key plus the right mouse button, one can edit the
conditions for object properties.

With the CTRL key and the SHIFT key plus the right mouse button, 
an object can be hidden. Circles and lines will first become partial, 
then hidden.

.background
.related gui move htmlexport
Background Pictures

C.a.R. can display a picture behind the current construction. This
picture can be a construction state or a picture loaded from a file.

A picture from a file can be tiled, centered or stretched to fit the
construction window. There is a special switch to resize the program
window to the size of the loaded picture. 

If the picture fits the window size exactly, a link will be saved
along with the HTML export. The applet size will be the picture size
in this case. You must publish the picture in the applet directory.
Please edit the HTML file, if you publish the picture into another
directory.

.properties
.related edit colors hide mouse transparent point fixedangle replay animatebreak expressionsyntax latex
Object Properties

You can open the properties dialog of an object with the right mouse,
or with the edit tool. Many settings are common to all objects.

 - name
 - description
 - unit
 - color
 - thickness
 - hiding state
 - show name
 - show value
 - large of fat font
 - background state
 - transparent state
 - breakpoint

Names can contain almost all characters. If they contain "~", the
display will only show the part before the tilde, allowing the same
displayed name. The name must be unique. Descriptions are generated
automatically, but can be changed. If they are changed, the user can
revert to the automatic description by entering an empty line.

Objects can use another name (an alias) for display than the internal name.
This is useful especially, if the display should contain Latex code.

Some objects have a size and units. Changing the size works only for
fixed objects. Units can be any text behind the size. For angles, use
the degree symbol.

The thickness works differently for different objects. Please try it
out to see the effects. Objects can be hidden or completely hidden. In
the latter case, they can only be accessed by the construction
description. 

Name and value display can be combined as in "s=2". If the name ends
with an underscore as in "P_", the "_" will be deleted and there will
be no "=".

Other objects have a filled state. Moreover, transparency can be
switched on and off for these objects. Normally, only filled objects
are in the background, but you can set any object into the background.

Breakpoints are important for replay and for the animation of 
breakpoints.

There are other settings for special objects, like point type and line
style.

Also, look at the buttons on the lower side. E.g., points have a
special button to choose an object to bind to, fixed angles have a
special button to copy the size from another angle.

.latex
.related properties text
Latex Code

C.a.R. uses HotEqn to display equations in Latex form. To use Latex code, 
enclose the text in $ signs. Latex code can be used in lines in text objects,
or for names of objects. It is useful to use a specific display name in
this case. An example is P1=$P_1$.

HotEqn cannot display all Latex code, but quite a lot. You find here only 
a summary. First of all the Greek letters are supported (\alpha, \beta, ...), 
as well as many specific Latex symbols (\nabla). 
Of course subscripts (x_n) and superscripts (x^2) are supported
and fractions (\frac{1}{x}). The big operators, like integration
and summation are supported (\int_a^b), as well as limits and suprema
(\lim_{x \to \infty}).

Moreover, big brackets are useful (\left[ and \right]). Arrays are also
supported (\begin{array}{cc}2&3\\3&4\end{array}). The binomial fraction is
expressed with choose, and there is also atop ({2 \atop 3}).

.transparent
.related colors reorder properties
Transperancy

Transparent objects are possible, if Java 1.2 or better is used. On
older Java systems, objects will never appear transparent. Moreover,
EPS does not support transparency.

Instead, filled objects are drawn at first to get in the background.
This can be switched on and off in the settings dialog of all objects.
Then the object will be drawn in the order of construction.

Transparency can be switched off for individual objects in their
properties dialog.

.point
.related boundedpoint intersection settings mouse properties
Points

A point can be generated by various tools. The point tool will
normally generate a free (moveable) point. 

However, if an intersection is clicked, an intersection is created
after a confirmation which may be turned off. Intersection points are
not free (moveable), but depend on the two intersected objects of
course.

Points will be bound to circles and lines, if a circle or line is
selected. A confirmation for this can be turned on. The SHIFT key
fixes the point position relative to the object.

Points can be fixed with expressions. Again, holding down the SHIFT 
will open the dialog to fix the point, when it is created. 

Fixed points can be moved, if the expression refers to the point
itself and to no other object (@-references don't count). In this case, 
the position is recomputed 
using the expression. This is useful to restrict the movement of points.

Like other objects, free points can be dragged immediately after
generation. During the drag, the size and name will display, unless
this option is turned off.

.boundedpoint
.related point line mouse properties
Points on Objects

These are points, which are bound to a line, a circle, automatic
tracks, function graphs or parametric curves. They will move in a
continuous way, if the circle is moved. A point can be released, and
bound to a new object at any time using its properties dialog.

Points can be bound in two ways. Either the point is projected every
time the object moves, or the point is kept in its relative position
on the object. The first way is applied by holding the SHIFT key while
the object is selected (only if the point is generated by the tool for
bounded points). Moreover, the relative fix can be removed or set in
the object editor. The relative fix is the default way.

Bound points are not free. If however, a segment lies with both
endpoints on a line, and one of them is a bound point (to the line),
the segment can be fixed.

.line ray
.related point parallel properties segment
Lines and Rays

These objects depend on two points. So the user has to choose two
points for the construction. 

The differences between lines, concern not only the visual appearance
of these objects. Intersections and perpendicular lines behave
differently for these objects. I.e., intersections with rays become
invalid, if the intersection point is not on the ray. Perpendicular
lines to ray will be invalid, if the intersection with the line is not
on the segment. For perpendicular lines, it is possible to switch this
behavior off.

Note that the perpendicular line tool, the fixed angle tool, or the
parallel tool generate lines too.

See: Segments

.segment fixedsegment
.related expressionsyntax point parallel properties line
Segments

The length of a segment may be fixed, if it has one free endpoint. To
generate such a segment, hold the SHIFT key while selecting the second
point, or use the special icon (in this case, the second point will
always be created).

Segments can display as arrows.

See: Lines and Rays

.circle circle3
.related properties point transparency fixedcircle
Circles

There are three types of circles. Circles around a point M and through
a point A, circles around a point M with radius AB, and fixed circles.
Each type has an own icon. The first kind expects two points, the
second three and the last only one.

Drawing a circle can be restricted between two defining points,
yielding circular arcs. In this case, it is possible to keep the arc
less than 180 degrees (i.e., always the shorter arc will be drawn
connecting the ends of the arc). You select the end points using a
button in the property dialogs of the circle.

See: Fixed Circles

.fixedcircle
.related reorder expressionsyntax properties point transparency
Fixed Circles

Fixed circles have no radius point. To generate such a circle, hold
the SHIFT key when defining the radius point, or use the special icon
for this. This will open the settings dialog, where you can enter any
expression for the radius. If the circle is dragged immediately after
the generation, the settings dialog will not open, but the current
size will be used.

Fixed circles can be sized to the distance of two points using an
expression. To do this use the button "set size ..." in the settings
dialog. Note that only points can be used that are constructed before
the circle.

.intersection
.related point properties segment selectintersection
Intersections

This tool generates intersections between lines, circles, function
graphs, parametric curves and automatic tracks, if those are 
imported into the construction as normal objects.
In paper constructions, this might not be thought
of as an extra step to do. But the computer cannot compute all
possible intersections. Also it makes the necessary steps much clearer
to have to construct intersections explicitly. 

As a shortcut, intersections are created, whenever the program expects
a point, and the user clicks close to an intersection. The preview
will show the intersected objects clearly.

The intersection tool is hidden by default, since the point tool can
be used instead in most cases.

See: Selecting Intersections

.selectintersection
.related intersection point
Selecting Intersections

Note that circles intersect in two points. The program creates both
intersections, only if the two circles are selected as parameters
of the intersection tool one after the other. If you need only one,
hide the other. For automatically created intersections, the other
intersection will not be generated.

There is a subtle problem with the way the program orders the two
intersections of circles (or a circle and a line). In contrast to
other programs, this is done in a predictable way. For circles, the
order will change, if the circles are switched. The intersections
between a line and a circle depend on the direction of the line (i.e.
the order of its creating points). Try moving the line so that it does
no longer intersect the circle, then move it back. The order of
intersections will be the same.

Sometimes the intersection must be specified. This can be done by
telling one of the intersection points to be different from a certain
other point. The intersections will then be ordered such that the
chosen intersection is furthest away from the other point. The dialog
for intersections contains a special input line to specify the other
point, or a button to choose the point interactively. 

Note that this type is intersection is created automatically, if the
other intersection point is a point on the perimeter of both circles,
and if this point is visible. 

You an also specify that the intersection should be the one that is
closest to a given point.

.parallel plumb midpoint
.related line point properties
Parallel and perpendicular lines, midpoints

These are simply shortcuts for classical constructions. The first
two tools create lines. The midpoint is a point, of course.

Perpendicular lines to segments become invalid, if the intersection
is not within the segment. You can switch that off in the properties
dialog.

.move
.related circle angle background mouse
Move Objects

This tool can be used to move points, as an alternative to using the
right mouse button. It can also drag fixed circles and angles, unless
these objects are fixed. To unfix, hold down the CTRL button while
moving.

When the move tool is selected or when it is reset with the ESC
key, all moveable objects blink in red.

One can move several points at once. To do this, hold down the SHIFT key
while selecting the points, and release it for the last point.

If the CTRL key is hold, the old construction will be visible in the
background during the movement.

.tracker
.related point animate background mouse
Manual Point and Line Tracking

This tool draws tracks of moving points or lines. For a point its 
position is tracked, and for a line, a curve is generated treating 
the tracked line as a tangent.

First the point or line to be tracked must be selected, and then one 
or more "steer" points can be dragged with the mouse with the left button down 
to cause the selection to move, and so create the track. To create more than one 
track, hold down the SHIFT key when selecting objects until the final one is reached. 
The track colors used will be the same as their parent objects, and the track 
will remain visible until the next construction tool is selected.

Point and line tracks can be mixed, and line tracks can be produced from lines, 
rays or segments.

To turn a track into a permanent construction object, use the automatic tracking tool. 

See Automatic Point and Line Tracking  

.objecttracker
.related tracker point animate
Automatic Point and Line Tracking

This tool draws point and line tracks (as does the manual tracking tool) by animating 
the movement of a single steer point along a line or circle, at a speed which can 
be controlled from the keyboard. Should the first track being drawn become invalid, 
the movement of the steer point is automatically reversed. This also happens when 
a steer point reaches the end of a segment or arc to which it is bound. In case
the first track point becomes invalid because two circles no longer intersect, the
other intersection point will be chosen when the steer point reverses its movement.
Thus the construction runs through all possible states.

As for the manual tracking tool, multiple tracks can be drawn simultaneously by 
holding down the shift key when selecting all but the last of the objects 
to be tracked.

The animation speed can be reduced or increased using the <SHIFT> and a left or 
right arrow key. Repeated left mouse button clicks cycle the display through 3 modes: 
animation + track, animation with track hidden, track shown with no animation. 
In the last mode the steer point can be dragged with the left mouse button held down. 
Other points can be dragged with the right mouse button held down at any time, but 
while this is done, the track will be hidden and any animation paused.

If a construction file is saved with this tool active, it will also be active when 
the file is reopened.   

To stop the animation and clear the track(s), select any drawing tool. 

Permanent Tracks

To make the first track being drawn into a permanent construction object, press 
<SHIFT + ENTER>. It will then be redrawn using the currently selected color and 
line weight properties, which can be edited in the same way as for any other object. 
It will now be possible to create the intersections between the track and other objects.      

Tracks saved this way are recalculated at every change in the figure, which may slow 
down the program on older computers. It is therefore wise to limit the number tracks 
to be shown, and to restrict their lengths to reduce the recalculation load. It is 
also possible to turn the recalculation of a track off or on by using the fixed 
checkbox in its properties dialogue.  

See Manual Point and Line Tracking

.animate
.related circle line
Animation

This will animate a single point, walking along one or several
segments or circles. To start the animation, select a point, then a
sequence of segments or circles. Finish by selecting the point or any
of the objects once more. 

To stop the animation, click on the construction. To reverse the
animation SHIFT click.

Animations are saved to the construction file. In applets, the
animation will prevent user interaction completely.

To go back and forth on line segments or on arcs, shift click into the
construction. This will also reverse the direction in circles.

.angle
.related circle properties fixedangle
Angles

Normal Angles are decoration and cannot be used to construct anything.
The order of input is A, B, C, where B is the corner point.

Angles can be displayed in three different sizes. The largest size
will display a circular arc, which starts in A.

Angles can have Greek letters in their name. To achieve an alpha,
enter \a, \A etc. You can use all Unicode letters with \0XXXX, where
XXXX is any hexadecimal digit.
Angles, which are 90 or have a name starting with "." will
be labeled with a dot, if the size display is switched on. Angles may
be filled.

By default, angles are never larger than 180 degrees. The order of A
and C does not matter. However, this can be switched off in the
properties dialog.

See: Fixed Angles

.fixedangle
.related circle reorder expressionsyntax properties angle
Fixed angles

Fixed angles have no point C, but a fixed size. They is generated by
holding down the SHIFT key, while clicking for C, or with the tool for
fixed circles. This will open the settings dialog, where the user can
enter any expression for the size of the angle. If the angle is
dragged immediately, the settings dialog will not open.

Fixed angles can be sized using three given points. To do this select
the button "set size ..." in the settings dialog an select three
points A, B, C, where B is the corner point. The angle will be the
same size as the angle ABC. Note that only points can be used, which
have been constructed before the angle.

Fixed angles can be inverted. Thus one does not have to use positive
orientation. Furthermore, if a fixed angle is restricted to 180 by
default, and if such an angle is constructed in a mathematical
negative way, it will be inverted. There is an icon in the settings
dialog, which controls the inversion.

See: Angles

.area
.related point properties background
Filled Polygons

With this tool you can generate a filled area bound by segments. Enter
the corners of the area. Double click the last point.

The segments are hidden, when the area has thin thickness in the
properties dialog.

.expression
.related angles circles properties reorder expressionsyntax
Expressions

You can use arithmetic expression in C.a.R. to

 - set coordinates of points, 
 - lengths of segments, 
 - radii of circles,
 - and sizes of angles. 

Furthermore, you can display values of expressions in constructions.
Use the expression tool to place expressions on the screen (and the
right mouse button to move them). You will have to enter a valid
expression into the dialog. Expressions may have an explaining text,
and may or may not display the computed value. They are moved like any
other object with the right mouse button.

See: Syntax for Expressions

.expressionsyntax
.related fixedangles fixedcircles point properties reorder function
Syntax for Expressions

Name 
 Example 
 Description 
 
+, -, *, /,^ or ** 
 3.5*3+3/(4-5^2) 
 Elementary math. 
 
Name of object 
 AB/CD 
 The name of a segment, circle, angle and other expression. The object
must not depend on the current object. To refer to objects
by name there is the syntax @name or @"name". This will not work in
macros, however. If the object is not found, an error will occur.
 
Function 
 sin(a) 
 The functions abs, sign, sin, cos, tan, arcsin, arccos, arctan, sqrt,
exp, log, round, ceil, floor, deg, rad, sinhyp, coshyp, angle180 and angle360. Note
that the trigonometric functions work with degrees. To convert, use
deg(x), or the functions rsin, rcos, rtan, rarcsin, rarccos, rarctan.
 
User Function
 f(a)
 Evaluation of a user defined function object at a. 

Pi 
 pi 
 The constant Pi. 
 
x,y,z 
 x(P), y(P) , z(P)
 x- and y-coordinates of a point, or the z-value of the point.
 
d 
 d(P,Q) 
 Distance of two points. 
 
d 
 d(x) 
 Computes changes of the expression x. If x is a point, it computes
movements.
 
sum
 sum(x,f)
 Sums up x. If f is negative or invalid, the sum is reset to 0.
 
a 
 a(P,Q,Z) 
 Size of angle PQZ. 

scale 
 scale(x,a,b) 
 The relative position of x in [a,b), if x is in that interval. Else
the expression becomes invalid. 

if 
 if(e,e1,e2)
 Returns e1, if e is valid, else e2. 

invalid
 invalid Returns an invalid expression. 

&&,||,! ! 
 (x<4 && y<4) 
 Logical expressions. 1 is true, 0 is false. 

<, >, <=, >=, ==, ~= 
 x<y 
 Comparing numbers. ~= means "about equal". 

integrate
 integrate(f,a,b)
 integrate(f)
 Integrates the function f from a to b using the Romberg method. f
 must be a function object (probably hidden). The y-part of f is
 used. If f shows points only, the Riemann sum is computed. If f
 is parametric, the area inside the curve is approximated or
 its length, if it is not filled.

zero
 zero(f,a,b)
 Find a zero of the function f in the interval a,b. The sign of f
 in a and b must be different. The procedure uses the secant method
 or interval bisection.

diff
 diff(f,a)
 Numerically differentiate f at a. This is the usual approximation
 (f(h)-f(-h))/(2h)

min,max
 min(f,a,b)
 Computes the point of the minimum (maximum) of f between a and b.

this
 x(this)
 Refers to the object containing the expression.
 
windoww,windowh,windowcx,windowcy
 Computes the dimensions and center coordinates of the current screen.

Note that expressions can use only objects constructed before them. To
change the order of your construction, use the reorder tool.

.area
.related properties point transparent
Filled Polygons

This fills the area defined by corner points with a color. The fill
should be set to light. In Java 1.3, filled areas will be transparent.
To define the area, select the corners. The definition is completed by
reselecting any of the previously selected corners.

.text
.related replay comment properties latex
Text

This displays a multiline text in the construction. You can edit the
text using an internal editor. This editor contains a button to reach
the normal dialog for object properties. You can fix the position of
the text using arithmetic expressions there. Note, that invalid
positions make the text invisible, a feature that is sometimes useful.

To create a bold or large line, or both, precede the line with *, **,
or ***. To use Latex commands, enclose the line in $. Moreover, one can
use expression enclosed in %. These expressions will be evaluated and
the text will display the result instead. If the expression is of the form
~variable, the equation for this variable will be displayed.

Hidden texts appear in replay mode at the specific step. This allows
to show local comments of constructions steps that disappear later.

.quadric
.related properties point transparent
Conic sections

Conic sections are sets of solutions of equations formed by linear
combinations of x^2, y^2, x, y, xy and 1 (quadratic functions in two
variables). Conics are determined by 5 points. You simply need to
select the 5 points.

To edit the properties of the curve, click on it and use the normal
properties dialog. Conics will display the defining formula as their
value.

.hide
.related construction properties mouse
Hiding Objects

This will hide objects. To make a hidden object visible, enable the
option to show all hidden objects. Hiding objects can also be achieved
by holding the CTRL key and clicking on the object with the right
mouse button. In this case, circles and lines go to the partial state
first, and hide only on the second click.

If the SHIFT key is held, when an object is selected for hiding, the
object will be completely hidden. In this case, one can make the
object visible again only by using the object list in the construction
description.

It is possible to hide all duplicated objects. Only the most recent
objects will be visible. Press the CTRL key while selecting the hide
tool, or use the menu.

.rename
.related properties
Rename Alphabetically

You can rename lines to a,b,c, points to A,B,C and angles to \a,\b,\c
with mouse clicks using this tool. The first unused letter will be
used.

If you need the letter "a" for two different objects, use "a~1" and
"a~2". Names show only to the "~".

You can force A, B, C by pressing the shift key when you click on a
point. Letters will then be switched, if they were already in the
construction. To start over, press escape.

.delete undo back
.related construction
Deleting Objects

The tool deletes the most recent objects, and all hidden objects
before it. Undo restores all these objects at once. 

There is another tool that deletes any object and all objects depending
on it. 

Undo only restores one of these operations.

.function
.related expressionsyntax properties
Functions and Curves

The program can display functions and parametric curves. To create a
function use the menu entry or press the icon. In the dialog, enter
the start and stop value of the parameter variable and the step size.
If you wish, you can use any string as a parameter name, but you can
also use the default "x".

For a simple function, leave the X-value empty, and enter "f(x)" for the
Y-value. "f(x)" must be a valid expression.

For a parametric curve, you need two functions, one for the X-value
and one for the Y-value.

The program will increment the parameter variable from start to end
using the given step size. If the function is valid between two
parameter steps, a line segment will be drawn in the construction
using the construction coordinates.

Functions can be used in other functions. The Y-value will be evaluated
then.

Functions and curves can be filled. For a parametric curve, the center is
0, but can be changed. To do that use the properties dialog and press
the "Select Center" button.

f can be reduced to a sequence of points. If a function is filled additionally,
a Riemann step function will be drawn.

.defaults
.related line angle colors
Default settings

You can set the default color and appearance and some properties of
new objects.

 - color of objects
 - thickness of objects
 - style of points
 - partial circles
 - partial lines
 - segments as arrows
 - show name
 - show value
 - use long names
 - large and bold font
 - angles larger than 180 degrees
 - non-transparent objects

.edit
.related mouse properties
Edit Objects

Edits the properties of one or more objects. To select several objects,
hold the SHIFT key. The edit dialog for more than one objects has
fields in an invalid state. Only the changed fields will be
used to update the objects.

If the CTRL key is pressed when the tool is selected, the last
object will be edited.

IF the CTRL key is pressed, when an object is
selected with the right mouse button, one can edit the conditions for 
properties of objects.
For colors, thickness and other properties, it is possible to
define conditions to activate these properties. This is useful
for special effects. Each property can have a condition and it
will be enabled when this condition evaluates to true, which is
any value other then 0.

A special condition is the z-buffer value. It determines the order
of painting. The objects with the largest z-buffer are painted first.
All objects that have a z-buffer value are painted after the background
objects, but before any other objects.

One can set the properties of several objects at once. The current
object can then be referred to by the name "this".

.show
.related hide
Hide by color

Show or hide objects with specific colors. This is used to make the
construction clearer.

.grid
.related zoom move mouse
Grid

Toggles the display of the coordinate system. If the grid is on, new
points and points moved by the right mouse button snap to grid
points.

If the grid is on while the construction is saved, it will be switched
on, when the construction is loaded.

During the replay, hidden texts will be visible.

.replay
.related htmlexport text animatebreak
Walk through constructions

This tool opens a small dialog with navigation buttons containing the
usual buttons for fast rewind etc. Additionally, breakpoints can be
set with this tool. Breakpoints are important for HTML export in
replay style. 

Once you have set a breakpoint, you can jump to it by a simple
click.

To set a hiding breakpoint hold the shift key while setting the
breakpoint. Hiding breakpoints hide all objects in front of them up to
the previous breakpoint. The construction will be split into several
parts.

Breakpoints and hiding breakpoints can also be set in the properties
dialog.

.animatebreak
.related replay
Animate breakpoints

This tool automatically goes from breakpoint to breakpoint. To increase
or decrease the speed, press shift plus the right or left key.

.draw
.related mouse
Draw with the mouse

You can paint sketches with the mouse in the current color using this
icon. To delete the painting, press escape or use the menu entry. 

The drawing will be saved. However, the construction file gets
bigger with paintings.

.zoom
.related mouse grid
Zoom with the mouse

Zoom in and out by dragging in the outer region of the construction.
Move the construction by dragging the inner region of the
construction. The latter uses a different mouse pointer.

You can also zoom with the +/- keys, and you can move with the arrow
keys.

The current view will be saved in the construction file.

.parameter
.related runmacro parametertypes target
Macro Parameters

Macros are an important tool for more complicated constructions.
Without macros, only simple constructions can be done. Macros collect
many constructions steps into one construction step. They behave like
subroutines in a programming language. Macros are like new, user
defined tools.

A macro needs parameter objects and target objects, just like the
segment tool takes two points as parameters and has a segment as its
target.

Macros in Z.u.L. are easily defined. You show the macro, which part of
your construction it should learn. We call this the "definition
pattern". To create the pattern, construct some targets starting with
some given parameter objects! E.g., you could construct the middle
perpendicular line of a segment between two points, starting with
the two points.

In the first step, you show the macro your starting points. The macros
will learn that these are the parameters of your construction. Then
you press the macro tool once more to define the targets.

See: Targets

.target
.related parameter runmacro parametertypes
Targets

After you have selected your parameters, press the macro tool once
more to select the targets. You will see only those objects that are
constructible from the parameters at this state. E.g., you will see
the middle perpendicular of two points, if you have selected the two
points as parameters. You will also see all intermediate construction
steps unless you have hidden them.

Select the targets now. E.g., select the middle perpendicular line.

So you should always define at least one target object. If you do not
select targets, all visible objects will be constructed by the macro.
Targets will get the default color and styles when the macro runs. All
other objects get the style in the definition pattern, with the
exception that black objects get the default color. Especially, all
hidden objects will be constructed hidden. However, there is an option
to hide all objects, which are no targets, automatically, even if they
were visible in the construction. Moreover, if the macro is used in
the descriptive mode, the user can assign names only to target
objects. 

Another press to the macro tool lets you define the macro using a
dialog. 

See: Macro Definition

.macro
.related runmacro parametertypes parameter target expression fixedcircle fixedangle hintparameters
Macro Definition

After you have selected your parameters and your targets, another
press to the macro tool lets you define the macro using a dialog. 

Here, you can enter the name, a comment, and you can edit the user
prompts for each parameter. Comments and user prompts are important,
since the user might not know, what the macro does and what it needs
to do its job. The prompts are displayed in the status line, while the
macro waits for parameters.

It is possible to fix a parameter to an object A by using "=A" for the
parameter prompt. The parameter will not be prompted, but instead an
object "A" will be used, if there is one, and if it has the correct
type.

Be default, macros hide all objects that are duplicated from existing
objects. You can turn this feature off here.

Moreover, it is possible to ask the user for a value for either a
fixed circle, a fixed angle or an expression while the macro is
running. To do this, enter the name of the circle, the angle or
the expression into the box in the last line. The user will be prompted
with a dialog and can enter any arithmetic expression. Several comma
separated objects can be prompted from the user.

.hintparameters
.related macro
Hint Parameters

A special feature hides parameters. If a hidden point is chosen as a
macro parameter during the generation of the macro, and if that point
is associated to a point generated during the parameter selection at
run time, this new point will be hidden after the macro has been run.
This feature makes it possible to use points as hint parameters. An
example would be a macro, which generates an equilateral triangle on a
segment. The hint would be a third click indicating either side of the
segment. In this case, an expression must be used for one of the 60
degree angles involving the third point, something like
"60*sign(180-a(P,A,B))".

.runmacro
.related parameter parametertypes mouse expressionsyntax fixparameters
Run a Macro

The macro must be selected from a list. If the SHIFT key is pressed,
the recently used macro will be selected automatically. Then the
program will prompt for each parameter and display the expected object
type.

Macros can also be selected with the right mouse button. Choose the
macro from the list in the popup menu.

If you see "Space selects ...", you can choose this object simply by
pressing the space bar. This is useful, if the macro is used several
times.

Finally, the macro will be executed. If the macro needs a value for a
fixed circle or angle, it will prompt with a dialog box. The user can
enter any arithmetic expression for this value.

If full preview is turned on, you will see the result of the operation
before the last parameter point is selected.

.defaultmacros
.related runmacro save
Default Macros

When starting, C.a.R. looks for a file named ".default.mcr" in the
current directory. If there is such a file, the macros contained in
this file are loaded. 

These default macros are protected. They are not deleted when a new
file is loaded and they are not saved with constructions. To delete
protected macros, use the menu entry in the macro menu, and select all
macros. 

You can create default macros yourself. Simply save a file
".default.mcr" into the current directory. If you need a special
language version, save the file as ".la_default.mcr", where "la" is
your language shortcut, of simply overwrite ".default.mcr".

.localize
.related defaultmacros
Localized Help

C.a.R. already runs in many languages. However, if you want to provide
your own version, you should translate

 - ZirkelProperties.properties
 - info.txt

The properties file needs to be translated into an internal Unicode
representation by a tool named "native2ascii". It is wise to let me do
that for you. Simply send me the file.

The help file should be in your local encoding simply.

.fixparameters
.related runmacro parameter
Fixed Parameters

You can also fix the selection of macro parameters by pressing the
SHIFT key during the selection. This will create a copy of the macro,
which is fixed in these parameters. You cannot fix all parameters
of course.

A parameter can be fixed, while the macro is defined. To do that,
enter "=A" as the prompt of the parameter. This parameter
will be fixed to the object with name "A".

.parametertypes
.related parameter
Types of Parameters

It is easiest use points as parameters. But other types are possible
too.

Lines, rays, segments, and circles generate secondary parameters,
namely the two end points, or the center respectively. This simplifies
macro usage. However, the user must take care to use these parameters
in the same configuration. Two concentric circles must be concentric.
If the segments AB and BC are macro parameters, then the user must
choose segments EF and FG. In these cases, it is better to use
points as parameters.

Lines and rays are of two types: with two defining points, and with
one defining point (e.g., parallel lines). In the macro, lines, rays,
and segments are stored as pointless lines, if their defining points
are not used in the target construction, of if they have only one
defining point. The user can then choose any line as a parameter. If
the one of the two defining points is used, the user will have to
choose a line, ray or segment of the same type. Again, this is
complicated, and it may be best to use points.

.htmlexport
.related runningdemo save comment exportdialog jobexport
HTML Export

C.a.R. can generate HTML pages for your constructions, containing an
applet that displays the construction.

After you filled the dialog, you must choose a file in a file dialog,
and, for assignments with solution pages, another for the solution.
Then you need to publish

 - the HTML page just generated, 
 - a solution page, if present,
 - style sheets, if present, 
 - the applet archive zirkel.jar,
 - the construction file. 

Note that tracks and animations are saved with the construction. They
will automatically reappear in constructions, which are displayed in
applets. In this case, there is no user interaction. So you should use
the plain or border style for these applets.

Note that tracks are displayed automatically, if they were displayed
when the construction was saved.

It is best to have only one applet on each HTML page.

.htmlexporttemplate
.related htmlexport save comment settings
HTML Export with Templates

This is a comfortable way to export your construction to HTML. The
program loads a template for the HTML page, and fills in the necessary
information replacing all placeholders on the template page. The
dialog is much shorter, since most information must be continained in
the template file, including applet size, applet and page colors,
style sheets and archive position.

The documentation contains some templates. Template files use the
extension "*.template". You can edit these template files with any
file or HTML editor. Foreign language users should disable UTF-8 in
the settings dialog, or they must use an editor, capable of handling
UTF properly (e.g my text editor JE the HTML editors of Mozilla or
Frontpage by MS, and many others). You may base your template on the
template files that come with the documentation.

The following placeholders are recognized.

#title
  Replaced by the construction title as shown in the export dialog.

#comment1,#comment2,...
  This will be replaced by the section of the construction comment
with the corresponding number. Comment sections are separated by lines
consisting of "~". Each paragraph of the comment section will be
bracketed by <p>...</p>.

#comment
  Works like text, but does not look for comment sections.

#text1,#text2,...
  Works like #comment1,... but does not generate paragraphs
<p>...</p>. The user can provide any HTML-tags he likes.

#text
  Works like #text1,... but does not look for comment sections.

#parameter
  Inserts the applet parameters: file or job, style, tools and options.

#color
  Inserts the applet parameters for colors.

#font
  Inserts the applet parameter for fonts and digits.

#codebase
  The codebase from the export dialog.

Here is a very simple template file.

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
  <HTML>
  <HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8">
  <TITLE>
  #title
  </TITLE>
  </HEAD>
  <BODY BGCOLOR=#F0F0F0>
  <H1>
  #title
  </H1>
  <CENTER>
  <P>
  <APPLET CODE="rene.zirkel.ZirkelApplet.class" #codebase WIDTH="400" 
  HEIGHT="400" ALIGN="CENTER">
  <PARAM NAME="color" VALUE="240,240,240">
  #parameter
  </APPLET>
  </P>
  </CENTER>
  #comment
  </BODY>
  </HTML>

.exportdialog
.related htmlexport jobexport
Export Settings

Applets can have several styles.

- Plain: The applet has no border. The user can only display hidden
elements and move points. One should use the color for the page and
the applet in this case. 

- Border: The applet gets a border. 

- Border and Icons: The applet gets a border and icons. The user can
construct things. 

- Border, Icons and Status: The applet gets a status line. The status
text is displayed in the browser status line too. 

- Border, Icons and Input Line: The construction must be done in
descriptive (non-visual) mode. 

- Replay with Breakpoints: Three buttons are displayed to enable
navigation from breakpoint to breakpoint. To set the breakpoints, use
the replay tool. 

Title of Page: This is the title of your page in <H1> style.

CSS Style-Files: Cascading Style Sheets are useful to give several
pages a common appearance. If you do not use them, leave the input
empty. Use a path relative to the program archive.

Width, Height: The dimensions of the applet display.

Construction File: The name of the file containing the construction,
usually in the same directory as the HTML file. However, the file
names must be relative to the program archive. Absolute URLs and paths
are not allowed here.

Jar File: This is the program archive. The path must be relative to
the HTML page.

Colors: You can choose a color for the page background and for the
applet background. The color can be chosen with the button below.

Moreover, there are switches to save the defined colors for the
construction elements and for the construction background. The
background of the construction can be different from the background of
the applet and the background of the page.

Save Digits: Will save the settings for the number of digits. Should
be enabled.

Show Comment: This will put the comment below the applet. All browsers
should be able to handle the default UTF-8 encoding. If not switch to
the Windows encoding in the special settings.

Tools: These two icon bars let you choose the tools, which should be
displayed to the user. In any case, one should provide the undo tool.
With the special icon for two lines the user gets two lines of tools.

The user can only define macros, if you give him the macro tool. And
he can run only macros only, if this tool is available.

The icons with the question mark are switches for the object selection
dialog, the question for points on objects and for intersections.
By default, all these dialogs and questions are turned off in applets.

In the non-visual mode, the icons help the user to find the syntax.
In this mode, all construction tools work.

.jobexport
.related htmlexport exportdialog
Export Assignments

Display as Assignment: Needs to be checked to save the construction as
an assignment.

Solution File - Jump - Save - Link: These settings allow the automatic
generation of a solution page, which is a separate page to display the
solution. After the user finishes the assignment, the browser can jump
directly to the solution page. One can also set a link to this page
below the construction.

Comment: Exports the assignment comment, of course. The construction
comment is only shown on the solution page.

.runningdemo
.related htmlexport online
Creating a running demo

It is possible to get an applet to load a series of constructions and
display them to the user at a given rate. The applet syntax is quite
different and there is no automatic export.

An example of the applet code looks like this.

 <APPLET ARCHIVE="zirkel.jar" CODE="rene.zirkel.ZirkelApplet.class" 
       WIDTH="500" HEIGHT="565" ALIGN="center">
 <PARAM NAME="demo" VALUE="demo.xml">
 <PARAM NAME="color" VALUE="244,244,242">
 </APPLET>

The file "demo.xml" contains the file list. It is an XML file with a
straightforward syntax. Here is a sample.

 <?xml version="1.0" encoding="utf-8"?>
 <Demo delay="30">
 <File name="Uhr.zir" delay="20">Clockwork</File>
 <File name="Cindarella-Maschine.zir">Cindarella machine</File>
   ...
 </Demo>

The delay parameters are in seconds.

.visual
.related expressionsyntax descriptivefiles runmacro
Descriptive Constructions

In this mode, there is an input line below the construction. The
following differences apply.

 - Choosing a tool will only display an input pattern. 
 - The necessary construction parameters must be supplied by name. 
 - The name of the constructed object may be given left of an equality sign =.
 - The construction is carried out be pressing Return. 

There is a fixed syntax for the input.

 name=function(parameter,...)
 name1,name2=function(parameter,...)

The second line applies to intersection and macros with several
targets.

If the name is missing, the object will get the default name. 

Here is a short description of the syntax. Note, that expressions may
be used in all places, where a value is expected. Empty brackets can
be omitted.

Syntax 
 Long 
 Description 
 
A=P() 
 point 
 Generates a point at random position. 
 
A=P(0,1) 
  A fixed point. 
 
a=s(B,C) 
 segment 
 A segment from B to C. 
 
a=s(B,2) 
  A segment of fixed length. 
 
a=g(B,C) 
 line 
 A line through B and C. 
 
a=r(B,C) 
 ray 
 A ray from B to C. 
 
k=k(A,B) 
 circle 
 A circle around A trough B. 
 
k=k(A,2) 
  A circle with fixed radius. 
 
k=k(A,B,C) 
  A circle around A with radius BC. 
 
A=S(g,g) 
 intersection 
 An intersection between two lines. 
 
A,B=S(k,k) 
 Both intersections between circles, or circles and lines. 
 
away(A,P) 
 away 
 Keeps the intersection A away from the point P. 
 
M=M(A,B) 
 middle 
 The midpoint of AB. 
 
g=pl(g,A) 
 parallel 
 The parallel through A to g. 
 
g=p(g,A) 
 plumb 
 The perpendicular through A to g. 
 
a=w(A,B,C) 
 angle 
 The angle A,B,C 
 
a=w(A,B,90) 
  An angle of fixed size. 
 
A=area(P1,P2,P3) 
 area 
 Creates an area with these corners. 

Q=quadric(P1,P2,P3,P4,P5)
 Creates a conic section through these points.

F=function(a,b,d,t,xt,yt)
 Creates a function on [a,b] with step size d, plotting xt,yt,
 which are expressions depending on the variable t.

value(P,0,1) 
 value 
 Fixes the coordinates of the point 
 
value(s,2) 
  Fixes the length of the segment. 
 
value(k,2) 
  Fixes the radius of a circle. 
 
value(w,90) 
  Fixes the size of an angle. 
 
value(true,o) 
  Sets the display of the value for o. 
 
value(o) 
  Sets the display of the value for o to on. 
 
value(true) 
  Sets the default display of values. 
 
name(o,p) 
 name 
 Sets the name of o to p. 
 
name(true,o) 
  Sets the display of the name for o. 
 
name(o) 
  Sets the display of the name for o to on. 
 
name(true) 
  Sets the default display of names. 
 
hide(true,o) 
 hide 
 Hides or un-hides o. 
 
hide(o) 
  Hides o. 
 
hide(true) 
  Sets the default hidden state for objects. 
 
col(green,o) 
 color 
 Sets the color of o to red, green, blue or brown. 
 
col(green) 
  Sets the default color. 
 
th(thick,o) 
 thickness 
 Sets the thickness of o to thick, normal or thin. 
 
th(thick) 
  Sets the default thickness 
 
type(square,P) 
 type 
 Sets the point type to square, circle, diamond or point. 
 
type(square) 
  Sets the default point type. 
 
part(k) 
part(true,k) 
 partial 
 Sets the object k to partial display or full display. 
 
part(true) 
  Sets the default partial state. 
 
fill(o) 
fill(true,o) 
 fill 
 Sets the object o to filled state or outline state. 
 
back(o) 
back(true,o) 
 background 
 Sets the object o to the background or not. 
 
window(0,0,5) 
 window 
 Sets the view window to width 2*5 and center (0,0). 

valid(o)
valid(true,o)
 Treat segments and rays as lines in intersections and in
 perpendicular lines. o is the intersection or the perpendicular.

obtuse(a)
obtuse(true,a)
 Set angles so that they can become greater then 180 degrees.

solid(a)
solid(true,a)
 Set the object to the nontransparent state.

restrict(c,A,B)
 Restrict a circle to become an arc from A to B.

valid(o)
valid(true,o)
 Remove the restrictions from perpendicular lines and intersection.
 These objects will be valid, even if the intersection is outside a
 segment or an arc.

rename(A,B)
 Rename the object A to B.
 
Macros can be used too. Names left of = will be assigned to targets.
If there are several targets, the names must be separated by commas.
One additional parameter may be used to assign a value for an object,
which would be prompted in interactive mode.

.descritivefiles run
.related visual save
Descriptive constructions in files

One can load constructions from a file, or edit and then load such
constructions. 

The syntax is line oriented and uses the commands described above.
Line comments starting with // may be used. The files may contain
macros like this

 macro U 
 // Constructs a circle through three points
    parameter A=point // Select first point
    parameter B=point // Select second Point
    parameter C=point // Select third point
    g1=MS(A,B)
    g2=MS(A,C)
    U=intersection(g1,g2)
    target k=circle(U,A)
 end

The indents are optional. Comments in the parameter lines are used as
prompts, if the macro is used interactively. This macro calls the
macro MS with two parameters.

 macro MS
  param A=point
  param B=point
  partial(true)
  k1=circle(A,B)
  k2=circle(B,A)
  partial(false)
  P1,P2=intersection(k1,k2)
  target g=line(P1,P2)
 end

If a line constructs two objects, the target must be defined
separately.

 A,B=intersection(g,k)
 target B

If a macro has more than one target, all targets must be assigned.

 A,B=test(...)

Prompts are defined by the keyword prompt in front of an object name.

 k=circle(A,5)
 prompt k

Here is an example of a macro using a segment as a parameter.

 macro MS
 // Mittelsenkrechte
  A=point
  B=point
    parameter s=segment(A,B)
    ...
 end

If circles are used as a parameter, there is the special syntax

 M=point
 parameter circle(M)

This kind of circle can only be used in parameters.

The special command "showall" shows all intermediate objects.
Otherwise, only targets will be visible. The command "invisible"
superhides all objects that are no targets.

.assignments
.related save restricted colors comment
Assignments

Assignments (or jobs) are incompletely displayed constructions, which
the user is supposed to finish. The computer will only check for the
constructed target object, while the construction itself might be
different. The user will receive a message, as soon as he has
completed the construction.

Assignments are generated by choosing the last object to be displayed
to the user. Furthermore, there must be target objects. The target
objects will be displayed in a light color, unless they are hidden
before the construction is saved.

Targets are not checked for the solution, if they are generated while
pressing the SHIFT key.

To test the assignment, click on the menu entry for this. In contrast
to the user, you will have the complete set of tools available,
however. You can use the restricted icon bar to save the assignment.

Area objects as targets should be defined by the least set of corner
points. If the solving user creates additional points on the sides of
the polygons those points will be skipped.

.browser
.related online
Starting the help browser

To start the HTML help in the browser, you need to configure it. Enter
the command line to the browser in the dialog. If the path contains
blanks, include the browser in double quotes.

Moreover, add the path to the help index file. This should be
preconfigured already. If no help is found, the configuration dialog
will use the web page.

The default browser is the explorer on Windows systems, and Netscape
elsewhere.

.comment
.related assignments parameter htmlexport
Comments

Each construction can have a comment. The comment will be displayed to
the user when he loads the construction. Comments can be exported to
HTML.

Assignments will have a special comment, displayed to the user, when
the assignment is presented.

Macros can and should have comments too.

.fonts
.related zoom save
Fonts

Fonts can either be set globally or for each object. Global settings
have preference.

You can use fonts of two sizes. Fonts and points are scaled with the
construction, however. For small windows or applets, this would lead
to very small fonts and points. Thus there is a minimal point size.

Moreover, you can use bold fonts. This option is recommended
for large bitmaps.

.save
.related assignments parameter descriptivefiles print defaultmacros filedialog
Saving and loading files

Constructions are saved in XML-format to computer files. This format
is human readable. Normal constructions have the extension ".zir",
and assignments have the extension ".job". Macros use ".mcr".

Constructions may contain macros. There is a switch to determine, if
the current macros should be saved along with the constructions or
not. To avoid accumulating macros from several constructions, it might
be a good idea to delete all macros before a new construction is
loaded. There is a switch to do this.

Files may be compressed by adding "z" to their extension. There is no
need to do this, unless you want to minimize download time, because
the file is on a server.

There are special menu items to load assignments, to load macros, and
to load descriptive constructions in files.

See: File Dialog

.filedialog
.related save settings
The File Dialog

C.a.R. implements an own file dialog since the file dialogs of Windows
and Linux had some defects when used from Java. If you want to use the
normal system file dialog, however, you can switch in the special
settings.

The file dialog of C.a.R. uses histories for files, directories and
filters. The directory history has a special drop down choice menu,
and the history of the file and pattern fields show when the cursor up
or down key is pressed in these fields.

Navigation in the directories is by a double click on the directory
name in the left panel. The "Back" button opens previous directories.
To choose a file, you can double click on its name in the right
panel, or select it and use the action button.

As you will notice, that it is possible to enter several file patterns
separated by spaces. File patterns contain one or more place holders,
"?" for single letters and "*" for strings.

The button below creates a new directory. Enter the name of the
directory into the directory field. No files or directories can be
deleted in this dialog.

The home button brings you to the home directory of C.a.R., if
installed in the home directory of the user. The English name is "CaR
Files". If there is no such file, the button brings you to the user
home directory. In Windows, the English name is "My Documents". In
Linux, you will be in your home directory. You can change this
directory by pressing the home button with SHIFT-CTRL. The current
directory will become the new home directory for C.a.R. A new click
with these keys restores the old settings.

.print
.related exportsettings print
Print and Export Constructions

There are several ways to export your constructions to other programs
or view them externally. 

First of all, you can print your constructions. There is an option to
print in exact size, so that units of 1 are 1 cm exactly.

Moreover, you can export in various graphics and vector formats. For
word processors, I recommend EPS as a format for vector graphics, and
PNG as a bitmap format. 

On PNG output, a dialog will open, where you can set the output size or
use a factor relative to the screen size. You can also determine
the size by the graphics width and height in cm and the resolution.
If "300 dpi" is pressed, you get a scaled version (1 unit = 1 cm) with
a 300 dpi resolution.

Since lines, fonts and points may get to small in small pictures, you
can scale in cm. There is a preview to see the effect on the screen.

On PDF output, you set only the picture sizes in cm. PDF can also
scale lines, fonts and points.

You can also copy graphics to the clipboard. The same scaling will apply
like in PNG output. If you want a screen dump of the construction, use 
"screen size" in the scaling dialog.

.construction
.related hide reorder
List of objects

You can get a list of objects in your construction with the
corresponding menu entry. This list can be used to edit invisible
objects. It is the only way to access completely hidden construction
steps. The lines in the list have the same colors as the objects.
Completely hidden objects are in brackets.

You can restrict the display to certain types of objects with
the drop down menu in the first line of the dialog. Completely
hidden objects will only be visible in the "All Objects" state.

The view is either sorted by the order the objects were constructed,
or by the order the objects are stored. Note that the program may
change the order of the objects to make sure no object refers to
another object, defined later.

.colors
.related htmlexport
Set colors

You can set the various colors of C.a.R. to your liking. Colors will
not be saved with your construction, but they are exported to HTML.

Colors are composed in the red, green and blue color model. Switch
back to default colors for best compatibility.

.settings
.related restricted iconbar tips beginner
Special Settings

This dialog contains some settings for advanced users. Some of these
settings are affected by the beginner mode, however.

First of all, you can enable the display of object labels while the
object is moved. This option may be disturbing, but it is quite useful
in some cases.

Then, you may turn off or on some questions the program asks before
critical actions.

If you disable the dialog to choose objects, the program will always
select the first object, even if the selection cannot be determined
uniquely from the mouse position.

You can also turn off the preview, or restrict it to points. In the
beginner mode, only points are shown in preview, since other objects
tend to mislead the user.

The icon bar can be set to the lower edge of the window, and tooltips
can be disabled.

You may want to use your system file dialog. I prefer mine, and it
does indeed have some advantages. However, it cannot delete or rename
files.

On a slow system, you may want to disable the smooth graphics with
anti-aliasing.

Due to limitations in the screen resolution, points can either be drawn 
as exact rectangles with the same size, or exactly at the right spot. 
You can determine your preference here.

You should use UTF-8 encoding all the time, but you can also choose to
use your local encoding for construction files. This affects comments
and descriptions in your files. Use the local setting only, if you
want to edit the construction yourself, and if you do not have a UTF-8
editor.

In the smartboard mode, dragging will behave differently. A smartboard
cannot report mouse movements, so they are replaced by drags. You have
to click once more to complete the construction. This is only
important for previews.

.exportsettings
.related settings print
Settings for Graphics Export

Normally, points and fonts are scaled. But the minimal sizes are 
respected, if you enable this. To get large fonts in small prints,
use the scaling feature in the graphics export.

Bitmaps are normally generated on a white background. You can tell the
program to use your background color.

.reorder
.related circle angle expressionsyntax
Reorder points

It is possible to change the order of the construction manually. There
is a special tool for this, and if you select an object with this
tool, the program will try to move this object as far to the start of
the construction as possible. This may be useful to control the sequence
the objects are drawn.

.tips
.related online browser start move intersection expression reorder
Tips

In this help section, we give some tips to solve common problems.

Invalid Constructions. To test a construction, move one of the basic
points. If the construction does not remain valid, the most common
reason is that you did not choose an intersection properly. Instead,
you have defined a line that goes through the intersection point only
by chance.

Wrong Intersection. If a construction becomes invalid, if the order of
the basic points is changed or if one point is flipped to another
side, you are facing this problem. So, if you want your construction
to be valid for all situations, make sure, you choose all
intersections properly. If the automatic selection of C.a.R. fails,
you can select the intersection by hand. Open its properties and
press "Close to" or "Away from". Then choose a point that should be
nearer to or further away from the intersection point.

.keyboard
.related gui delete zoom mouse iconbar
Using the Keyboard

Most commands in C.a.R. have keyboard shortcuts. Look into the menu to
find the shortcut for each command. Shortcuts defer depending on the
language.

Note, that you need to give your construction the keyboard focus
sometimes. So click on an empty spot with the right mouse button.

Useful shortcuts are the backspace key to delete the last action,
the +/- key to zoom in and out, and the arrow keys to move the
construction. Moreover, F1 will open the context sensitive help.

The ESC key resets the current tool.

Note that the CTRL-key selects modified tools from the iconbar for
some icons. Moreover, the SHIFT- and the CTRL-keys change the
behavior of some tools.

The SPACE-key is used by some Java versions to press buttons. Other
versions use the RETURN key.

.image
.related background
Images

Images can be added to the construction. One can either use two anchor
points or three. In the first case the image is rotated and scaled, in
the second case an affine transformation is used. If you want only two
points, select the first a second point again.

Images must be in the same directory as the construction.
Images can also be used as background images.
