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

This help system provides 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 Info-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. The window
will remember its position and size.

In the upper part of this help window, you see a drop down list with
related topics.

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

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

Ren Grothmann

.online
.related start tips license
Online Help

You find the homepage of C.a.R. via "www.z-u-l.de". You are welcome to
look for new versions there, or to browse through the examples and
demos. If you installed the documentation, you will find a link on
your computer, and C.a.R. may open the documentation with the menu
link. Otherwise, C.a.R. opens the documentaiton on my web page. You
can also configure the browser command in the help menu.

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. There is also
a Wiki for C.a.R., where you can participate at the development of
the program.

Of course, you can reach me by email. You find my email address on my
homepage via the C.a.R. homepage "www.z-u-l.de".

.license
.related online start
License for 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 download 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.
Make sure this part of the documentation is passed along with your
distributed files.

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 if possible, 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. Or it is possible to zoom with the
mouse wheel, and to drag with the right mouse button on some empty
position.

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.

On the left side of the construction display, there may be an optional
list of objects. It can be configurated to display categories of
objects only. Click on the display with the right mouse button to
see further options for this list. A double click on a line with
an object, will edit this object. To edit several objects, select
the objects with the CTRL-key or SHIFT-key as usual.

The objekt list can be sized by clicking on the small gap on the right
of the scrollbar and dragging the mouse left or right, then releasing
it at the intended position of the bar.

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

See: Object List, Mouse, Iconbar, Keyboard

.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 editing 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. Deselected tools can still be used in
the normal mode using the keyboard or the menu.

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

.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 the
construction is loaded.

Choose the restricted icon bar in the options menu. Then you may edit
this icon bar. Remove all unnecessary tools, or all tools that could
confuse the user of your construction.

Disable the restricted icon bar or load a new construction, to get
back to your full icon bar.

Moreover, there is 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 creates construction objects according to the
current active tool. 

Many tools expect that the user chooses more than one object. In this
case, the first point is highlighted in red, while the tool is
waiting for the second point. 


If a line or a segment is needed for your construction step, you can
click anywhere on the object.

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

If the choice of the object 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 
the OK 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 lines,
circles and other line objects if the user clicks on that 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. In this dialog, 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, the
label can be moved to any place in the construction. Otherwise, it is
fixed near the object.

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, when it is loaded.

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. The picture must be published in the applet directory.

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

Open the properties dialog of an object with a right click, or with
the edit tool. Most 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 for more than one object. 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, if the display contains Latex code enclosed in $...$.
The alias may contain expressions in %...% which are evaluated at run
time. Strings of the form %=s% will return the current name of object
"s", and strings of the form %~s% will return the equation of s.

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

The thickness works differently for different objects. The
white thickness makes the object invisible, but not its label. Objects
can be hidden or completely hidden. In the latter case, they can only
be accessed through 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 "=".

Some objects have a filled state, like circles and angles. Moreover,
transparency can be switched on and off for these objects. Normally,
only filled objects are in the background, but other objects can be
set into the background too. Note, that using conditional formatting a
specific order of the objects in the background can be achieved.

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

Also, look at the buttons on the lower side of the properties dialog.
E.g., points have a special button to choose an object to bind to,
fixed angles and circles have a special button to set the size. The
dialog will close and the user has to select the objects or sizes from
the construction.

.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 of
text objects, expression labels or for names of objects. It is useful
to use a specific display name (an alias) like $P_1$ in this case. 

HotEqn cannot display all Latex code, but quite a lot. First of all
the Greek letters are supported (\alpha, \beta, ...), as well as many
specific Latex symbols (\nabla). Also supported is \percent and
\dollar, which is not in the normal LaTeX. Of course subscripts (x_n)
and superscripts (x^2) are supported and fractions (\frac{1}{x} or
\dfrac). 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, like (\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}).

For more information, refer to the HTML documentation.

.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,
neither EPS nor PDF export does not support transparency.

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 selfreference
Points

A point can be generated by various tools. The point tool will
normally generate a free (moveable) point. If the SHIFT key is
pressed, the point can be fixed with an expression in the point
properties dialog.

If an intersection of two circles or similar objects is clicked, the
intersection is created. A confirmation for this autoamtism is turned
off by default. Of course, intersection points are not free, but
depend on the two intersected objects.

Points can be bound to circles and lines and other objects like
tracks, conic sections and functions. To generate such a point, click
on the object with the point tool. A confirmation for this can be
turned on.

Fixed points can still 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.

See: Self Reference, Intersections, Points on Objects

.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.

Bounded points are either created with the point tool by clicking on a
line or a similar object, or by a special tool. Moreover, any point
can be bound to an object later on using its property dialog. Exit the
dialog with the button to bind the point, and then select the object.

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 relative fix can be removed or set in the object
editor. The relative fix is the default.

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

Lines can be lines through two points, parallel or prependicular
lines, or the second ray of a fixed angle. Rays are parts of lines on
one side of the first point through the second point.

The differences between lines and rays is not only restricted to 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. It is possible to change this
behavior.

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

Segments are parts of lines between two points. Note that
intersections are by default valid only, if the intersection lies
between the endpoints.

The length of a segment can 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 as a free point), or fix the segment in its property
dialog.

Segments can be displayed 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 tool. 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.

Circles can be filled. Arcs can be filled in two ways, either as a
chord section of a circle, or as a pie.

Circles can be restricted to their necessary parts. These partial
circles are only drawn in little arcs through all points related to
them.

See: Fixed Circles

.fixedcircle
.related circle 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 tool
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.

The size of fixed circles can be dragged with the mouse, if the fixed
state is released in their properties dialog.

.intersection
.related point properties segment selectintersection
Intersections

Intersections can either be created by the point tool, clicking on an
intersection point, or with a special intersection tool. The
intersection tool is hidden by default, since the point tool can be
used instead in most cases.

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

It is possible to create intersection between quadrics, tracks, and
conic sections too. Note, that these intersections may need some time
to compute. Creating too many intersections of the complicated kind
will slow down your construction.

See: Selecting Intersections

.selectintersection
.related intersection point
Selecting Intersections

Note that circles intersect in two points. The program creates both
intersections at once, 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 field to specify the other point,
or a button to select 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.

Selections with circles can be set to switch automatically whenever
they become invalid. As with automatic tracks, the construction
will then run through all states.

.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 moves points (an alternative to the right mouse button). It
can also drag fixed circles and angles, unless these objects are
fixed for dragging. To unfix those objects, 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.

It is possible to move several points at once. To do this, hold down
the SHIFT key while selecting the points, and release it for the last
point.

When the SHIFT key is hold during the movement, the movement will be
restricted, to the point where an intersection becomes invalid. For
applets, this behaviour can be made the default by the
"restrictedmove" applet parameter.

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

.tracker
.related point animate background mouse objecttracker
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 with the
tracked lines as tangent lines (a polar set).

First one or more point or line to be tracked have to be selected.
Then some point, slider or other moveable object can be dragged with
the left button down to cause the selected object to move and create
the track. To select more than one obejct to be tracked, hold down the
SHIFT key when selecting tracked objects till the last one. 

The color of the track will be the same as of the tracked objects, and
the track will remain visible until another construction tool is
selected, or the track tool is reset with ESC.

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

To turn a track into a permanent construction object, you have to 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 the manual tracking tool) by
animating the movement of a single point along a line or circle, at a
speed which can be controlled by the user. First select one or more
points or lines to be tracked. Hold down the shift key, if more than
one object should to be tracked. Then select a point on a line or on a
circle, a slider or an expression, or a line or circe. In the latter
case, you need to select the point to moved on this line or circle
too. The point will be moved, or the slider or expression be
changed, creating the tracks of the selected objects.

Should the first tracked object become invalid due to an invalid
intersection, the movement is automatically reversed. In case the
first track point becomes invalid because two circles no longer
intersect, the other intersection point will be chosen when the moving
point reverses its movement. Thus the construction runs through all
possible states.

The animation speed can be reduced or increased with the <SHIFT> and
the left or right arrow key. Repeated left mouse button clicks cycle
the animation through 3 modes: animation and track, animation and
hidden track, track with no animation. In the last mode the moving
point can be dragged with the left mouse button. Other points can be
dragged with the right mouse button 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 as active tool, it will
become active when the file is loaded.   

To stop the animation and clear the tracks, select any tool.

Permanent Tracks

To make the first track a permanent construction object, press <SHIFT
+ ENTER>, or select the automatic track tool with the control key. A
new object will be created using the currently selected color and
weight properties. The track can be edited in the same way as any
other object. It is possible to create intersections between the track
and other objects, and to put points on the track.

Tracks saved this way are calculated at every change in the figure,
which may slow down the program on older computers. It is therefore
wise to limit the number of tracks, and to restrict their lengths to
reduce the calculation load. Moreover, it is possible to turn the
calculation 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, moving 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 last point
with a double click.

To stop the animation, click on the construction. To reverse the
animation SHIFT click. SHIFT and +/- changes the speed of the
animation.

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. It is probably better to use an
alias for angles to achieve this.

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 of the angle.

As with other objects, the invisible thickness shows the label, but
not the angle.

See: Fixed Angles

.fixedangle
.related circle reorder expressionsyntax properties angle
Fixed angles

Fixed angles have no third point, but a fixed size. This type of angle
behaves more like a ray than like an angle. It is possible to
intersect with the ray or place points on it.

Fixed angles is generated by holding down the SHIFT key, while
clicking for the third point, or with the special tool for fixed
angles. 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. You can also use an expression to size 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
(which is the 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

This tool generates a filled polygon given the corners. Enter the
corners of the area. Double click the last point. The sides are
hidden, when the polygon has thin thickness in the properties dialog.

The value of the filled polygon is its area. The sign of the value
depends on the orientation of the corners.

.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 have to enter a valid expression
into the dialog. Expressions may have an explaining text, and may or
may not display their computed value. They are moved like any other
object with the right mouse button.

Hidden expressions are useful to compute values, and use these values
later in the construction.

The value of an expression can be set with a slider. The user will
then be able to set the expression by moving the dot to the right or
left. A slider has a minimal and a maximal value it can reach.

It is possible to use LaTeX code in th explaining text of
an expression. Enclose the code in $ signs for this.

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 "circa 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
 Returns the dimensions and center coordinates of the current screen.
 
simulate
 simulate(e,x,f)
 Sets the expression e to to the value x, recomputes the construction with
this new value and returns the value of f. Only one simulation can be
computed at any time, so simulations can not be nested. An expression,
a fixed angle or a fixed circle can be used for e.

.text
.related replay comment properties latex
Text

This displays a multiline text in the construction. The text can be
changed using an internal editor. This editor contains a button for
the normal dialog for object properties. 

To create a bold or large line, or both, precede the line with *, **,
or ***. To use Latex commands, enclose the line or parts of it in
$...$ signs. Moreover, expressions can be used enclosed in %..%.
These expressions will be evaluated, and the text will display the
result. Strings of the form %=s% will return the current name of
object "s", and strings of the form %~s% will return the equation of
s.

Hidden texts appear in replay mode. 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. Simply 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.

It is possible to place points on conic sections, and to intersect
conic sections with other objects.

.hide
.related construction properties mouse
Hiding Objects

This will hide objects, or make hidden objects visible. 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 at 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.

With a menu item it is possible to hide all duplicate objects. Only
the most recent objects will be visible. Press the CTRL key while
selecting the hide tool, or use the menu item.

.rename
.related properties
Rename alphabetically

This tool renames 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.

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.

By the way, if you need the letter "a" for two different objects, use
"a~1" and "a~2". Names show only up to "~". Alternatively, use an
alias.

.delete undo back
.related construction
Deleting Objects

This 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 restores all recently deleted objects.

.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. The default
is "x".

For a 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 other 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

These default settings are available in the menu and as tool bar
icons.

.edit
.related mouse properties
Edit Objects

This tool 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, an editor for the conditional formats of objects opens.
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 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

This tool toggles the display of the coordinate system. A menu switch
determines, if a full grid is shown, or only the coordinate axis.

If the grid is on, new points and points moved by the right mouse
button snap to grid points. However, it is possible to snap with the
move tool and the left mouse button instead, changing an advanced
setting. This may be useful for constructions on Web pages with
grids.

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

.replay
.related htmlexport text animatebreak
Walk through constructions

This tool opens a small dialog with navigation buttons containing
buttons for forward, back, fast forward, fast rewind etc. Additionally,
breakpoints can be set with this tool. There is a button to jump to
the next breakpoint. Moreover, breakpoints are important for HTML
export in replay style.

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

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

During the replay, hidden texts will be visible.

.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
Paint with the Mouse

This tool paints sketches above the currenct construction with the
mouse in the current color. To erase the sketch, press escape or use
the menu entry. The sketch will be saved with the construction.

.zoom
.related mouse grid
Zoom with the mouse

With this tool it is poosible to zoom in and out by dragging in the
outer region of the construction, and to move the construction by
dragging the inner region of the construction.

Note that it is possible to zoom the construction at any time with a
mouse wheel, and to move the construction with the right mouse button,
dragging some empty spot.

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

The current viewing window is saved in the construction file, and the
same view will be used when the construction is loaded.

.parameter
.related runmacro parametertypes target macro
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. Show the macro, which part of
your construction it should learn. This part is called the "pattern
construction". 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 of macro creation, the macro needs to learn your
starting points. In the next step, you press the macro tool once more
and define the targets. In the final step, the macro dialog appears
and the macro definition is finished.

Continue with: Targets

.target
.related parameter runmacro parametertypes macro
Targets

After the macro parameters have been selected, another click on the
macro tool starts the selection of the targets. Here, only those
objects are visible that are constructible from the parameters. E.g.,
the middle perpendicular of two points is visible, if the two points
have been selected as parameters. All intermediate construction steps
are visible too unless they are hidden.

Select the targets now. In the example mentoned above, select the
middle perpendicular line.

At least one target object should always be defined. Otherwise, all
visible objects will be constructed by the macro. Moreover, targets
will get the default color and styles when the macro is used. 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 in the hidden state. However, there
is an option to hide all objects that 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 click on the macro tool finished the definition of the macro
using a dialog. 

Continue with: Macro Definition

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

After all parameters and targets have been selected, another click on
the macro tool defines the macro using a dialog. 

Here, the name of the macro and a comment can be set. It is possible
to definie 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. 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. This behaviour can be changed 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.

See also: Hint Parameters, Self reference

.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
when the macro is used, 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))".

.selectmacro
.related runmacro macro
The Macro Selection Dialog

The macro selection dialog contains a list of all macros. Macros may
be organized in submenus. To switch to a submenu, double click on
it. To revert to the parent directory, double click on "..". To put
the macro into a subdirectory, rename it like "subdir/macroname".
Default macros are displayed in red.

If the dialog allows multiple selections, subdirectories can be selected.
In this case, all macros in all subdirectories of this subdirectory will
be selected at once.

.runmacro
.related parameter parametertypes mouse expressionsyntax fixparameters selectmacro
Running a Macro

If the SHIFT key is pressed when the macro run tool is selected,
the previously used macro will be selected automatically. If not,
and there is more than one macro, the macro selection dialog will
open. After the user has chosen a macro, the program will prompt for 
each parameter, and the expected object type and the prompt will be
displayed in the status line.

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

If "Space selects ..." appears in the status line, this parameter
object can be selected by pressing the space bar. This feature is
useful, if the macro is used several times.

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

If the full preview is turned on, the result of the macro operation
can be seen before the last parameter point is selected.

See: Macro Selection Dialog, Macro Definition

.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. Note, that there is a a default macro file in
the program archive, which is used, if the program does not find
another file.

The 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". the
language shortcut can be found in the "about" dialog.

.macroerror
.related macro
Warning: "Object is used, but not in Macro"

This warning occurs if an object in the macro refers to an object not
contained in the macro. Usually, the reason is a @... reference in
an expression, maybe in the conditional formatting of objects. Those
references do not make objects depend on the referred object, and thus
the objects are still constructable. However, they might not work as
expected, or might even refer to wrong objects when used.

Another type of references are the bounds of circular arcs. Since those
bounds depend on the circle most of the time, the circle arc cannot depend
on the bounds to avoid circular dependencies. If you ignore the
warning, the arc will be determined by objects with the same name.

A third reason may be an intersection with circles. To choose the
intersection, the intersection may be kept different from a given point.
This might happen automatically, if the other intersection already
exists. If you ignore the warning, this intersection will be kept away
from a point with the same name, or will become an unrestricted
intersection.

To avoid the warning, add the missing object to the parameters, so that
it is included in the macro.

.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. I will also include your
translation into the current distribution.

The help file should be in your local encoding.

.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,
"=A" is used as the prompt of the parameter. The parameter
will then be fixed to the object with name "A".

.parametertypes
.related parameter
Types of Parameters

Macro should use points as parameters simply. This makes dependencies
easier to understand and avoids many problems. But other types of
parameters 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 might be 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, or if they have only one
defining point. The user can then choose any line as a parameter. If
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. These HTML
pages contain an applet that displays the construction. In the dialog
for HTML export the appearance of the page and the applet can be set.

To set up a HTML page, a construction file has to bes created, and,
for assignments with solution pages, another one for the solution.
One needs 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.

See also: HTML Export dialg.

.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 is continained in
the template file, including applet size, applet and page colors,
style sheets and archive position.

The documentation of C.a.R. contains some templates to start with.
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 can
base your template on the template files that come with the
documentation.

The following placeholders are recognized in template files.

#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>

See also: Export Dialog

.exportdialog
.related htmlexport jobexport
Export Dialog

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 same 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 new 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

Descriptive constructions can be loaded from a file. Alternatively
edit the description and then load the construction. 

The syntax is line oriented and uses the commands described above.
Line comments //... may be used. The files may contain macros in the
following format.

 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 the command constructing the target constructs two objects, the
target can 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, and the solution itself might be different
than the give one. The user will receive a message, as soon as he has
completed the construction. The target objects will be displayed in a
light color, unless they are hidden before the construction is saved.

Assignments are generated by choosing the last object to be displayed
to the user. Furthermore, there must be target objects. Targets are
not checked for the solution, if they are generated 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

Every construction can have a comment. The comment will be displayed
to the user when he loads the construction. Moreover, 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, explaining their usage and
purpose.

.fonts
.related zoom save
Fonts

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

C.a.R. uses fonts in two sizes and strokes. 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. Bold fonts are recommended for small screen sizes
and high resolutions.

Note, that fonts for graphics export can be scaled to an exact size.
The screen preview for the graphics export scales the fonts
to get the same visual appearance of the construction.

.sizes
Sizes

In this dialog, you can set the minimal line, point and font sizes.
To keep the same impression on all screen sizes, these items are
scaled. But you can set the minimal sizes here.

Moreover, you can set the arrow size, and the selection size for cursor
selection of objects.

Note that for graphics exports, you may set the these values exactly, independent
of the size of the output.

These sizes can be exported to applets.

.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, 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 by default.

Files can be compressed by adding "z" to their extension. There is no
need to do this, unless you want to minimize download time, when
the file comes from 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 to it in the
special settings.

The file dialog of C.a.R. uses histories for files, directories and
filters. The directory and file 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.

Navigate in the directories with 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.

It is possible to enter several file patterns separated by spaces.
File patterns can contain one or more place holders, "?" for single
letters and "*" for strings.

With a button a new directory can be created. Enter the name of the
directory into the directory field. Files or directories cannot 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, the home button brings you into your home directory. It is
possible to change the home directory by pressing the home button with
SHIFT-CTRL. The current directory will become the new home directory
for C.a.R. Another 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 scaling, so that units of 1 are 1 cm exactly. Make
sure, the construction window fits on the paper for this option.

Moreover, you can export in various graphics and vector formats. For
word processors, I recommend using PNG, properly scaled for the exact
output width.

For PNG output, a dialog will open, where the output size is set.
Alternatively, use a factor relative to the screen size. It is also
possible to determine the size using the graphics width and height in
cm and the resolution. There is a drop down selection box for various
formats. If "1:1 scaled" is used, a scaled version (1 unit = 1 cm)
with a 300 dpi resolution is used. Make sure, the output fits on your
paper.

Since lines, fonts and points may become too small in small pictures,
it is possible to scale these sizes in cm. Use the preview to see
the effect on the screen.

For use with the typesetting program LaTeX, C.a.R. can generate two
accompanying files, the bounding box file, and a file to draw the
image. The latter has the same name as the PNG file, but an extension
"ztx" (zirkel tex). It is possible to let LaTeX do the drawing of the
strings and equations in the construction. In the dialog, select the
type of strings that should be done by LaTeX. The graphics export will
generate the necessary LaTeX commands. This type of LaTeX export will
work with pdflatex and latex. In the LaTeX source, it is necessary to
import the "graphicx" package, and to load the image file with an input
command, like in

 \begin{figure}
 \centering
 \input{image.ztx}
 \end{figure}

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

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

.construction
.related hide reorder
List of objects

C.a.R can display a list of objects in your construction with the
corresponding menu entry. This list can be used to edit invisible
objects. In fact, 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.

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 in the order the objects were constructed,
or in 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, which is defined later.

.colors
.related htmlexport
Set colors

Set the various colors of C.a.R. to your liking. Colors will not be
saved with your construction, but 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, there is a switch for the display of object labels while
the object is moved. This option may be disturbing, but it is quite
useful in some cases. C.a.R. can restrict that to fixed objects only.

Then, there are switchs for some questions the program asks before
critical actions.

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

It is also possible to turn off the construction preview, or restrict
it to points. By default, most tools show a preview of the result
before the last parameter point is selected. In the beginner mode, only
points are shown in preview, since other objects tend to mislead the
users.

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

Some users want to use the system file dialog. I prefer mine, and it
does indeed have some advantages. However, it cannot delete or rename
files. It can create directories, however.

One should use UTF-8 encoding all the time, but C.a.R can also choose
to use the local encoding for construction files. This affects
comments and descriptions in the 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 the preview of construction steps.

By default, the program writes backups of the files before
overwriting. If you find you do not need these, disable the backup
feature.

The user can choose to call the macro popup dialog with a single
or a double click of the right mouse button.

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

Due to obvious limitations in the screen resolution, points can either
be drawn as exact rectangles, or exactly at the right spot, but not
always as exact squares. One can determine the prefered method here.

.exportsettings
.related settings print
Settings for Graphics Export

Normally, points and fonts are scaled. But the minimal sizes are 
respected, if this is enabled, since fonts would become to small
otherwise. 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.

However, reordering is obsolete now. C.a.R. reorders the cosntruction
chain itself, if objects refer to later objects. Moreover, it is
possible to control the sequence of drawing using conditional
formatting.

.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 may have defined a line that goes through the intersection point
only by chance.

Wrong Intersection. If a construction becomes invalid, whenever the
order of the basic points is changed or if one point is flipped to
another side, you are facing the problem to choose the right
intersection point. 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. You can also set intersection close
to itself. In this case, the intersection will behave continously.

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

Most commands in C.a.R. have keyboard shortcuts. Have a look into the
menu to find the shortcut for each command. Shortcuts depend on the
language.

Note, that you need to give your construction the keyboard focus if
it looses the focus. 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 important ESC key resets the current tool.

Note that the CTRL-key  and the SHIFT-key change the behavior of some
tools.

The SPACE-key is used by Java and Windows versions to press buttons.
Some systems use the RETURN key instead.

.image
.related background
Images

Images can be added to the construction as objects. Images use either
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, double click the second point.

These images must be in the same directory as the construction.

See also: Background Images

.language
Set Language

By default, C.a.R. starts with the language of the system it is running
on. It can be told to start in any other of the implemented languages.
Use the following shortcuts for the current languages

 English - en
 German - de
 French - fr
 Netherlands - nl
 Italian - it
 Spanish - es
 Portuguese - pt
 Brazilian - br
 Slovenian - sl
 Danish - da
 Norway - no
 Poland - pl
 Russian - ru
 Korean - co

Either use the menu item to set the language or set the command line parameter
like "-l de" for the German language.

.selfreference
.related macro point
Self Reference

E.g., it is possible to define a point which always snaps to integer
parameters. To do this, fix the coordinates using the floor(...)
function. Such a fixed point will still be moveable by the user. The
rule is that a point referring to itself only (@-references do not
count) is moveable. In this case, the rest of the construction moves
first, then the point.

Such moveable fixed points can also be created by macros. The point
must be a macro parameter, and this parameter must be selected with
the shift key, when the macro is created. When the macro runs, the
points chosen for the parameter gets the coordinate fixes.
