.index
.related start license online gui
Z.u.L. Dokumentation

Die __Dokumentation__ von Z.u.L., die Sie hier lesen, kann im Programm
kontextsensitiv aufgerufen werden und stellt dann Hilfe zum gerade
verwendeten Werkzeug zur Verfgung. 

Sie finden auf diesen Webseiten auch ein Verzeichnis von Stichwrtern,
sowie eine Liste der verfgbaren Hilfeseiten. Nutzen Sie auch die
__Suchfunktion__, die sowohl im Programm, als auch auf den Webseiten
zur Verfgung steht!

Um das Programm kennen zu lernen, sehen Sie sich die Anwendungen, die
Demos, die Tutorien oder die Flash-Einfhrung an. Es gibt auerdem
eine Diskussionsgruppe auf Yahoo, sowie ein Wiki. Es gibt sogar ein
mehrsprachiges Magazin CarZine ber das Programm. Eine Suche im
Internet wird sicher weitere Informationsquellen und
Anwendungsbeispiele finden. Der Englische Name des Programms ist
brigens C.a.R.

Viel Erfolg mit Z.u.L. wnscht Ihnen der Autor

Ren Grothmann

.start
.related online license gui
Kontextsensitive Hilfe

//image images/Hilfe.jpg

Das __Hilfe__system von Z.u.L. arbeitet __kontextsensitiv__. D.h. es
stellt immer gerade die __Hilfeseite__ ein, die zum aktuellen
__Werkzeug__ gehrt. Man kann das Fenster offen lassen und zum
Beispiel neben das Konstruktionsfenster verschieben. Es bleibt immer
im Vordergrund.

Am oberen Rand des __Hilfefenster__s befindet eine Auswahlliste, mit
der man zu verwandten Themen springen kann. Mit den Knopf unten kann
man in der Hilfedatei suchen. Die Suchergebnisse werden in der Liste
am oberen Rand des Dialogs angezeigt.

Nach einem Sprung zu einem anderen Thema kann man mit dem Zurck-Knopf
wieder auf die vorige Seite gelangen.

.online
.related start online
Hilfe im Browser

//image images/Browser.jpg

Die __Homepage__ von Z.u.L.ist "http://www.z-u-l.de". Dort finden sich
Hinweise auf neue __Versionen__, Links auf Downloads, Demos, Tutorien
und viele andere Informationen. Es gibt berdies eine
__DiskussionsgruppeaufYahoo__. Ein Link befindet sich auf der
Homepage von Z.u.L. Es gibt auch ein __Wiki__, zu dem ich alle
Benutzer herzlich einlade. 

Natrlich bin ich per __EMail__ zu erreichen. Meine EMail-Adresse
finden Sie auf meiner Homepage "http://www.rene.grothmann.de".

.license
.related online start
Lizenz von Z.u.L.

Z.u.L. ist __freieSoftware__ unter der GPL (Gnu General Public
License). Man kann das Programm beliebig nutzen. Wenn das Programm
verbreitet wird, so muss mindestens sein Link auf die Homepage von
Z.u.L. weitergegeben werden.

Der __Quelltext__ ist ebenfalls erhltlich. Alle genderten Quelltexte
mssen offen erhltlich bleiben. Auerdem muss stets
zumindest ein Link auf die Originalquellen mitgegeben werden. Teile
der Source drfen in anderen Programmen verwendet werden, wenn diese
unter derselben Lizenz stehen.

Die gleiche __Lizenz__ gilt auch fr die Dokumentation.

Selbstverstndlich darf mit Z.u.L. auch Geld verdient werden, etwa in
Form von Handbchern, Tutorien, Kursen und hnlichen Materialien.

.gui
.related iconbar macrobar mouse zoom online keyboard
Programmoberflche

//image images/Gui.jpg

Die groe __Fensterflche__ zeigt natrlich die Konstruktion. Der
gezeigte Ausschnitt kann mit den __Pfeiltasten__ verschoben werden und
mit der __+/-__-Taste vergrert bzw. verkleinert werden. Es gibt
auerdem ein __Zoom-Werkzeug__, das den Ausschnitt mit der Maus
verndert. Das __Mausrad__ kann ebenfalls zum Vergrern und
Verkleinern verwendet werden. Die __rechteMaustaste__ verschiebt
die Konstruktion.

Oberhalb der Konstruktion befindet sich die __Werkzeugleiste__. Die
Icons zeigen so genannte __Tooltips__, wenn die Maus eine Weile ber
ihnen stehen bleibt. Dadurch kann man sich die Funktion der Icons in
Erinnerung rufen. Die untere Zeile enthlt die Icons, die
Konstruktionsschritte erzeugen oder modifizieren, und die obere Zeile
enthlt hauptschlich Icons, die Konstruktionsoptionen und
Default-Einstellungen ndern.

Eventuell wird in der Werkzeugleiste eine dritte Zeile angezeigt, die
die zur Verfgung stehenden Makros enthlt (siehe:
__Makrozeile__).

Unter der Konstruktion befindet sich die __Statuszeile__, die fr
Textausgaben benutzt wird. Dort wird der nchste erwartete Schritt
angezeigt. Die Leiste wird durch eine Eingabezeile ersetzt wenn mit
Konstruktionsbeschreibungen konstruiert wird
(__nicht-visuellerModus__).

Links neben der Konstruktion kann die __Objektliste__ eingeblendet
werden. Die Art der Objekte, die angezeigt werden sollen, kann aus
einem Men ausgewhlt werden. Mit der linken Maustaste werden Objekte
ausgewhlt, mit der __Strg-Taste__ und der __Umschalt-Taste__ knnen
mehrere Objekte ausgewhlt werden. Mit einem __Doppelklick__ werden
die ausgewhlten Objekte ediert. Weitere Optionen fr diese Liste
stehen ber einen Klick mit der rechten Maustaste zur Verfgung.

Die Objektliste kann in der Breite verndert werden. Klicken Sie dazu
auf den schmalen Rand rechts, und ziehen Sie die Maus nach rechts oder
links.

Z.u.L. hat auch ein wohlbekanntes __Men__, in dem sich die Werkzeuge
nochmals finden. Auerdem finden sich dort weitere Optionen, wie etwa
das Speichern und Laden von Dateien. Im Men findet man auch die
__Tastenkombinationen__, die die Werkzeuge auswhlen.

.iconbar
.related restricted gui settings
Werkzeugleiste

//image images/Iconbar.jpg

Es gibt verschiedene __TypenvonWerkzeugen__.

Werkzeuge, die Mausaktionen erwarten: Beispiele sind das
Punktwerkzeug, die Auswahl von Makroparametern oder auch das
Zoom-Werkzeug.

Werkzeuge, die Einstellungen fr neue Objekte ndern: Beispiele sind
die Farbe oder der Punkttyp.

Werkzeuge, die die Darstellung ndern: Beispiele sind der Schalter fr
das Gitter oder die Darstellung versteckter Objekte.

Werkzeuge, die eine Aktion auslsen: Beispiele sind das Lschen des
letzten Objektes oder das Setzen des Kommentars.

Fr die __KonfigurationderWerkzeugleiste__ steht ein Menpunkt
zur Verfgung. Im angezeigten Dialog knnen alle Werkzeuge an- und
abgewhlt werden. Die abgewhlten Werkzeuge knnen im normalen Modus
trotzdem ber die Tastatur und ber das Men aufgerufen werden.

Die __Werkzeugleiste__ kann so eingestellt werden, dass sie unter der
Konstruktion erscheint.

Die Leiste kann ein- oder zweizeilig sein. Falls die Leiste einzeilig
eingestellt wird, so werden nur die ntigsten Werkzeuge eingeblendet,
aber nur dann, wenn sie im Einstellungsdialog angewhlt sind.

Die Werkzeuge zeigen eine kurze Information (__Tooltips__), wenn die
Maus ber Ihnen verweilt. Wird dabei die __Strg-Taste__ gedrckt, so
erscheint bei den Werkzeugen, die mit Strg-Taste anders funktionieren,
eine andere Information.

.restricted beginner
.related iconbar
Eingeschrnkte Werkzeugleiste

Es gibt zwei Einstellungen fr die Werkzeugleiste, eingeschrnkt und
nicht eingeschrnkt. Wenn auf die __eingeschrnkteWerkzeugleiste__
gewechselt wird, wird diese Leiste mit der Konstruktion abgespeichert
und beim Laden dem Anwender prsentiert. Man sollte diese Leiste also
so konfigurieren, dass sie diejenigen Werkzeuge enthlt, die man zur
Verfgung stellen will.

Es gibt einen __Anfngermodus__, der eine spezielle Werkzeugleiste
whlt, die viele Werkzeuge nicht enthlt. Auerdem wird die Vorschau
auf Punkte eingeschrnkt, damit der Anfnger nicht in die Irre gefhrt
wird.

Nicht zu verwechseln ist das mit dem __Schulmodus__, bei dem die
Konfigurationsmglichkeiten entfernt wurden.

.mouse
.related gui settings hide point circle move keyboard edit
Verwendung der Maus

Die __linkeMaustaste__ wird dazu benutzt, Objekte im
Konstruktionsfenster auszuwhlen. Die ausgewhlten Objekte werden rot
angezeigt, bis die Konstruktion komplett ist. Geraden und Kreise
werden ausgewhlt, indem man irgendwo auf die gezeichnete Linie
klickt. Aus__gefllt__e Objekte knnen irgendwo auf ihrer Flche
angeklickt werden, wenn dort kein anderes Objekt im Wege ist.

Wenn die entsprechende Funktion nicht abgeschaltet ist, werden
Objekte, die fr den nchsten Konstruktionsschritt verwendet werden
knn, hervorgehoben, wenn die Maus ber die Konstruktion fhrt. Dies
erleichtert die Auswahl erheblich. Punkte, die dabei auf Objekten oder
als __Schnittpunkte__ erzeugt wrden, werden ebenfalls angezeigt.

Falls die __Objektauswahl__ nicht eindeutig ist, so erscheint eine
Liste von mglichen Objekten. Aus dieser Liste kann ein Objekt durch
Doppelklick, oder durch Einfachklick und nachfolgenden Knopfdruck,
ausgewhlt werden. In der Liste erscheinen Punkte schwarz, Geraden
rot, Kreise blau und Winkel und andere Objekte grn.

Die __rechteMaustaste__ dient zum __Bewegen__ von Punkten, von
Labels und zum Einstellen von Objekt-Eigenschaften. Ein verschiebbares
Objekt kann alternativ bewegt werden, indem die __rechte Maustaste__
verwendet wird. Wird er mit der rechten Maustaste angeklickt, ohne
dass er verschoben wurde, so erscheint der Dialog zum Einstellen der
__Objekteigenschaften__.

Die __Objektnamen__ knnen ebenfalls mit der rechten Maustaste
verschoben werden. Wenn ein __Label__ mit der rechten Maustaste
angeklickt wird, aber nicht verschoben wird, so springt es an den
Punkt zurck, an dem es normalerweise liegen wrde. Wenn die
__Umschalt-Taste__ gedrckt ist, kann der Name irgendwohin verschoben
werden. Sonst bleibt er in der Nhe des Objektes.

Wird die Strg-Taste und die Umschalttaste mit der rechten Maustaste 
verwendet, so wird das angeklickte Objekt versteckt. Ist das Werkzeug 
zum __Verstecken__ aktiv, so versteckt die Umschalttaste und die
Strg-Taste das Objekt vollstndig.

Ein Klick mit der Strg-Taste und der rechten Maustaste auf ein Objekt
zeigt den Dialog fr die __bedingteFormatierung__ eines Objekts an.

Die Strg-Taste bewirkt bei manchen Werkzeugen in der Werkzeugleiste
auch eine nderung des Verhaltens des Werkzeugs.

Die __rechteMaustaste__ kann auch verwendet werden, um den
Tastaturfokus auf das Konstruktionsfenster zu legen, falls dies nicht
der Fall sein sollte. Dazu klickt man mit der rechten Maustaste auf
eine leere Stelle in der Konstruktion und dann eventuell auf die
oberste Zeile der __Makroliste__, die mglicherweise in diesem Fall
erscheint.

.background
.related gui move htmlexport
Hintergrundbilder

//image images/Gaertner.jpg

Eine Option ist die Darstellung eines Bildes als Hintergrund. Ein
__Hintergrundbild__ wird entweder aus der aktuellen Konstruktion
erzeugt, oder es wird von einer Datei geladen. In diesem Fall kann das
Hintergrundbild gekachelt, zentriert oder gestreckt dargestellt
werden. Gekachelte Hintergrundbilder dienen als Verzierung, um etwa
Papierstrukturen nachzuahmen. Sie werden beim Anlegen neuer
Konstruktionen nicht gelscht und auch nicht mit der Konstruktion
abgespeichert.

Man kann auch __BilderaufApplets__ als Hintergrund verwenden, um
auf Ihnen Konstruktionen oder Animationen darzustellen. In diesem Fall
verwendet auch der __HTML-Export__ das Bild als Hintergrund, und die
Gre des Applets wird gleich der Bildgre gewhlt. Das Bild muss in
das Verzeichnis, in dem sich "zirkel.jar" befindet, publiziert
werden.

.properties
.related edit conditions colors hide mouse transparent point fixedangle animatebreak expressionsyntax latex replay
Objekteigenschaften

//image images/Punkt.jpg

Der Dialog zur Einstellung von __Objekteigenschaften__ ffnet sich
nach einem Klick mit der rechten Maustaste auf das Objekt.

Alle Objekte haben folgende Eigenschaften.

 - __Name__
 - __Alias__
 - __Beschreibung__
 - __Einheit__
 - __Farbe__
 - __Dicke__
 - Versteckt oder nicht versteckt
 - Namensanzeige
 - Wertanzeige
 - Groer Font oder fetter Font
 - __Hintergrund__ oder Vordergrund
 - __Transparenz__
 - __Haltepunkt__
 
Zum Namen ist zu sagen, dass nur die Zeichen vor einer "~" in der
Konstruktion angezeigt werden, was doppelte Namensanzeigen ermglicht.
Auerdem knnen die __griechischenBuchstaben__ als \a, \A etc. im
Namen verwendet werden. Der Name darf fast beliebige Zeichen
enthalten. Man kann beliebige Unicodezeichen mit \0XXXX kodieren,
wobei XXXX eine hexadezimale Zahl ist. Fr diese Sonderformatierungen,
sowie fr Indizes, ist es aber besser, eine Alias zu verwenden.

Der im Display dargestellte Namen (__Alias__) muss nicht der interne
Namen sein. Dies ist vor allem ntzlich, wenn der angezeigt Name
Latexcode enthlt. In diesem Fall kann man LaTeX-Ausdrcke verwenden
oder auch Ausdrcke, die durch %...% eingeschlossen sind und zur
Darstellung ausgewertet werden. Ausdrcke der Form %=s% ergeben den
aktuellen Namen von s, und Ausdrcke der Form %#s% geben die Gleichung
von s. %+...% erzwingt das __Vorzeichen__.

Die Beschreibung wird normalerweise automatisch erzeugt. Sie kann aber
gendert werden. Wir sie vom Benutzer gendert, so bleibt sie fest,
bis der Benutzer eine leere Beschreibungszeile eingibt.

Einige Objekte haben eine Gre und ein Feld fr eine __Einheit__. Die
Einheit wird hinter der Gre ausgegeben und kann aus irgendeinem Text
bestehen. Fr Winkel verwendet man das __Gradsymbol__ . Namens- und
Wertanzeige kann kombiniert werden, was z.B. zur Anzeige "s=3" fhrt.
Falls der Name mit "_" endet, wird dieses "_" entfernt und das "="
entfllt.

Die __Farbe__ und __Dicke__ eines Objekts betreffen die Darstellung.
Die Dicke wirkt allerdings verschieden je nach Objekt. Man probiert
die Wirkung am besten aus. Die wei dargestellte Dicke bedeutet, dass
das Objekt nicht gezeichnet wird. 

Die Farbe kann eine der vorgegebenen 6 Farben sein, oder eine
__benutzerdefinierteFarbe__. Fr eine einheitliche Darstellung sollte
einer der vorgegebenen Farben gewhlt werden. Das Werkzeug zum Whlen
einer benutzerdefinierten Default-Farbe muss erst in der
Werkzeugleiste aktiviert werden.

Es kann auch eingestellt werden, dass das Objekt mit der
__Hintergrundfarbe__ gefllt werden soll. Solche Objekte werden immer
zuletzt gezeichnet, so dass sie alle anderen Objekte berdecken.
Punkte bekommen diesen Status per Default. Andere Objekte nur, wenn
sie gefllt sind.

Objekte knnen versteckt oder auch __vollstndigversteckt__ werden.
In diesem Fall erreicht man den Einstellungsdialog nur noch ber die
__Objektliste__. Objekte knnen im __Hintergrund__ sein oder nicht.
Gefllte Objekte werden normalerweise in den Hintergrund geschoben.
Die __Transparenz__ eines Objekts kann an- und abgeschaltet werden.

Ein __Haltepunkt__ ist fr den Wiedergabemodus wichtig und fr die
__AnimationvonHaltepunkte__n. Versteckende Haltepunkte werden mit
der Umschalttaste gesetzt.

Der __StilvonPunkten__ bestimmt die Darstellung als Kreis oder
Quadrat etc. Strecken knnen als __Vektoren__ dargestellt werden.
Dabei ist die Richtung der Strecke zu beachten.

Man beachte auch die Knpfe auf der unteren Leiste des Objektdialogs.
Punkte haben dort z.B. einen Schalter, mit dem sie sich an ein Objekt
binden lassen. Feste Kreise und Winkel haben einen Schalter, mit dem
sich Objekte zur Grenfestlegung auswhlen lassen.

Manche Objekte haben eine Einstellung fr __automatischeSchnitte__. Das
bedeutet, dass Schnitte mit dem Objekt und Punkte auf dem Objekt automatisch mit
dem Punktwerkzeug erzeugt werden knnen, oder mit jedem anderen Werkzeug, wenn
ein Punkt verlangt wird. Fr Polygone ist das nicht immer gewnscht, da der
Benutzer sonst verleitet wird, mit dem Polygon anstatt mit einer Seitenstrecke
zu schneiden. Schnitte mit Polygonen sind aber instabil. Sie knnen die
Seitenstrecke wechseln.

-> Siehe: Bedingte Formatierung

.point
.related boundedpoint intersection settings mouse properties selfreference
Punkte

//image- images/point.png
__Punkte__ knnen in Z.u.L. auf verschiedene Weisen entstehen. Mit
dem Punkt-Werkzeug erzeugt man meist verschiebbare, freie Punkte, die
__Basisobjekte__ der Konstruktion sind (__freier Punkt__). Der Punkt
wird einfach durch Klicken auf die Konstruktion erzeugt. 

Trifft man dabei __Schnittpunkte__ von zwei Kreisen oder Geraden,
so wird dieser Schnittpunkt erzeugt. Trifft man eine Gerade, eine
Strecke, einen Strahl oder einen Kreis, so wird ein Punkt erzeugt, der
an dieses Objekt gebunden ist (__gebundenerPunkt__). In beiden Fllen
erscheinen mglicherweise Rckfragen, die sich aber abstellen lassen.
In der Vorschau ist erkennbar, welche Art von Punkt erzeugt wird.

Verschiebbare Punkte knnen am aktuellen Ort fixiert werden (__feste
Punkte__). Im Eigenschaftsdialog fr Punkte existiert ein
entsprechendes Hkchen. Beide Koordinaten knnen durch
__arithmetischeAusdrcke__ festgelegt werden. Wird beim
Erzeugen des Punktes die __Umschalttaste__ gedrckt, so wird der Punkt
fixiert. Whlt man mit gedrckter Umschalttaste einen Punkt aus, so
wird ein neuer fixierter Punkt genau an dieser Stelle erzeugt. Dies
kann zum __MarkierenvonPositionen__ genutzt werden.

Punkte knnen auf einem __Gitter__ gehalten werden, indem man eine
__Gitterweite__ grer als 0 im Dialog eingibt. Fr ein ganzzahliges
Gitter verwendet man zum Beispiel 1.

Punkte knnen verschoben werden, obwohl sie durch Ausdrcke fixiert
sind, wenn die Ausdrcke sich auf den Punkt selbst beziehen
(__Selbstreferenz__) und auf sonst kein anderes Objekt (__@-Bezge__
zhlen hier nicht). In diesen Fall wird nach dem Verschieben die
Position des Punktes neu berechnet und korrigiert. Die Neuberechnung
erfolgt einmalig. Eine Iteration ist nicht vorgesehen. Mit diesem
Trick kann man die Bewegung von Punkten auf sehr subtile Weise
einschrnken. Man beachte aber, dass Punkte sehr leicht in Vielecken
fixiert werden knnen, und auch auf einem Gitter gehalten werden
knnen. Daher ist der Trick mit dem Selbstbezug nur in Ausnahmefllen
notwendig.

Punkte knnen wie andere Objekte auch, direkt beim Erzeugen verschoben
werden. Dabei wird der Name und der Ort des Punktes kurzzeitig
angezeigt, wenn diese Option nicht abgeschaltet ist.

Beachten Sie, dass sich Punkte in zwei __Gren__ einstellen lassen.
Um bewegliche Punkte, an denen der Benutzer ziehen soll,
hervorzuheben, sollte man diese groen Punkte in Rot verwenden.

-> Siehe: Selbstreferenz

.boundedpoint
.related point line mouse properties
Gebundene Punkte

//image- images/boundedpoint.png
__GebundenePunkte__ sind an eine Gerade, eine Strecke, einen Strahl,
einen Kreis, ein Polygon, einen Winkel, eine Funktion oder eine
automatische Ortslinie gebunden. Das bedeutet, dass der Punkt beim
Verschieben immer auf dem Objekt bleibt. Es gibt ein spezielles
Werkzeug zur Erzeugung von gebundenen Punkten. Man kann aber einfach
das Punktwerkzeug verwenden und auf einen Kreis oder eine Gerade
klicken.

Punkte knnen vom Objekt gelst werden, oder nachtrglich an ein
Objekt gebunden werden. Dazu verwendet man den __Eigenschaftsdialog__
von Punkten. Falls der Knopf "Binden" lautet, so wird der Dialog
geschlossen, und es wird die Auswahl eines Objektes gefordert.

Punkte knnen __aufdemRand__ oder __imInnern__ eines Objektes
gebunden sein, wenn das Objekt ein Polygon, ein Kreis oder ein Winkel
ist. Darber entscheidet ein Schalter im Eigenschaftendialog.
Alternativ kann man die Strg-Taste festhalten, wenn man einen Punkt an
das Objekt bindet.

Die Bindung kann auf zweierlei Arten erfolgen. Der Punkt wird
entweder jedes Mal neu auf das Objekt projiziert, oder er
wird in seiner relativen Lage auf dem Objekt festgehalten (__relative
Fixierung__). Die erste Option wird durch Drcken der Umschalttaste
bei der Auswahl des Kreises oder der Geraden aktiviert, oder durch
Entfernung der Fixierung im Eigenschaftsdialog.

Ein Punkt auf einem Objekt ist kein __freier Punkt__. Strecken mit
solchen Endpunkten knnen nur in der Lnge fixiert werden, wenn beide
Endpunkte auf der Strecke liegen.

Auch hier wird eine Strecke nicht wie eine Gerade behandelt. Der Punkt
liegt immer innerhalb der Strecke.

.line ray
.related point parallel properties
Geraden und Strahlen

//image- images/line.png
__Geraden__ und __Strahlen__ hngen von zwei Punkten ab. Bei
der Konstruktion mssen daher zwei Punkte ausgewhlt werden. 

Die Unterschiede zwischen diesen Objekten beziehen sich nicht nur auf
die Darstellung. Auch die Auswahl mit der Maus ist nur auf dem
gezeichneten Teil mglich. Darber hinaus werden zum Beispiel
__Lote__ auf einen Strahl ungltig, wenn er den Strahl nicht mehr
trifft. Auch __Schnittpunkte__ mit Strahlen sind nur gltig, wenn sie
tatschlich auf den Strahl fallen. Der Strahl wird also nicht als
Gerade behandelt.

Geraden knnen nur in den relevanten Teilen dargestellt werden
(__partielle Darstellung__). In diesem Fall werden sie nur zwischen
den Definitionspunkten, eventuellen Schnittpunkten und ein wenig
darber hinaus gezeichnet.

-> Siehe: Strecken

.segment fixedsegment
.related point parallel properties
Strecken

//image- images/segment.png
Die Lnge von __Strecken__ lsst sich fixieren, wenn zumindest einer
der Endpunkte ein freier Punkt ist. Dieser Punkt wird dann
lngs der Strecke so verschoben, dass die gewnschte Lnge angenommen
wird. Die Lnge kann ein beliebiger berechneter Ausdruck sein. Das
spezielle Werkzeug fr __StreckenmitfesterLnge__ erzeugt beim
zweiten Klick immer einen freien Punkt.

Das Werkzeug fr feste Strecken ist per Default ausgeblendet, da feste
Strecken auch ber normale Strecken erzeugt werden knnen, die
nachtrglich fixiert werden, oder bei denen die Umschalttaste beim
erzeugen des zweiten Punktes gedrckt wird. Auerdem ist es meist
besser, Kreise mit fixiertem Radius zu verwenden.

Strecken knnen die Lnge Null haben. Allerdings werden dann Lote und
Parallelen zur Strecke ungltig.

-> Siehe: Geraden und Strahlen

.circle circle3
.related reorder expressionsyntax properties point transparent fixedcircle 
Kreise

//image- images/circle.png
__Kreise__ entsprechen einem Konstruktionsschritt mit dem Zirkel.
Dabei gibt es den einfachen Fall, bei dem der Zirkel in einem
Mittelpunkt eingestochen wird, und der Kreis durch einen zweiten Punkt
geht. Dieses Werkzeug erwartet demnach auch die Auswahl von zwei
Punkten.

//image- images/circle3.png
Der andere Kreis entspricht einem Zirkel, der seine Gre behlt, wenn
er vom Zeichenblatt entfernt wird (nicht __kollabierender Zirkel__).
In diesem Fall kann man den Radius zwischen zwei Punkten messen und
dann den Kreis um einen anderen Punkt mit diesem Radius zeichnen, also
eine __Streckeabtragen__.

//image images/Kreis.jpg

Kreise knnen auch nur in den wesentlichen Teilen sichtbar sein
(__partielle Darstellung__), was die bersichtlichkeit der
Konstruktion betrchtlich erhht. Kreise knnen __gefllt__
gezeichnet werden. Auerdem knnen sie als __Kreisbgen__ zwischen
zwei gegebenen Punkten dargestellt werden. Die beiden Punkte werden
mit der Maus ausgewhlt, nachdem der Knopf "Setze Zeichengrenzen" im
Eigenschaftsdialog des Kreises gewhlt wurde.

-> Siehe auch: Kreise mit festem Radius

.fixedcircle
.related reorder expressionsyntax properties point transparent
Kreise mit festem Radius

//image- images/fixedcircle.png
Es gibt __KreisemitfestemRadius__, die keine Radiuspunkte haben.
Man erzeugt diese Form von Kreisen, indem man beim Festlegen des
Radiuspunktes die __Umschalttaste__ drckt oder das Werkzeug fr feste
Kreise whlt. Der zweite angeklickte Ort dient als Ausgangsgre des
Kreises. Es ffnet sich der Eigenschaftsdialog und man kann einen
Ausdruck als gewnschte Gre eingeben (__arithmetischeAusdrcke__).
Der feste Kreis kann direkt beim Erzeugen mit der Maus in der Gre
verzogen werden. In diesem Fall ffnet sich der Eigenschaftsdialog
nicht. Auerdem kann der Kreis in diesem Fall spter durch Ziehen mit
der Maus in der Gre verndert werden.

Der Radius von Kreisen mit festem Radius kann durch Auswahl von zwei
Punkten, oder durch Auswahl eines Ausdrucks festgelegt werden
(__Greabtragen__). Dazu whlt man im Eigenschaftsdialog den Knopf
"Gre festlegen ..." und klickt zwei Punkte A und B an. Der Radius
wird dann gleich dem Abstand von A und B. Es ist zu beachten, dass nur
Punkte verwendet werden knnen, die vor dem Kreis konstruiert wurden.

.intersection
.related point properties selectintersection replace
Schnitte

//image- images/intersection.png
Das __Schnittwerkzeug__ erzeugt __Schnitte__ zwischen Geraden,
zwischen Kreisen, sowie zwischen Funktionen, Polygonen und
automatischen Ortslinen. Schnitte knnen auch automatisch mit
erzeugt werden (evtl. nach Rckfrage), wenn die Eingabe eines Punktes
von einem anderen Werkzeug verlangt wird. Die Vorschau zeigt dabei die
beiden geschnittenen Objekte an.

Es ist zu beachten, dass mit dem Schnittwerkzeug beide
__Schnittpunkte__ zwischen Kreisen und Kreisen und Geraden simultan
erzeugt werden. Bei Funktionen, Ortslinien etc. wird jeweils nur ein
Schnitt erzeugt, selbst wenn es mehrere gibt. Der Schnittpunkt lsst
sich in diesem Fall an einen anderen Schnittpunkt ziehen.

Das Schnittwerkzeug ist normalerweise ausgeblendet, da es sich ja
durch das Punktwerkzeug ersetzen lsst.

Was Schnitte angeht, so werden eine Strecke und ein Strahl nicht
gleich einer Geraden behandelt. Ein Schnittpunkt mit einer Strecke ist
nur gltig, wenn er auf der Strecke liegt.

Schnitte knnen in einer lngeren Konstruktion nur zu freien Punkten
gemacht werden (oder freie Punkte zu Schnitten), indem man das
Ersetzen-Werkzeug verwendet.

-> Siehe: Schnittauswahl

.selectintersection
.related intersection objecttracker
Schnittauswahl

//image images/Intersection.jpg

__Schnitte__, die zwei Punkte erzeugen, haben das Problem, dass
mglicherweise zur weiteren Konstruktion nur einer der beiden Punkte
tauglich ist. Die Reihenfolge der __Schnittpunkte__ hngt zwar per
Default vorhersagbar von den Ausgangsobjekten ab und springt nicht hin
und her, aber dennoch sind manche Konstruktionen nur lsbar, wenn man
einen der beiden Punkte durch die zustzliche Eigenschaft auszeichnen
kann, verschieden von einem vorgegebenen Punkt oder nher bei einem
gegeben Punkt zu sein (__Schnittauswahl__). Als Anwendung ist es auch
mglich, Schnitte nahe zu sich selbst zu whlen. In diesem Fall
verhlt sich die Schnittauswahl stetig mit der Bewegung.

//image images/Schnitt.jpg

Dazu kann man den Namen des Punktes im Eigenschaftsdialog von
Schnitten eintragen, der weg vom Schnittpunkt sein soll oder in der
nhe des Schnittpunkts liegen soll. Im Eigenschaftsdialog von
Schnitten findet man einen Knopf, mit dem sich der Bezugspunkt fr die
Auswahl in der Konstruktion whlen lsst.

Auerdem ist es mglich, den Schnittpunkt immer zu wechseln, wenn er
ungltig ist. Genau wie beim automatischen Ortslinienobjekt durchluft
die Konstruktion dann alle mglichen Zustnde.

Falls der andere Schnittpunkt zweier Kreise schon existiert, so
erzeugt Z.u.L. automatisch einen Schnittpunkt, der immer vom
existierenden verschieden ist. Dies lst viele Probleme automatisch.

-> Siehe: Schnitte

.parallel plumb midpoint
.related line point properties
Parallelen, Lote und Mitten

__Parallelen__, __Lote__ und __Mitten__ sind Werkzeuge zur
Abkrzungen von den komplizierteren Konstruktionen, die auch allein
mit Zirkel und Lineal mglich wren. Parallelen und Lote sind Geraden,
Mitten sind Punkte.

Man beachte, dass Lote fr __Strahlen__ und __Strecken__ ungltig
werden, wenn der Lotfupunkt nicht auf dem Zielobjekt liegt. Dies kann
durch einen Schalter im Eigenschafsdialog des Lots verhindert werden.

.move
.related circle angle background mouse
Objekte Bewegen

//image- images/move.png
Das __Bewegewerkzeug__ kann alternativ zur rechten Maustaste benutzt
werden, um ein Objekt zu verschieben. Es muss dann natrlich die linke
Maustaste zum Verschieben verwendet werden. Falls die Objektauswahl
zum Bewegen nicht eindeutig war, erscheint ein __Auswahldialog__. Im
nchsten Versuch wird dann das gewhlte Objekt benutzt.

Beim Auswhlen dieses Werkzeugs oder beim Zurcksetzen mit der
ESC-Taste blinken kurz alle beweglichen Objekte der Konstruktion auf.

Mit der __Umschalttaste__ knnen mehrere Punkt gleichzeitig bewegt
werden. Dazu lsst man bei der Auswahl des letzten Punktes die
Umschalttaste los.

Objekte, wie zum Beispiel __Geraden__, die nur mit beweglichen Puntken
definiert wurden, knnen ebenfalls verschoben werden.

Wenn beim Bewegen die __Umschalttaste__ gehalten wird, wird die
Bewegung eingeschrnkt, wenn ein Schnitt ungltig wird. In Applets
kann dies durch den Parameter "restrictedmove" per Default aktiviert
werden.

Hlt man whrend des Bewegens die __Strg-Taste__ gedrckt, so bleibt
der anfngliche Zustand der Konstruktion whrend der Bewegung sichtbar.

Auerdem kann mit der Strg-Taste die Fixierung von festen Kreisen und
Winkeln aufgehoben werden.

.tracker
.related point animate mouse objecttracker
Ortslinien und Einhllende

//image- images/tracker.png
Dieses wichtige Werkzeug erzeugt Spuren von berechneten Punkten. Man
whlt fr einfache __Ortslinien__ zunchst einen Punkt aus,
dessen Ortslinie zu zeichnen ist, und kann dann einen beliebigen
verschiebbaren Punkt oder ein anderes verschiebbares Objekt mit der
linken Maustaste bewegen.

Es knnen auch mehrere Punkte ausgewhlt werden, indem die
Umschalttaste beim ersten Punkt festgehalten wird. Dann werden auch
mehrere Ortslinien gleichzeitig gezeichnet.

Die Ortslinie wird nur so lange gezeichnet, bis ein neues Werkzeug
ausgewhlt wird, oder das Ortslinienwerkzeug erneut ausgewhlt wird.

Wird statt eines Punktes eine Gerade ausgewhlt, so entsteht eine
__Hllkurve__ (__Polare__). Das ist eine Kurve, zu der alle Geraden
Tangenten sind, die bei der Bewegung entstehen. Auch hier knnen
mehrere Objekte gleichzeitig verfolgt werden, auch Punkte und Geraden
gemeinsam.

//image images/Ortslinie.jpg

-> Siehe: Automatische Ortslinien

.objecttracker
.related point animate mouse tracker
Automatische Ortslinien

//image- images/objecttracker.png
Bei der automatischen Ortslinie wird der bewegte Punkt auf einem
Kreis, einer Geraden, einer Strecke oder einem Strahl automatisch
bewegt. Also ist zustzlich zu den Eingaben fr eine normale
Ortslinie die Eingabe eines solchen Objektes notwendig. Zu beachten ist,
dass das Objekt, auf dem der Punkt bewegt wird, nicht von ihm abhngen
darf. Statt eines Objekts und des Punkts, der darauf laufen soll, kann
auch gleich ein Punkt gewhlt werden, der auf einem Objekt gebunden
ist, oder ein Schieberegler fr Ausdrcke.

Auch hier knnen mehrere Punkte verfolgt werden. Allerdings steuert
der erste Punkt die Erzeugung der Ortslinie.

__AutomatischeOrtslinien__ versuchen, alle Zustnde der Konstruktion
zu durchlaufen. Dazu macht der bewegte Punkt kehrt, wenn er ungltig
wird. __Schnitte__ wechseln dabei ihre Orientierung.

Die automatische Ortslinie wird neu berechnet, wenn ein Ausgangspunkt
verschoben wurde. Dazu verschiebt man den Ausgangspunkt mit der
rechten Maustaste.

Automatische Ortslinien werden zunchst animiert. Nach einem Klick
luft die __Animation__ ohne Ortslinie ab, und nach einem
weiteren Klick wird die Ortslinie ohne Animation gezeichnet. Die
Animation lsst sich durch Drcken der __Umschalttaste__ zusammen mit
den Cursortasten links oder rechts __beschleunigen__ oder
__verlangsamen__.

Ortslinien werden abgespeichert. Beim Laden einer Konstruktion
wird die Ortslinie automatisch wieder angezeigt. Falls sie animiert
war, wird sie wieder animiert sein, sonst nicht. Die Ortslinie ist
allerdings kein Konstruktionsobjekt, sondern wird separat im
Konstruktionskopf gespeichert.

__OrtslinienalsObjekte__

Automatische Ortslinien knnen auch als Objekte in die Konstruktion
bernommen werden. Dazu gibt es einen speziellen Menpunkt. Man muss
wissen, dass das Neuzeichnen erheblich verzgert wird, wenn die
Konstruktion viele Ortslinien enthlt, da diese Ortslinien immer neu
berechnet werden mssen.

Diese Art von Orslinien haben einen eigenen Einstellungsdialog und
erben nicht einfach die Eigenschaftes des erzeugenden Punktes.
Automatische Ortslinien knnen auerdem __gefllt__ werden.

Automatische Ortslinien in Konstruktionen knnen mit anderen Objekten
geschnitten werden und man kann Punkte auf Ihnen fixieren. Wenn
mehrere __Schnitte__ existieren, wird allerdings immer nur einer
erzeugt. Durch Ziehen kann der Schnittpunkt gewechselt werden.

Automatische Ortslinien knnen fixiert werden. Dann werden sie nur neu
berechnet, wenn ihr Objektdialog aufgerufen wurde. Das spart enorm
Rechenzeit.

-> Siehe: Ortslinien und Einhllende

.animate
.related circle line
Animation

//image- images/animate.png
Mit dem Werkzeug fr __Animation__ lassen sich Punkte bewegen, so
dass sie Strecken oder Kreisen folgen. Man whlt zuerst den zu
animierenden Punkt aus, dann die Strecken oder Kreise, auf denen er
wandern soll. Die Auswahl wird dadurch abgeschlossen, dass man eine
schon gewhlte Strecke erneut eingibt. Die Animation luft dann, bis
man ein Werkzeug whlt oder auf eine leere Stelle klickt. Mit er
__Umschalttaste__ und der Rechts- oder Links-Taste lst sich die
Animation __beschleunigen__ oder verlangsamen__.

Die __Laufrichtung__ auf Kreisen ist normalerweise gegen
Uhrzeigersinn. Sie kann aber durch Klicken mit der __Umschalttaste__
gedreht werden. Dies fhrt auch dazu, dass der animierte Punkt auf
Kreissegmenten und auf Strecken hin- und zurckluft.

Animationen werden gespeichert und beim Laden automatisch ausgefhrt.

.angle
.related circle properties defaults fixedangle
Winkel

//image- images/angle.png
Einfache __Winkel__ sind meist lediglich Verzierungen, bzw. Messungen.
Mit ihnen kann nichts konstruiert werden. Winkel werden durch drei
Punkte ABC bestimmt, wobei B wie blich den Scheitel des Winkels
bezeichnet. Allerdings knnen __Punkte__ in den Winkelbereich gebunden
werden.

Winkel sind normalerweise immer kleiner als __180Grad__. Die
Eingabereihenfolge der Schenkelpunkte spielt keine Rolle. Dieses
Verhalten kann fr jeden Winkel im Eigenschaftsdialog oder
global als Voreinstellung gendert werden.

Winkel knnen den Namen, die Gre oder beides anzeigen. Da im kleinen
Winkelraum relativ wenig Platz ist, ist es mglich, den Winkel in drei
verschiedenen Gren zu zeichnen. Die dritte Gre erlaubt es,
__Kreisbgen__ zu zeichnen, weil der Winkelbogen in diesem Fall
immer beim Schenkelpunkt A gezeichnet wird. Man kann allerdings mit
diesen Kreisbgen nicht konstruieren.

Fr Winkel sind die griechischen Namen \a, \b etc. sinnvoll, die als
__griechischeBuchstaben__ dargestellt werden.

-> Siehe: Feste Winkel

.fixedangle
.related circle reorder expressionsyntax properties defaults angle
Feste Winkel

//image- images/fixedangle.png
__FesteWinkel__ haben keinen zweiten Schenkelpunkt, sondern statt
dessen eine fixierte Gre. Der Winkel verhlt sich dann wie ein
Strahl. Mit diesem Strahl kann weiter konstruiert werden. Man erzeugt
solche Winkel durch Festhalten der __Umschalttaste__ beim zweiten
Schenkelpunkt, oder mit Hilfe des Werkzeugs fr feste Winkel. Es
ffnet sich der Eigenschaftsdialog, und man kann einen Ausdruck fr
den gewnschten Winkel eingeben.

Die Gre von festen Winkeln kann auch durch Anklicken dreier Punkte,
oder eines anderen Ausdrucks festgelegt werden. Dazu whlt man im
Eigenschaftsdialog des Winkels den Knopf "Winkel festlegen ..." und
klicken drei Punkte A, B und C an. Der Winkel wird dann so gro wie
der Winkel ABC.

Feste Winkel knnen im Einstellungsdialog invertiert werden. Beim
Erzeugen werden Winkel, die durch die Voreinstellung auf __180Grad__
begrenzt sind, automatisch invertiert, wenn dies notwendig ist. Also
muss beim Erzeugen nicht auf mathematisch positive Orientierung
geachtet werden.

-> Siehe: Winkel

.area
.related point properties background
Gefllte Polygone

//image- images/area.png
Mit diesem Werkzeug kann man aus__gefllt__e Flchen
(__Polygone__) erzeugen, die durch Streckenzge begrenzt sind. Verlangt
wird die Eingabe einer Reihe von Punkten. Zum Abschluss gibt man den
letzten Punkt erneut ein. Man kann __Punkte__ in Polygonen oder
am Rand von Polygonen halten.

Die Randstrecken werden versteckt, wenn das Polygon in dnner Darstellung
angezeigt wird. Selbst wenn die Einstellung fr neue Objecte auf normal gestellt
ist, werden Polygone dnn erzeugt (auer wenn die Strg-Taste beim letzten
Piunkt gedrckt wird). Werden die Rnder bentigt, so sollten sie normalerweise
als Strecken konstruiert werden. Sonst kann man nicht sinnvoll weiter
konstruieren. Aus dem gleichen Grund sind __automatischeSchnitte__ mit
Polygonen zunchst ausgestellt. Punkte, die auf Polygonen befestigt sind, knnen
nmlich um das Polygon herumwandern. Gewhnlich ist das nicht gewnscht. Die
Darstellung des Randes und die automatischen Schnitte knnen im Objektdialog
eingestellt werden.

Der Wert eines Polygons in Ausdrcken ist seine Flche, mit dem
Vorzeichen gem der __Orientierung__ des Polygons. 

.expression
.related expressionsyntax fixedangle fixedcircle point properties
Berechnete Ausdrcke

Z.u.L. bietet die Mglichkeit ber normale Konstruktionen hinaus
__berechneteKonstruktionen__ zu erzeugen. Dazu werden
__arithmetischeAusdrcke__ verwendet, die im Prinzip berall erlaubt
sind, wo die Eingabe einer Gre erforderlich ist. Es lassen sich
damit Koordinaten von Punkten setzen, Lngen von Strecken, Radien von
Kreisen und Winkel festlegen. 

//image- images/expression.png
Auerdem knnen die Ausdrcke zur Anzeige von berechneten Gren in
der Konstruktion dienen. Dazu dient das Werkzeug fr Ausdrcke. Nach
der Wahl eines Platzes, an dem der Ausdruck stehen soll, wird
automatisch der Einstellungsdialog angezeigt. Man muss dort nur noch
den gewnschten Ausdruck eingeben.

Ausdrcke knnen mit einer Erklrung versehen werden. Im
Eigenschaftsdialog lsst sich die Anzeige der Erklrung anschalten.

//image images/Schieber.jpg

Ausdrcke knnen mit einem __Schieber__ verstellt werden. Der Benutzer
kann damit leicht Werte fr den Ausdruck einstellen. Schieber haben
minimale und maximale Werte, die sie im Eigenschaftsdialog einstellen
knnen.

Auerdem knnen Ausdrcke als Schalter dargestellt werden. Sie nehmen
dann nur die Werte 0 oder 1 an. Dies kann mit if(...) in anderen
Ausdrcken ausgentzt werden.

Angezeigte Ausdrcke knnen wie blich mit der rechten Maustaste an
einen anderen Platz verschoben werden. Zum Verstellen des Schiebers
kann ebenfalls die __rechte Maustaste__ verwendet werden.

Man kann auch __LaTeX-Code__ zur Ausgabe von Ausdrcken verwenden.
Dazu umgibt man den Text mit $-Zeichen.

//image images/Expression.jpg

.expressionsyntax
.related expression reorder point fixedcircle fixedangle
Syntax fr Ausdrcke

Im folgenden wird die __SyntaxfrAusdrcke__ erklrt. Im allgemeinen
wird die normale mathematische Notation verwendet, angereichert durch
spezielle Funktionen.

+, -, *, /,^ 
 3.5*3+3/(4-5^2) 
 Elementarer arithmetischer Ausdruck. ^ steht fr die Potenz. 
 
Objektname 
 AB/CD 
 Der Name von Strecken, Kreisen und Winkeln berechnet deren Lnge, Radius bzw. Gre. 
Enthlt der Name ein Leerzeichen, muss er in "" eingeschlossen werden. 
Es knnen auch andere Ausdrcke verwendet werden. Das aktuelle Objekt darf nicht
von einem im Ausdruck verwendeten Objekt abhngen.
Man kann fr Spezialzwecke ein @ vor den Namen hngen. Dann wird das Objekt immer mit
seien Namen gesucht. In diesem Fall funktioniert der Ausdruck nicht
in Makros.
Falls das Objekt nicht gefunden wird, gibt es eine Fehlermeldung.
 
Funktion 
 sin(a) 
 Diverse mathematische Funktionen (siehe unten) 

Benutzerfunktion
  f(a)
  Auswertung einer Benutzerfunktion an der Stelle a
 
Pi 
 pi 
 Die Konstante Pi. 
 
x,y 
 x(P),y(P),z(P)
 X- und y-Koordinaten von Punkten, oder Z-Wert.
 
d 
 d(P,Q) 
 Abstand der Punkte P und Q.
 
d 
 d(x) 
 nderungen von x, bei Punkten Bewegung und bei Winkeln Grennderung.
 
if
 if(e,e1,e2)
 Gibt e1 zurck, wenn e gltig ist, sonst e2. Wenn allerdings e ein logischer Ausdruck ist, so wird e1 zurckgegeben, wenn e wahr ist, sonst e2. 

sum
 sum(x,e)
 Summiert x auf. Die Summe wird zurckgesetzt, wenn e negativ oder ungltig ist.
 
a 
 a(A,B,C) 
 Gre des Winkels ABC (Scheitel in B). 
 
scale
 scale(x,a,b)
 Gibt die relative Lage von x in [a,b) zurck, wenn x in diesem Intervall liegt. 
Sonst wird der Ausdruck ungltig.

valid,invalid 
 valid,invalid 
 Konstanten, die einfach 0 bzw. ungltige Ausdrcke zurck geben. 

&& 
 x<3 && y<3 
 Logisches Und. Die logischen Funktionen geben 0 zurck, wenn sie
nicht wahr sind, sonst 1. 
 
|| 
 x<3 || y<3 
 Logisches Oder. 

! 
 ! (x<3 && y<3) 
 Logisches Nicht. 

>, >=, <, <=, ==, = 
 x<3 
 Vergleiche. "=" bedeutet "ungefhr gleich", d.h. gleich bis auf 10^(-10). 

__integrate__
 integrate(f,a,b)
 integrate(f)
 Integral der Funktion f von a bis b mit der Rombergmethode.
f muss ein Funktionsobjekt (evtl. versteckt) sein. 
Benutzt wird die y-Koordinate von f. integrate(f) berechnet
die Riemann-Summe fr punktweise Kurven, die Trapezregel
fr andere Funktionen und die berstrichene Flche fr
parametrisierte Kurven. integrate(f) funktioniert auch fr
automatische Ortslinien in der Konstruktion.

__length__
 length(f)
 Berechnet die __LngeeinerparametrisisiertenKurve__ oder einer
automatischen Orslinie in der Konstruktion.

__zero__
 zero(f,a,b)
 Sucht die __Nullstelle__ von f zwischen a und b. f(a) und f(b) mssen
verschiedene Vorzeichen haben. Verwendet wird die Sekantenmethode oder eine
Intervallschachtelung.

__diff__
 diff(f,x)
 Berechnet eine Approximation der Ableitung von f in x.

__min__,__max__
 min(f,a,b)
 Berechnet den Punkt, in dem das __Minimum__ (__Maximum__) von f
zwischen a und b angenommen wird. min(a,b) oder max(a,b) berechnet
das Minimum bzw. Maximum von a und b.

__this__
 x(this)
 Bezeichnet das Objekt, das den Ausdruck enthlt.

__windoww__,__windowh__,__windowcx__,__windowcy__
 Berechnet die Gre und das Zentrum des dargestellten Bereiches.
 
__pixel__
 Gibt die Pixel pro Koordinateneinheit zurck. Nicht fr
Grafikexport geeignet.
 
__simulate__
 simulate(e,x,f)
 Setzt den Ausdruck e gleich x, berechnet die Konstrukion neu und gibt den Wert von
f zurck. Jeweils nur eine dieser __Simulationen__ kann zur selben
Zeit aktiv sein! Fr e kann ein Ausdruck, ein fester Winkel oder ein
fester Kreis eingesetzte werden.

__inside__
 inside(P,A)
 Testet, ob der Punkte P innerhalb von A liegt. Falls P am Rand von A
liegt, dann wird 0.5 zurck gegeben. A kann ein Polygon, ein Kreis,
oder ein Winkel sein.

Es knnen die blichen mathematischen Funktionen abs,
sign, sin, cos, tan, arcsin, arccos, arctan, sqrt, exp und log
verwendet werden. Darber hinaus gibt es round, ceil und floor zum
Runden auf ganze Zahlen. angle180 und angle360 sind Spezialfunktionen,
die Winkel so umrechnen, dass sie zwischen 0 und 180 bzw. 360 liegen.
Die Funktionen sin und cos arbeiten mit Grad. Zum Umrechnen verwendet
man deg(x) und rad(x).

.latex
.related text properties
Latex-Code

__Latex-Code__ kann in Textobjekten und in Namen von Objekten
vorkommen. Dazu wird der Code in $ eingeschlossen. Zur Darstellung
verwendet Z.u.L. HotEqn. Wir knnen hier nur einen berblick ber die
Syntax geben. Eine genaue Definition des untersttzten Latex-Codes
finden Sie in der HTML-Dokumentation.

Zunchst werden griechische Buchstaben (\alpha,\beta) untersttzt.
Dann natrlich Hoch- und Tiefstellung (x^y, x_n) und Brche
(\frac{1}{x} oder auch \dfrac). Auerdem Summen, Integrale und Limiten
(\sum_{n=1}^\infty, \int_a^b). Wichtig sind vielleicht auch Akzente
(\hat{x},\overline{x}). Speziell sind \dollar und \percent definiert.

__Matrizen__ werden auch untersttzt
(\begin{array}{cc}3&4\\5&6\end{array}). Dabei sind dann auch groe
Klammern ntzlich (\left[ \right]).

.text
.related replay comment properties latex
Text

//image- images/text.png
Damit kann ein beliebiger mehrzeiliger __Text__ in die Konstruktion
eingefgt werden. Bei der Definition wird ein Fenster geffnet, in dem
der Text eingegeben werden kann. In diesem Fenster ist ein Schalter
enthalten, mit dem man den normalen Eigenschaftsdialog erreicht. Dort
lassen sich Texte an eine Position fixieren.

Texte knnen formatiert werden. Und zwar knnen ganze Zeilen fett
oder gro oder beides dargestellt werden. Dazu stellt man der Zeile
*, ** oder *** voran. Auerdem knnen Zeilen __Latex-Code__ enthalten.
Der Code wird in $ eingeschlossen. Text kann auch
__arithmetischeAusdrcke__ enthalten, die in % eingeschlossen werden.
Diese Ausdrcke werden ausgewertet und statt dessen wird das Resultat
dargestellt. Ausdrcke der Form %=s% ergeben den aktuellen Namen von
s, und Ausdrcke der Form %s% geben die Gleichung von s. %+...%
erzwingt das Vorzeichen.

__VersteckteTexte__ werden whrend der __Wiedergabe__ mit dem
Rekorder angezeigt. Damit ist es mglich einzelne
Konstruktionsschritte zu kommentieren. Die Kommentare erscheinen nur
an der Stelle, an der sie definiert sind. Beim Verwenden von
Unterbrechungspunkten ist es ntzlich, diese Punkte hinter den
versteckten Texte zu erzeugen.

.quadric
.related properties point transparent
Kegelschnitte

//image- images/quadric.png
__Kegelschnitte__ (__Quadriken__) sind Nullstellenlinien von
Gleichungen zweiten Grades in zwei Variablen x und y. Da es sechs
unabhngige quadratische Funktionen (x^2, y^2, x*y, x, y, 1) gibt,
gengen fnf Punkte, einen Kegelschnitt zu definieren, der durch diese
Punkte verluft. Das Programm kann Kegelschnitte berechnen und
anzeigen.

//image images/Ellipse.jpg

Zur Eingabe von Quadriken ist einfach die Auswahl von 5 Punkten ntig.
Auf Quadriken knnen Punkte fixiert werden, und das Programm kann
Schnitte mit Quadriken berechnen.

.hide
.related construction properties mouse
Versteckte Objekte

//image- images/hide.png
Mit dem Werkzeug zum __Verstecken__ und __Anzeigen__ lsst sich der
Status von Objekten von angezeigt auf versteckt und umgekehrt ndern.
Man kann versteckte Objekte natrlich nur dann anwhlen, wenn man die
Option angeschaltet hat, die alle versteckten Objekte sichtbar macht.

Es ist auch mglich, fr ein einzelnes Objekt den
Status zum Verstecken in seinem Eigenschaftsdialog einzustellen.

Auerdem kann durch Anklicken mit der rechten Maustaste bei gehaltener
__Strg-Taste__ und __Umschalttaste__ das Objekt angezeigt oder
versteckt werden, auch wenn ein anderes Werkzeug ausgewhlt ist.

Wenn beim Verstecken eines Objektes die __Umschalttaste__ gedrckt
ist, so wird dieses Objekt komplett verborgen. Es kann nur dadurch
wieder sichtbar gemacht werden, dass sein Eigenschaftsdialog ber die
Konstruktionsbeschreibung aufgerufen wird, und dort die Sichtbarkeit
eingeschaltet wird.

Man kann auch alle __Duplikate__ von Objekten mit einem Schlag
verstecken. Dazu hlt man die __Strg-Taste__ fest, whrend man das
Werkzeug zum Verstecken anklickt, oder man benutzt den entsprechenden
Menpunkt. Es ist dann nur das jeweils letzte Duplikat sichtbar.

.rename
.related properties
Alphabetisch Umbenennen

//image- images/rename.png
Mit diesem Werkzeug werden Strecken automatisch __alphabetisch__, also
in a,b,c, Punkte in A,B,C und Winkel in \a,\b,\c umbenannt, sofern
diese __Namen__ in der Konstruktion noch nicht vergeben wurden. Es
wird immer der erste freie Buchstabe verwendet.

//image images/Umkreis.jpg

Bentigen Sie den Namen a doppelt, so knnen Sie "a~1" als Namen
fr ein Objekt verwenden, was als "a" angezeigt wird. Generell werden
alle Zeichen ab einer "~" nicht angezeigt.

Mann kann auch erzwingen, dass die angeklickten Punkte A, B, C genannt
werden, obwohl diese Buchstaben schon einmal vergeben wurden, indem
man die __Umschalttaste__ festhlt. In diesem Fall wird der Buchstabe
ausgetauscht, wenn er in der Konstruktion schon einmal vorhanden war.
Um von vorne zu beginnen, muss man das Werkzeug erneut auswhlen, oder
die Esc-Taste drcken.

.delete undo back
.related construction
Objekte Lschen

//image- images/back.png
Mit Hilfe des Schalters zum __LschenvonObjekten__ ist es mglich,
das letzte konstruierte Objekt zu lschen. Dabei werden zustzlich
alle versteckten Objekte gelscht, so dass das vorletzte nicht
versteckte Objekt das letzte Objekt wird. Falls allerdings die Option
zum Anzeigen aller versteckten Objekte eingeschaltet ist, wird nur das
letzte Objekt gelscht.

//image- images/delete.png
Es gibt auch ein Werkzeug, mit dem ein beliebiges, Objekt gelscht
werden kann. Dies lscht dann auch alle davon abhngigen Objekte. 

//image- images/undo.png
Die __Undo-Taste__ restauriert alle auf diese Art gelschten Objekte.
Allerdings gilt dies nur solange, bis nicht ein neues Objekt
konstruiert wurde. Derzeit beherrscht das Programm kein vollstndiges
Undo.

.function
.related expressionsyntax properties
Funktionen und Kurven

Das Programm nutzt __Funktionen__ zum Darstellen von Kurven oder als
__benutzerdefinierteFunktionen__ zur Verwendung in Ausdrcken.

//image- images/function.png
Zunchst gibt es __Funktionen__ und __Kurven__, die gezeichnet werden
sollen. Dazu existiert ein Meneintrag und ein Werkzeug. Es erscheint
ein Dialog, in den man einen Bereich fr den Parameter eingeben muss
und eine __Schrittweite__. Normalerweise belsst man den Namen des
__Parameter__ beim vorgegebenen "x".

Bei Funktionen lsst man den Ausdruck fr X leer und setzt fr
den Y-Wert einen gltigen Ausdruck in x ein, wie zum Beispiel
"sin(deg(x))".

Bei Kurven brauch man zwei Funktionen, eine fr den x-Wert und eine
fr den y-Wert.

Das Programm zeichnet die Funktion in die Konstruktion, wobei die
Konstruktionskoordinaten verwendet werden. Das sind die Koordinaten,
wie man sie bei eingeschaltetem Gitter sieht. Ungltige
Funktionsstellen werden bersprungen.

Funktionen knnen auch fr __arithmetischenAusdrcke__ verwendet
werden. Dabei wird der Y-Wert ausgewertet.

Man kann auch __Schnitte__ von Funktionsgraphen und parametrischen
Kurven mit anderen Funktionen und anderen Objekten erzeugen.
Auerdem kann man einen Punkt auf dem Graphen fixieren und dort
gleiten lassen.

Funktionen und Kurven knnen __gefllt__ dargestellt werden. Bei
Kurven ist das __Fllzentrum__ normalerweise 0, aber man kann dies
ndern. Im Eigenschaftsdialog gibt es einen Knopf, mit dem man das
Zentrum auswhlen kann.

//image images/Funktion.jpg

Man kann einstellen, dass nur Punkte gezeichnet werden. Falls die Funktion
gefllt wird, wird eine __Treppenfunktion__ gezeichnet, und zwar von
den linken Intervall-Enden aus, es sei denn, die Intervallgrenzen sind
vertauscht. 

Als weiteren Typ von Funktionen gibt es
__benutzerdefinierteFunktionen__, die nur dazu gedacht sind, in
Ausdrcken verwendet zu werden. Diese Funktionen knnen von mehreren
Variablen abhngen. Sie zeichnen keinen Graphen, sondern stellen ihre
Definitionsformal dar, wenn sie nicht versteckt werden. Mit Hilfe der
__Strg-Taste__ beim Klick auf das Funktionenwerkzeug ffnet sich ein
einfacherer Dialog, in dem alle Variablen, durch Leerzeichen getrennt,
deklariert werden mssen. Auerdem muss ein Ausdruck fr die
Funktion angegeben werden, der von diesen Variablen abhngen kann. Die
Funktion kann dann in anderen Ausdrcken verwendet werden.

Die __Nullstellenmenge__ einer benutzerdefinierten Funktion mit zwei
Variablen kann vom Programm auch geplottet werden. Verwenden Sie den
Schalter im Eigenschaftendialog, um diese Funktion anzuschalten. Die
Funktion kann von irgend zwei Variablen abhngig sein, die im
Variablenfeld durch Leerzeichen getrennt angegeben werden mssen.

.defaults
.related line angle colors iconbar properties
Einstellungen

Man kann mehrere __Default-Einstellungen__ fr neue Objekte festlegen.

 - Farbe
 - Dicke
 - Stil von Punkten
 - Kreise partiell angezeigt oder nicht
 - Geraden partiell oder nicht
 - Strecken als Vektoren
 - Namensanzeige
 - Wertanzeige
 - Lange Namen
 - Groe und fette Schrift
 - Winkel grer als __180Grad__
 - Nicht-transparente Objekte

Dafr gibt es Werkzeuge im Men, die alle in der oberen Reihe der
Werkzeugleiste angezeigt werden knnen.

.edit
.related conditions mouse properties expression
Bearbeiten von Objekten

//image- images/edit.png
Mit dem Werkzeug zum __BearbeitenvonObjekten__ wird der
Eigenschaftsdialog von einem oder mehreren Objekten aufgerufen.
Solange die __Umschalttaste__ gehalten wird, werden die Objekte
selektiert, und knnen dann auf einmal bearbeitet werden. Der
Eigenschaftsdialog fr mehrere Objekte enthlt deaktivierte
Einstellungen. Nur die aktivierten, genderten Einstellungen werden
bei allen Objekten verndert.

Hlt man beim Anklicken des Werkzeugs die __Strg-Taste__ fest, so wird
automatisch das letzte Objekt bearbeitet. Wird diese Taste bei der
Auswahl des Objektes festgehalten, so wird der Dialog fr die
__bedingteFormatierung__ geffnet.

-> Siehe: Bedingte Formatierung

.conditions
.related edit properties
Bedingte Formatierung

//image images/Bedingt.jpg

Um den Dialog zum Einstellen fr __BedingteFormatierung__ zu
erreichen, whlt man das Objekt mit Strg-Taste und der rechten
Maustaste aus. Alternative kann man im normalen Eigenschaftendialog
den OK-Knopf mit der Strg-Taste drcken. In den speziellen
Eingeschaften kann man auch einstellen, dass ein separater Knopf dort
erscheint ("__Mehr__").

Fr viele Objekteigenschaften, wie Farbe und Dicke, kann man
Bedingungen einstellen, unter denen diese Eigenschaften aktiviert
werden. Damit sind spezielle Effekte mglich.

Die einzelnen Bedingungen werden der Reihe nach abgearbeitet. Die
erste zutreffende Bedingung fr eine Farbe bestimmt zum Beispiel die
Farbe. Man muss also eventeull darauf achten, dass sich die Bedingungen
nicht widersprechen.

Der __Z-Wert__ bestimmt die Zeichenreihenfolge. Die Objekte mit dem
greren Z-Wert werden zuerst gezeichnet, aber erst nach den
Hintergrundobjekten.

Wenn man die Bedingungen mehrerer Objekt ndert, so kann das
aktuelle Objekt mit "__this__" bezeichnet werden.

.show
.related hide
Verstecken nach Farben

//image- images/showcolor.png
Dieses Icon whlt selektiv Objekte bestimmter __Farben__ zur Anzeige
aus. Wenn die Konstruktion geschickt gestaltet ist, kann man damit
sehr gut eine bersicht ber die Konstruktionsschritte bekommen. Die
Farbe Schwarz wird allerdings immer angezeigt. Das Icon ndert sich
nach jedem Klick.

.grid
.related zoom mouse zoom
Gitteranzeige

//image- images/grid.png
Dieses Icon stellt die Anzeige der __Koordinatenachen__ und das
__Gitter__ ein und aus. Wenn das Gitter eingeschaltet ist, so
schnappen neue Punkte und mit der rechten Maustaste bewegte Punkte bei
Gitterpunkten ein. Das Werkzeug zum Bewegen ist davon nicht betroffen.
Man kann allerdings umgekehrt einstellen, dass Punkte nur beim Bewegen
mit der linken Maustaste und dem Werkzeug zum Bewegen
__einschnappen__.

Beim erneuten Klick auf das Gitterwerkzeug wird das Gitter mit Achsen
und Gitterpunkten angezeigt. Auerdem existiert ein Einstellungsdialog
fr das Gitter, in dem die Farbe, die Dicke und der __Font__ der
Labels eingestellt werden kann.

//image images/Funktion.jpg

Das Einschalten des Gitters wird mit der Konstruktion abgespeichert,
so dass beim Laden der Konstruktion das Gitter automatisch wieder
eingeschaltet wird. Auch die Einstellungen des Gitters werden in der
Konstruktion abgespeichert.

.replay
.related htmlexport text animatebreak
Schrittweise Wiedergabe

//image images/Replay.jpg

//image- images/replay.png
Mit dieser Funktion kann man schrittweise durch eine Konstruktion
gehen. Es erscheint ein Men mit Tasten, hnlich wie auf einem
Kassettenabspielgert. Die __Wiedergabe__funktion steht in Applets mit
Hilfe der rechten Maustaste zur Verfgung.

Es besteht die Mglichkeit, whrend des Abspielens mit der Taste 
__Haltepunkte__ zu setzen. Diese Haltepunkte knnen dann einfach mit
einer Taste angesprungen werden. Beim Export in eine HTML-Datei kann
dann der Stil "__WiedergabemitHaltepunkten__" gewhlt werden, der
dem Benutzer die Mglichkeit gibt, von Haltepunkt zu Haltepunkt zu
springen. 

Bei der Wiedergabe werden __versteckteTexte__ angezeigt, mit
Haltepunkten allerdings nur, wenn der versteckte Text auf dem
Haltepunkt steht.

__VersteckendeHaltepunkte__ werden mit der __Umschalttaste__ gesetzt.
Solche Haltepunkte verstecken alle Objekte vor ihnen bis zum vorigen
Haltepunkt. Die Konstruktion zerfllt damit in eine Folge von
Teilen.

.animatebreak
.related replay
Animiere Haltepunkte

Damit wird eine Konstruktion automatisch von Haltepunkt zu Haltepunkt
wiedergegeben. Die Geschwindigkeit der Darstellung kann mit der
Umschalttaste und den Pfeiltasten Links und Rechts gesteuert werden.

Die __AnimationderHaltepunkte__ wird mit der Konstruktion gespeichert
und beim Laden der Konstruktion automatisch gestartet.

.draw
.related mouse
Mit der Maus Zeichnen

//image- images/draw.png
Mit diesem Werkzeug kann man auf dem Bildschirm __zeichnen__.
Verwendet wird die aktuelle Farbe. Die Zeichnungen werden
abgespeichert. Sie blhen allerdings die Konstruktionsdatei auf.

.zoom
.related mouse grid
Mit der Maus Zoomen und Verschieben

//image- images/zoom.png
Man kann mit Hilfe des __Zoomwerkzeugs__ mit der Maus den Ausschnitt
der Konstruktion verndern. Beim Ziehen am Rand wird die Konstruktion
vergrert und verkleinert. Im Zentrum wird die Konstruktion
verschoben. Dabei nimmt die Maus eine andere Gestalt an.

Allerdings kann auch ohne das Zoomwerkzeug mit dem __Mausrad__ gezoomt
werden, und mit der rechten Maustaste kann die Konstruktion verschoben
werden, wenn ein leerer Platz verschoben wird.

Der eingestellte __Konstruktionsausschnitt__ wird abgespeichert. Bei
Laden wird die Konstruktion so angepasst, dass dieser Ausschnitt in
der Breite ins Bild passt.

.macro
.related macrobar parameter target definition defaultmacros macroerrors hintparameter
Makros

__Makros__ sind ein wichtiges Werkzeug, um den berblick in
komplizierteren Konstruktionen zu behalten. Ohne Makros sind
eigentlich nur einfache Konstruktionen mglich. Makros sammeln mehrere
Konstruktionsschritte in einem Schritt. Sie verhalten sich wie
__Unterprogramme__ in einer Programmiersprache.

//image- images/macro0.png
In Z.u.L. ist die Definition von Makros sehr einfach. Man definiert
eine "__Musterkonstruktion__" und erzeugt ein Makro, das diese
Musterkonstruktion nachmachen kann. Die Musterkonstruktion hat, genau
wie das sptere Makro, gewisse Ausgangsobjekte, die zu
__Makroparameter__ werden, und gewisse Zielobjekte, die __Makroziele__
werden. Z.B. hat die Mittelsenkrechte zwei Punkte als Parameter und
eine Gerade als Ziel.

Beim Makroaufruf whlt der Benutzer Objekte fr die Parameter des
Makros. Die Musterkonstruktion wird dann mit diesen neuen Parametern
ausgefhrt. Selbstverstndlich mssen die ausgewhlten Objekte zu den
Parametern des Makros passen.

Makros knnen auch verwendet werden, um komplette Konstruktionen zu
koperieren. Man muss dazu alle Ausgangsobjekte als Parameter whlen.
Zielobjekte braucht man nicht auszuwhlen, da das Programm dann alle
konstruierbaren Objekte als Ziel nimmt. Zum Kopieren muss das Makro
dann mit den neuen Parameterobjekten laufen.

Siehe: Makroparameter

.parameter
.related target runmacro parametertypes macro hintparameter
Makroparameter

//image- images/macro1.png
Um Makros zu definieren, setzt man zunchst die Parameter fest. Dies
geschieht mit dem entsprechenden Menpunkt, oder mit dem
Makrowerkzeug in der oberen Werkzeugleiste. Die Parameter werden wie
blich mit der Maus ausgewhlt. Zum Zeichen, dass die Ausgangsobjekte
einzugeben sind, sind die Punkte links vom Pfeil im Makrowerkzeug
rot.

-> Siehe: Makroziele

.target
.related runmacro parameter definition
Makroziele

//image- images/macro2.png
Nach der Eingabe der __Makroparameter__ kann man optional Zielobjekte
auswhlen. Dazu drckt man das Makrowerkzeug nochmals, wonach die
Punkte rechts vom Pfeil rot gefrbt werden. 

Es ist zu beachten, dass in diesem Zustand nur Objekte angezeigt
werden, die aus den Parametern __konstruierbar__ sind. Werden keine
Ziele angegeben, so besteht das Makro aus allen konstruierbaren
Objekten. Sonst besteht es nur aus denjenigen Objekten, die notwendig
sind, um das Ziel aus den Parametern zu konstruieren.

Wenn Ziele definiert wurde, knnen alle Zwischenobjekte
automatisch __versteckt__ werden. Sonst werden nmlich alle Objekte
angezeigt, die auch in der Definitionskonstruktion sichtbar waren.
Soll das Makro im beschreibenden Modus verwendet werden, so ist es
ebenfalls ratsam, Zielobjekte anzugeben. Der Benutzer kann dann
nmlich den Zielobjekten beim Makroaufruf Namen zuordnen. 

-> Siehe: Makrodefinition

.definition
.related  macrobar runmacro target parameter selfreference
Makrodefinition

Beim dritten Druck auf das __Makrowerkzeug__ wird das Makro erzeugt.
Es hat stets einen Namen, der im folgenden Dialog festzulegen ist.
In diesem Dialog ist es auch mglich, einen beschreibenden Kommentar
anzugeben. Der Kommentar kann vom Benutzer aus der Auswahlbox fr
__Makros__ heraus angezeigt werden. Natrlich sollte sich der
Kommentar auf die bei den Prompts verwendeten Bezeichnungen beziehen.

//image images/Makrodefinition.jpg

Endet der Makroname mit einem Text in Klammern, so kann das Makro ein
Icon in der Zeile fr Makroicons anzeigen (Siehe: __Makrozeile__).

Die folgenden Eingabefelder (eines fr jeden Parameter) nehmen Texte
auf, die dem Benutzer des Makros angezeigt werden, wenn die Eingabe
der Parameter erwartet wird (__Makroprompts__).

Man kann Parameter auf bestimmte Objekte fixieren, indem man "=Name"
als Prompt eingibt (__Fixierte Parameter__). Wenn ein Objekt "Name"
existiert und den richtigen Typ hat, dann wird der Parameter beim
Ablauf des Makros nicht abgefragt, sondern auf das Objekt gesetzt.

Weiter kann man festlegen, ob die Konstruktionsdetails beim Ablauf des
Makros __versteckt__ werden sollen, oder ob sie sogar vollstndig
versteckt werden sollen.

Makros verstecken normalerweise Objekte, die Duplikate von schon
vorhandenen Objekten sind. Dieses Verhalten kann man allerdings
abschalten.

Schlielich ist es noch mglich, whrend des Aufrufs von Makros vom
Benutzer einen Wert abzufragen (__Werteparameter__). Dieser
Wert kann als Gre eines festen Kreises, als Gre eines festen
Winkels oder als Wert fr einen Ausdruck verwendet werden. Dazu gibt
man bei der Definition im Dialog den Namen, den der feste Kreis oder
Winkel in der Konstruktion hat, an.

Beim Aufruf wird eine Dialogbox erscheinen, in der der Benutzer einen
Wert eingeben kann. Der Kreis, der Winkel oder der Ausdruck wird dann
mit diesem Wert erzeugt. Der eingegebene Wert kann ein beliebiger
arithmetischer Ausdruck sein. Als Eingabeprompt wird der Name des
Objekts verwendet. Es knnen auch mehrere Eingaben gefordert werden.
Die Namen der entsprechenden Objekte werden durch Komma getrennt.

Makros knnen in __Unterordner__ organisiert werden. Dazu stellt man
dem Namen den Unterordner wie in "Unterordner/Name" voran. Die
Unterordner knnen geschachtelt werden.

-> Siehe: Selbstreferenz, Versteckte Parameter, Makrozeile

.macrobar
.related macro
Makrozeile

Auf Wunsch kann eine Zeile mit Icons fr Makros angezeigt werden.
Dafr gibt es einen Schalter im Men des Programms, und in __Applets__
wird die Zeile durch den Parameter "macrobar" in "options"
angeschaltet. Im Programm kann eingestellt werden, ob die
__Defaultmakros__ in der Makrozeile angezeigt werden sollen oder
nicht.

Makros werden nur mit einem Icon versehen, wenn ihr Name mit einem
Text in Klammern endet. In diesem Fall wird der Text als Beschriftung
des Icons verwendet, oder, wenn vorhanden, wird eine PNG-Datei mit
diesem Namen geladen. Die Datei muss sich in dem Unterordner "icons"
des Startordners befinden. Die Grafik sollte 32x32 Punkte gro sein.
Wenn sie einen transparenten Hintergrund hat, sollte das Antialiasing
fr einen dunkelgrauen Hintergrund optimiert werden.

Im Dateiarchiv von Z.u.L. befinden sich eine Reihe von ntzlichen
Icons, die fr Makros verwendet werden knnen. Sie werden einfach
durch eine Zahl in Klammern am Ende des Makronamens angesprochen.

//image- icons/1.png
1 - Mittelsenkrechte

//image- icons/2.png
2 - Lot

//image- icons/3.png
3 - Inkreis

//image- icons/4.png
4 - Umkreis

//image- icons/5.png
5 - Geradenspiegelung

//image- icons/6.png
6 - Spiegelung am Kreis

//image- icons/7.png
7 - Spiegelung am Punkt

//image- icons/8.png
8 - Winkelhalbierende

//image- icons/9.png
9 - Winkelhalbierende als Strahl

//image- icons/10.png
10 - Drehung

//image- icons/11.png
11 - Drehung um Winkel

//image- icons/12.png
12 - Verschiebung

//image- icons/13.png
13 - Punkt

//image- icons/14.png
14 - Winkel

//image- icons/15.png
15 - Polygon

//image- icons/16.png
16 - Vektor

//image- icons/17.png
17 - Punkt auf Gerade

//image- icons/18.png
18 - Bogen

//image- icons/19.png
19 - Kreis

//image- icons/20.png
20 - Kreis abtragen

//image- icons/21.png
21 - Fester Winkel

//image- icons/22.png
22 - Fester Kreis

//image- icons/23.png
23 - Feste Strecke

//image- icons/24.png
24 - Funktion

//image- icons/25.png
25 - Koordiantenachsen

//image- icons/26.png
26 - Schnitt

//image- icons/27.png
27 - Gerade

//image- icons/28.png
28 - Mitte

//image- icons/29.png
29 - Parallele

//image- icons/30.png
30 - Kegelschnitt

//image- icons/31.png
31 - Strahl

//image- icons/32.png
32 - Strecke

//image- icons/33.png
33 - Lot

//image- icons/34.png
34 - Dreieck

.hintparameter
.related definition parameter
Versteckte Parameter

Damit auch Punkte als __Makroparameter__ eingegeben werden knnen, die
nur zur Orientierung dienen, ist es mglich, Punkte, die whrend des
Ablaufs des Makros bei der Parameterauswahl neu erzeugt wurden, sofort
wieder zu verstecken. Dazu muss bei der Definition des Makros der
entsprechende Parameter den versteckten Status haben
(__versteckteParameter__).

Damit kann man __Hinweispunkte__ setzen lassen. Ein Beispiel wre ein
Makro, das ein gleichseitiges Dreieck auf einer Strecke erzeugen soll,
und zwar auf derjenigen Seite der Strecke, die der Benutzer anklickt.
Fr die Definition des Winkels muss dann ein Ausdruck der Form
"if(a>0,60,-60)" verwendet werden.

.selectmacro
.related runmacro macro
Makroauswahl

//image- images/runmacro.png
Makros erscheinen in diesem Dialog in einer Liste (__Makroliste__).
Ein einzelnes Makro kann durch Doppelklick ausgewhlt werden. Falls
der Dialog die Auswahl mehrere Makros erlaubt, so markiert man mehrere
Makros und besttigt die Auswahl. Makros knnen auch aufgerufen
werden, indem mit der rechten Maustaste auf einer leeren Stelle der
Konstruktion die Makroliste aufgerufen wird.

//image images/Makroauswahl.jpg

Makros knnen in Unterordner organisiert sein. In diesem Fall werden
die Unterordner durch Doppelklick ausgewhlt. Um zum Oberordner zurck
zu kehren, klickt man auf "..". Die Auswahl eines Unterordners whlt
alle Makros in diesem Ordner und seien Unterordnern aus.

Um ein Makro in einen __Unterordner__ zu verschieben, benennt man es
um. Der Unterordner wird wie in "Unterordner/Makro" dem Makronamen
voran gestellt.

.runmacro
.related parameter parametertypes mouse expressionsyntax fixparameters selectmacro
Makros Aufrufen

//image- images/runmacro.png
Makros werden mit dem __Makrowerkzeug__ gestartet. Das Makro muss aus
der Liste der vorhanden Makros ausgewhlt werden. Wird beim Starten
des Werkzeugs die __Umschalttaste__ gedrckt, so wird einfach das
vorherige Makro nochmals gestartet. Auerdem knnen Makros mit der
rechten Maustaste an einer leeren Stelle aufgerufen werden. Es
erscheint ein Popup-Men mit einer Liste der vorhandenen Makros.

Nach dem Start des Makros erscheint in der __Statuszeile__ der
festgelegte Text fr jeden Parameter hinter dem Makronamen, dem Typ
des Parameters und seiner Nummer.

Falls in Klammern "Leertaste whlt ..." steht, so kann man fr diesen
Parameter mit der __Leertaste__ denselben Punkt auswhlen, wie bei dem
letzten Makroaufruf. Dies vereinfacht den mehrfachen Aufruf von Makros
mit vielen Parametern erheblich.

Wenn alle Parameter ausgewhlt sind, so wird das Makro ausgefhrt.
Falls das Makro einen __Werteparameter__ hat, so erscheint eine
Dialogbox, die diesen Wert abfragt. Es kann dann jeder gltige
arithmetische Ausdruck verwendet werden.

.fixparameters
.related runmacro parameter
Fixierte Parameter

Beim Ablauf des __Makros__ besteht die Mglichkeit, eine Kopie des
Makros zu erzeugen, bei der aber gewisse Parameter immer automatisch
gewhlt werden. Dazu drckt man die Umschalttaste whrend der Wahl
eines Parameters. Nach dem Beenden der Parameterauswahl erzeugt das
Programm ein weiteres Makro, bei dem die entsprechenden Parameter fest
aus der Konstruktion entnommen werden.

Werden solche Makros in Konstruktionen verwendet, in denen die
entsprechenden Objekte nicht existieren, oder werden die Objekte
gelscht, so wird wieder zur Eingabe der nicht existierenden Parameter
aufgefordert. Ihre Bindung wird sofort aufgelst.

brigens knnen __fixierte Parameter__ auch gleich bei der
Makrodefinition erzeugt werden, indem als Prompt "=Objektname"
eingegeben wird.

.parametertypes
.related parameter
Typen von Parametern

Im allgemeinen ist es am gnstigsten, __PunktealsParameter__
auszuwhlen. Allerdings sind auch Kreise und Geraden mglich. Bei
Strecken, Geraden aus zwei Punkten (also nicht Parallelen, festen
Winkeln und Senkrechten) werden die Endpunkte der Strecke zu
sekundren Parametern, wenn sie zur Konstruktion der Zielobjekte
notwendig sind. Falls dies der Fall ist, muss der Benutzer dann auch
beim Makroaufruf ein Objekt gleichen Typs whlen. Falls die Gerade
ohne ihre Definitionspunkte verwendet wird, so kann er beliebige
Geraden whlen. Bei Kreisen wird immer der Mittelpunkt sekundrer
Parameter.

__Sekundrparameter__ werden natrlich dann auch beim Lauf des Makros
zugeordnet. Es ist dabei wichtig zu beachten, dass die
Sekundrparameter in der gleichen Konfiguration vorliegen mssen, wenn
das Makro aufgerufen wird. So mssen etwa konzentrische Kreise als
Parameter wieder konzentrisch sein. Falls die Strecken AB und BC als
Parameter verwendet werden, mssen beim Aufruf Strecken EF und FG
angeben werden. Wegen dieser Komplikationen sollte man in diesem Fall
eher Punkte als Parameter nehmen.

Als Beispiel kann man eine Mittelsenkrechte in Abhngigkeit von einer
Strecke durch ein Makro konstruieren lassen.

.defaultmacros
.related runmacro save
Defaultmakros

Beim Start ldt Z.u.L. alle Makros aus der Datei ".de_default.mcr",
wenn diese Datei im aktuellen Verzeichnis gefunden wird
(_Defaultmakros__). Die geladenen Makros sind geschtzt. D.h., sie
werden nicht mit Konstruktionen abgespeichert und auch nicht beim
Laden von Konstruktionen gelscht.

Um Defaultmakros zu lschen, muss man den Menpunkte aus dem
Makromen whlen und dort alle Makros auswhlen.

Wenn man die Datei mit den Defaultmakros erweitern will, so speichert
man die Defaultmakros in eine Datei ".de_default.mcr" ins
Startverzeichnis von Z.u.L. Normalerweise ist diese Datei im
Programmarchiv eingebunden, eine existierende Datei wird aber
vorgezogen.

.macroerrors
.related macro
Objekt wird benutzt, ist aber nicht im Makro

Diese Warnung erscheint, wenn ein Objekt, das im Makro enthalten ist,
sich auf ein Objekt bezieht, das nicht im Makro enthalten ist. Die
hufigste Ursache sind __Namensreferenzen__ vom Typ __@...__ in
Ausdrcken, zum Beispiel fr die __bedingte Formatierung__. Die
Objekte sind trotz dieses Bezugs konstuierbar. Ignoriert man die
Warnung, so beziehen sich die Objekte, die beim Makroaufruf erzeugt
werden, auf Objekte mit gleichem Namen, sofern solche Objekte in der
Konstruktion vorhanden sind.

Ein anderer loser Bezug sind die Grenzen von Kreisbgen. Da diese
Grenzen meist vom Kreis abhngen, hngt der Kreisbogen nicht von seinen
Grenzen ab, um Verwirrung zu vermeiden. Ein drittes Beispiel ist das
Zentrum von __gefllt__en Polygonen.

Um die Warnung zu vermeiden, muss man lediglich die Objekte als
__Makroparameter__ in das Makro aufnehmen.

.iterate
.related macro runmacro
Makros Iterieren

Wenn ein Makro nur von einem Parameterpunkt abhngt und mindestens
einen Punkt als Ziel hat, kann es iteriert angewendet werden. Dabei
wird in jedem Schritt das produzierte Ziel als neuer Parameter
genommen. Die Anzahl der Schritte kann beliebig angegeben werden
(Vosicht!). Statt eines Punktes kann ein beliebiges Parameterobjekt
verwendet werden, wenn ein Zielobjekt erzeugt wird, dass damit
kompatibel ist.

Falls ein Makro von anderen Objekten abhngen muss, so muss man diese
Parameter fixieren, indem man "=" vor den Prompt stellt.

Eine Anwendung von Iteration ist etwa die einfache Iteration, bei der
jeder Punkt ber Ausdrcke vom vorherigen Punkt abhngt. Man muss
lediglich sicher stellen, dass andere Parameter fixiert sind. Um eine
Funktionenschar zu erstellen, verwendet man Ausdrcke, die vom
vorherigen Ausdruck abhngen und dessen Wert etwa um 1 erhhen. Von
diesen Ausdrcken hngen die Funktionen als Zielobjekte ab.

.htmlexport
.related htmlexporttemplate save runningdemo comment exportdialog exportjob
HTML-Export

Konstruktionen oder Aufgaben lassen sich als Applet in eine HTML-Seite
einbinden. Damit man den HTML-Code fr dieses Applet nicht selbst
eingeben muss, gibt es die Mglichkeit, diese Seite automatisch von
Z.u.L. erzeugen zu lassen. Vor dem __HTML-Export__ muss man die
Konstruktion in eine Datei speichern.

//image images/HTMLExport

__Ortslinien__ und __Animationen__ werden im Applet nach dem Laden der
Konstruktion automatisch erzeugt, wenn sie zur Zeit des Abspeicherns
der Konstruktion sichtbar waren (genau wie sonst beim Laden einer
Konstruktion).

Nach dem Bearbeiten des Dialogs wird eine Dateiauswahl angezeigt
mit der man die HTML-Datei erstellen kann. Falls eine __Lsungsseite__
fr eine Aufgabe erstellt werden soll, so wird eine zweite
Dateiauswahl angezeigt.

Nachdem die HTML-Dateien erstellt wurden und lokal getestet sind,
mssen folgende Dateien auf den __Web-Server__ publiziert werden:

 - Die HTML Datei, die das Applet enthlt. 
 - Eine eventuell vorhandene HTML-Lsungsdatei. 
 - Eventuell Style-Sheets, falls CSS-Dateien verwendet werden. 
 - Das Applet-Archiv __zirkel.jar__. 
 - Die Konstruktion, bzw. die Aufgabe. 
 - Eventuell das Hintergrundbild.

.htmlexporttemplate
.related htmlexport save comment settings
HTML Export mit Vorlagen

Mit Hilfe von __Vorlagen__ lassen sich beim __HTML-Export__ auf
einfache Weise persnlich angepasste Webseiten mit Konstruktionen
erzeugen. Die Vorlage enthlt alle ntigen Informationen,
einschlielich Appletgre, Seitenfarben und Appletfarben, CSS-Dateien
und Applet-Archiv. Daher ist der Dialog zur Erzeugung wesentlich
krzer.

//image images/HTMLTemplate

Im Exportdialog ist fr Codebase der Pfad von der HTML-Datei zu
zirkel.jar einzusetzen, also "..", wenn die Datei im Verzeichnis
darber liegt. Die Konstruktionsdatei muss relativ zu zirkel.jar
angegeben werden, also etwa "verzeichnis/datei.zir".

Einige Vorlagen sind in der Dokumentation enthalten. Der Benutzer kann
aus diesen Dateien leicht eigene Vorlagen erstellen. Vorlagen sind im
Prinzip HTML-Dateien mit Platzhaltern. Alle Platzhalter beginnen mit
"". Vorlagendateien sollten die Erweiterung "*.template" bekommen.

Mance Vorlagen verlangen mehrere Abschnitte in der
Konstruktionsbeschreibung. Die Abschnitte werden durch eine Zeile "~"
voneinander getrennt.

Besonderes Augenmerk muss auf die Umlaute der deutschen Sprache in
HTML-Dateien gerichtet werden. Es gibt hier mehrere Mglichkeiten.
Das Programm untersttzt UTF-8 und exportiert auch Webseiten in diesem
Encoding. Solche Vorlagen lassen sich im HTML-Editor von Mozilla oder
in Frontpage ffnen und bearbeiten, oder auch in einen UTF-8 Editor
wie JE (vom selben Autor wie Z.u.L.). Alternativ kann UTF-8
in den speziellen Einstellungen abgestellt werden. Man sollte dann
allerdings Umlaute mit &auml; etc. kodieren. Dies gilt auch fr den
Konstruktionskommentar, wenn er in die HTML-Seite exportiert werden
soll.

Die folgenden Platzhalter sind implementiert.

#title
  Wird durch den Titel aus dem Exportdialog ersetzt.

#comment1,#comment2,...
  Wird durch den entsprechenden Abschnitt des Konstruktionskommentars
ersetzt. Der Konstruktionskommentar wird durch Zeilen mit "~" in
Abschnitte unterteilt. Jeder Paragraph eines Abschnittes wird in
<p>...</p> eingeschlossen.
  
#comment
  Wie #comment1,... Jedoch wird immer der ganze Kommentar verwendet.

#text1,#text2,...
  Wie #comment1,... Jedoch wird kein <p>...</p> erzeugt. Diese und
alle anderen HTML-Kommandos mssen in die Konstruktionsbeschreibung
eingegeben werden.

#text
  Wie #texte1,... aber ohne Abschnitte.

#parameter
  Fgt die ntigen Parameter fr Applets ein.

#color
  Fgt zustzlich Parameter fr eventuell genderte Farben ein.

#font
  Fgt zustzlich Parameter fr Fonts ein.

#codebase
  Fgt die Codebase aus dem Exportdialog ein.

Hier ist ein sehr einfaches Beispiel fr eine Vorlage.

  <!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 exportjob
Exporteinstellungen

Seitentitel: Dies ist die berschrift, die die Seite bekommt. Die
berschrift wird im HTML-Stil <H1> ber das Applet gesetzt. Das Applet
befindet sich zentriert darunter.

CSS Stil-Datei: CSS (Cascading Style Sheets) sind ntzlich, um
mehreren Internet-Seiten dasselbe Aussehen zu geben. Wenn man keine
CSS-Datei verwendet, lsst man das Feld einfach offen.

Die CSS-Datei muss relativ zu der HMTL-Datei angegeben werden, wobei
das Unix-Format mit der Verzeichnistrennung "/" verwendet werden muss.
Wenn sich die Datei im bergeordneten Verzeichnis befindet, kann man
einen Pfad relativ zur HTML-Seite verwenden.

Breite, Hhe: Betrifft die Breite und Hhe des Applets.

Konstruktionsdatei: Der Name der Datei, in der die Konstruktion
gespeichert ist. Im Allgemeinen wird diese Datei im selben Verzeichnis
liegen wie die HTML-Datei. Es ist aber auch mglich, relative Pfade im
UNIX-Stil anzugeben (etwa "../test.zir"), allerdings keine absoluten
URLs. Die Konstruktionsdatei muss relativ zur Datei zirkel.jar
angegeben werden.

Zirkel-Archiv: Das Programmarchiv. Es findet sich in der
Z.u.L.-Installation. Die Datei heit zirkel.jar und wird am
einfachsten in dasselbe Verzeichnis gestellt wie die HTML-Datei. Es
ist aber auch mglich, relative Pfade anzugeben. 

Farbe - Fr Hintergrund - Fr Applet: Das Feld zeigt eine Farbe an,
die man mit dem Knopf "Farbe Whlen" einstellen kann. Es kann gewhlt
werden, ob diese Farbe auch als __Hintergrund__ fr die HTML-Seite
eingestellt werden soll. Auerdem kann gewhlt werden, ob diese Farbe
als Hintergrund fr die Konstruktion, die Icons und die Statuszeile
verwendet werden soll.

Falls Ihr Applet keinen Rand hat (eingebetteter Stil), so sollte
natrlich die gleich Farbe fr Hintergrund und Applet gewhlt werden.

Bildhintergrund: Falls die Konstruktion vor einem __Hintergrundbild__
dargestellt wird, der von einer Datei geladen wurde, und falls dieser
Hintergrund der Fenstergre entspricht, so wird ein Verweis auf das
Bild gespeichert. Auerdem ist die Applet-Gre auf die Bildgre
fixiert.

Man publiziert in diesem Fall das Bild an die Stelle, wo sich
das Archiv "__zirkel.jar__" befindet, oder ndert den Verweis zum Bild
im HTML-Text. 

__Applet-Stil__: Hier hat man folgende Auswahl

- Eingebettet: Das bedeutet, dass das Applet ohne Rand in die Seite
eingebettet wird. Dazu sollte man die Seitenfarbe gleich der
Applet-Farbe whlen. Man kann nichts konstruieren, sondern nur die
versteckten Objekte anzeigen (rechte Maustaste). 

- Rand: In diesem Falle enthlt man einen dreidimensionalen
Effektrahmen, der die Konstruktion umgibt. 

- Rand und Icons: Dies ist schon fr Konstruktionen geeignet. Es wird
ber dem Konstruktionsfenster eine Icon-Zeile angezeigt, wobei die
angezeigten Icons einstellbar sind. 

- Rand, Icons und Status: Dann erscheint zustzlich eine Statuszeile
unter der Konstruktion. Verzichtet man darauf, so erscheint der Text
immer noch in der Statuszeile des Browsers. 

- Wiedergabe mit Haltepunkten: Dies zeigt unter der Konstruktion Tasten
an. Der Benutzer kann damit durch die Konstruktion von Haltepunkt zu
Haltepunkt navigieren. Es mssen dazu natrlich Haltepunkte definiert
sein. 
 
Zeige __Kommentar__: Wenn dieses Kstchen aktiviert ist, wird der
Kommentar der Konstruktion unter dem Applet angezeigt.

Falls hierbei deutsche Umlaute verwendet werden, so wird auch das
funktionieren. Dies liegt daran, dass der Kommentar in der
internationalen Kodierung (__UTF-8__) oder in der Windows-Kodierung
gespeichert wird, und die jeweilige Kodierung korrekt in der
HTML-Seite eingestellt ist. Einige HTML-Editoren
kommen mit UTF-8 nicht zurecht. Wenn man die Seite also in
einem solchen Editor nachbearbeiten will, so empfiehlt es sich, die
Windows-Kodierung ISO-8869-1 einzustellen, indem UTF in den
"speziellen Optionen" abgeschaltet wird. Alle Browser sollten diese
genormte Kodierung korrekt darstellen knnen.

__Farben__: Falls eigene Farben definiert wurden
(Konstruktionselemente und Hintergrund), so kann ausgewhlt werden, ob
das Applet diese ebenfalls verwenden soll. Die Hintergrundfarbe
betrifft nur den Hintergrund der Konstruktion, der damit verschieden
vom Hintergrund der brigen Teile des Applets und von dem Hintergrund
der Seite sein kann.

__Kommentar__: Es kann auerdem eingestellt werden, ob der Kommentar
in die Seite eingebettet werden soll, oder nicht.

__Popup__: Damit wird das Popupfenster verhindert.

__Zoom__: Damit wird eingestellt, ob der Benutzer mit der Maus das
Fenster bewegen, oder mit dem Mausrad zoomen kann.

__Eingeschrnkte Bewegung__: Eine Spezialoption, die verhindert, dass
Puntke beim Bewegen ungltig werden. Das funktioniert so hnlich wie
beim automatischen Ortslinienwerkzeug. Sollte normalerweise
ausgeschaltet sein.

Werkzeugauswahl und Optionsauswahl: Hier werden fr Applets mit
__Werkzeugleiste__ die Icons ausgewhlt, die erscheinen sollen. Im
Allgemeinen will man fr einfache Konstruktionen nicht den vollen Satz
an Werkzeugen zur Verfgung stellen. In jedem Fall sollte man aber das
Rckschritt-Icon vorsehen, damit der Benutzer nicht darauf angewiesen
ist, das Tastaturkrzel zu erraten. Auch die Farbauswahl erleichtert
ihm die bersicht ber die Konstruktion.

Der Benutzer kann immer nur diejenigen Werkzeuge verwenden, die ihm zur
Verfgung gestellt werden.

Fr Spezialflle ist es sinnvoll, nur das __Makrowerkzeug__ zur
Verfgung zu stellen, oder das Makrowerkzeug mit einem Editor in der
HTML-Datei an die erste Stelle der Werkzeuge zu verschieben. Wenn dann
nur ein Makro in der Konstruktion enthalten ist, wird dieses Makro zu
Beginn als Werkzeug ausgewhlt. Die __Defaultmakros__ werden in
Applets nicht geladen.

Im beschreibenden Modus helfen die Icons dem Benutzer bei der Syntax
der Eingabe. Man sollte daher diejenigen Konstruktionswerkzeuge
vorsehen, die der Benutzer brauchen wird. Allerdings funktionieren in
diesem Modus auch alle anderen Konstruktionswerkzeuge.

Man beachte auch, dass bei einer Konstruktion die __versteckt__en
Objekte am Anfang angezeigt werden, wenn dies im Moment des
Exportierens auch schon im Z.u.L.-Programm der Fall war.

.exportjob
.related htmlexport exportdialog comment
Aufgaben Exportieren

Aufgabe: Dies dient dazu, __Aufgaben__ als normale Konstruktionen zu
speichern. Bei echten Aufgaben muss dieses Feld aktiviert sein.

__Lsungsdatei__ - Springe zur Lsung - Lsungsdatei Speichern - Link
zur Lsung: Diese drei Einstellungen automatisieren das Erstellen
einer Lsungsdatei. Die Lsungsdatei ist eine HTML-Datei, auf der die
Lsung dargestellt sein sollte. Sie kann angesprungen werden, sobald
der Benutzer die Aufgabe gelst hat. Alternativ oder zugleich kann ein
Link unter das Applet gesetzt werden, der auf die Lsungsseite
verweist.

Der HTML-Export kann die Lsungsseite automatisch erzeugen
(Lsungsseite Speichern). Dabei wird die Aufgabe als normale
Konstruktion verwendet. Es wird eine zweite HTML-Seite erzeugt mit dem
angegebenen Namen. Die Lsung wird immer in dem Applet-Stil "Rand",
also ohne Konstruktionswerkzeuge, dargestellt.

__Kommentar__: In diesem Fall wird der Aufgabenkommentar, der
normalerweise die gestellte Aufgabe beschreibt, verwendet. Auf der
Lsungsseite wird der normale Kommentar verwendet, falls diese Seite
erstellt wird.

.runningdemo
.related htmlexport online
Laufende Demo

Es ist mglich eine Folge von Konstruktionen auf einer Webseite in
einem vorgegebenen Rhythmus abzuspielen (__laufende Demo__). Ein
Beispiel findet man auf den Demo-Seiten. Einen automatischen Export
gibt es hier nicht.

Der Code fr das Applet sieht in diesem Fall so aus.

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

Die Datei "demo.xml" enthlt die Liste der Konstruktionen und deren
Beschreibung, wie sie in der Statuszeile des Applets auftaucht. Ein
Beispiel fr die einfache Syntax ist

 <?xml version="1.0" encoding="utf-8"?>
 <Demo delay="30">
 <File name="Uhr.zir" delay="20">Uhrwerk</File>
 <File name="Cindarella-Maschine.zir">Cindarella-Maschine</File>
   ...
 </Demo>
 
.visual
.related expressionsyntax descriptivefiles runmacro
Beschreibende Konstruktionen

//image- images/visual.png
In diesem Modus werden die Konstruktionsschritte in einer Eingabezeile
unterhalb des Konstruktionsfensters eingegeben (__nicht-visueller
Modus__). Die Werkzeugleiste bleibt zwar erhalten, aber die Werkzeuge
funktionieren anders.

Das Anklicken eines Werkzeugs fhrt jetzt dazu, dass eine Vorgabe in
die Eingabezeile geschrieben wird, die allerdings noch bearbeitet
werden muss. Auerdem knnen die notwendigen
__Konstruktionsparameter__ nicht mehr am Schirm ausgewhlt werden,
sondern mssen per Namen in die Parameter des Konstruktionsschrittes
eingetragen werden. Der Name des Konstruktionsergebnisses kann in der
Eingabezeile festgelegt werden. Die Konstruktion kommt dadurch
zustande, dass in der Eingabezeile die Eingabetaste (Return) gedrckt
wird. Natrlich ist es nun notwendig, eine gewisse Syntax einzuhalten.
Die allgemeine Form eines Konstruktionsschrittes ist.

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

Diese __Syntax__ wird durchgngig eingehalten. Der Name kann fehlen.
Dann wird ein Name vom Programm vergeben. brigens werden im
nicht-visuellen Modus normalerweise alle konstruierten Objekte mit
Namen angezeigt.

Die folgende Liste gibt einen berblick ber die recht einfache Syntax
der Funktionen. Anstatt der deutschen Lang- oder Kurzform kann auch
die englische Alternative verwendet werden. Bei den Langformen spielt
Gro- oder Kleinschreibung keine Rolle.

Wenn in den Beispielen eine feste Gre verlangt wird, kann ein
beliebiger Ausdruck verwendet werden. 

Wenn ein Punkt verlangt wird, so knnen auch die Funktionen c(k),
a(s), b(s) verwendet werden. Dabei steht c(k) fr den Mittelpunkt
eines Kreises, a(s) und b(s) fr die beiden Punkte, die Strecken,
Geraden und Strahlen definieren. 

Beispiel 
 Langform 
 Alternative 
 Beschreibung 
 
A=P() 
 Punkt 
 point 
 Erzeugt einen Punkt, der zufllig irgendwo am Bildschirm erscheint. 
 
A=P(0,1) 
 Punkt 
 Erzeugt einen Punkt, der in (0,1) fixiert ist. 
 
a=s(B,C) 
 Strecke 
 segment 
 Erzeugt die Strecke von B nach C. 
 
a=s(B,2) 
 Erzeugt eine Strecke von B nach rechts, die auf die Lnge 2 fixiert
ist. Dabei entsteht ein weiterer Punkt. 
 
a=g(B,C) 
 Gerade 
 line 
 Erzeugt die Gerade durch B und C. 
 
a=r(B,C) 
 Strahl 
 ray 
 Erzeugt den Strahl von B aus durch C. 
 
k=k(A,B) 
 Kreis 
 circle 
 Erzeugt den Kreis um A durch B. 
 
k=k(A,2) 
 Erzeugt einen Kreis, dessen Radius auf 2 fixiert ist. Wieder kann 2
irgend ein Ausdruck sein. Ein Spezialfall ist es, wenn statt 2 die
Lnge einer Strecke verwendet wird. 
 
k=k(A,B,C) 
 Erzeugt einen Kreis um A mit Radius BC. 
 
A=S(g,g) 
 Schnitt 
 intersection 
 Erzeugt den Schnitt zweier Geraden. 
 
A,B=S(k,k) 
 Erzeugt die beiden Schnitte von Kreisen, oder von Kreisen mit
Geraden. Es kann auch nur ein oder kein Name angegeben werden. 
 
versch(A,P) 
 Verschieden 
 away 
 Der Schnitt A soll verschieden vom Punkt P sein. 
 
nahe(A,P) 
 Nahe 
 close 
 Der Schnitt A soll mglichst nahe beim Punkt P sein. 
 
M=M(A,B) 
 Mitte 
 midpoint 
 Erzeugt den Mittelpunkt von AB. 
 
g=p(g,A) 
 Parallele 
 parallel 
 Erzeugt die Parallele zu g durch A. 
 
g=l(g,A) 
 Lot 
 plumb 
 Erzeugt das Lot zu g durch A. 
 
a=w(A,B,C) 
 Winkel 
 angle 
 Erzeugt den Winkel ABC (Scheitel in B). 
 
a=w(A,B,90) 
 Erzeugt einen 90-Grad Winkel an ABC. Statt 90 kann wie immer jeder
Ausdruck verwendet werden. 
 
A=A(A,B,C) 
 Polygon 
 polygon 
 Erzeugt ein geflltes Vieleck mit diesen Ecken. 
 
wert(P,0,1) 
 Wert 
 value 
 Fixiert den Punkt nach (0,1). 
 
wert(s,2) 
   Fixiert die Strecke auf die Lnge 2. 
 
wert(k,2) 
   Fixiert den Radius des Kreises auf 2. 
 
wert(w,90) 
   Fixiert den Winkel auf 90 Grad. 
 
wert(o) 
wert(wahr,o) 
   Stellt die Wertanzeige fr das Objekt an und aus. 
 
wert(wahr) 
   Stellt die Defaultanzeige fr Werte ein und aus. 
 
name(o,p) 
 Name 
 name 
 Setzt den Namen des Objektes o auf p. 
 
name(o) 
name(wahr,o) 
 Stellt die Namensanzeige fr das Objekt an und aus. 
 
name(wahr) 
 Stellt die Defaultanzeige fr Namen ein und aus. 
 
v(o) 
v(wahr,o) 
 Verstecken 
 hide 
 Versteckt das Objekt und zeigt es wieder an. 
 
v(wahr) 
 Stellt den Defaultwert fr das Verstecken von Objekten ein und aus. 
 
farbe(grn,o) 
 Farbe 
 color 
 Frbt das Objekt mit einer der Farben Schwarz, Blau, Grn, Braun (black, blue, green, brown) 
 
farbe(grn) 
 Stellt die Farbe als Defaultfarbe ein. 
 
dicke(dick,o) 
 Dicke 
 thickness 
 Stellt die Darstellung des Objekts auf Dick, Normal oder Dnn (thick, normal, thin).
 
dicke(dick) 
   Stellt die Defaultdicke ein. 
 
typ(quadrat,P) 
 Typ 
 type 
 Stellt die Darstellung des Punktes P auf Quadrat, Raute, Kreis oder Punkt (square, diamond, circle, point) 
 
typ(quadrat) 
 Stellt die Defaultpunktdarstellung ein. 
 
partiell(k) 
partiell(wahr,k) 
 Partiell 
 partial 
 Stellt die partielle Darstellung des Objekts k an oder aus. 
 
partiell(wahr) 
 Stellt die Defaultdarstellung um. 
 
voll(o) 
voll(true,o) 
 Voll 
 fill 
 Stellt das Objekt o auf __gefllt__e oder nicht gefllte Darstellung.
 
zur(o) 
zur(true,o) 
 Zurck 
 back 
 Stellt das Objekt in den Hintergrund oder nicht. 
 
fenster(0,0,5) 
 Fenster 
 window 
 Stellt das Sichtfenster auf das Zentrum (0,0) und die Breite 2*5. 

stumpf(a)
stumpf(true,a)
 obtuse
 Stellt fr Winkel ein, dass sie grer als 180 Grad werden knnen.

solid(a)
solid(true,a)
 Solid
 Macht das Objekt undurchsuchtig.

Beschrnkt(c,A,B)
 restrict
 Schrnkt die Darstellung des Kreises c auf den Bogen AB ein.

gltig(o)
gltig(true,o)
 valid
 Entfernt die Einschrnkungen von Loten und Schnitten, damit sie nicht
 ungltig werden, wenn sie auerhalb von Strecken und Bgen liegen.

name(A,B)
 rename
 Nenne das Objekt A in B um.

Auch __Makros__ knnen verwendet werden. Der Funktionsname ist in
diesem Fall der Makroname. Namen knnen nur an die angegebene
Makro-Zielobjekte vergeben werden. Es ist deswegen gnstig, bei der
Definition von Makros immer die wesentlichen Ziele anzugeben.

Bei Makros, die einen Prompt zur Greneinstellung eines Objektes
enthalten, kann diese Gre als __zustzlicher Parameter__ angegeben
werden.

.descriptivefiles run
.related visual save
Beschreibende Konstruktionen in Dateien

Damit ist es mglich, Konstruktionen in der __beschreibend__en Form in
eine Datei zu schreiben. Auerdem kann die Datei __Makrodefinition__en
enthalten, die sich auch gegenseitig aufrufen drfen. Damit entsteht
eine einfache Programmiersprache fr Konstruktionen. Solche
Konstruktionen lassen sich direkt laden (wenn sie etwa in einem
externen Editor erstellt wurden), oder vor dem Laden bearbeiten.

Diese __Konstruktionsbeschreibungen__ sehen wie normale Konstruktionen
aus. Sie knnen Kommentare enthalten die mit "//" eingeleitet werden
und fr den Rest der Zeile gelten. Die verwendete Sprache ist
zeilenorientiert. Jeder Konstruktionsschritt nimmt genau eine Zeile
ein.

Auerdem knnen sie Makros enthalten, die auch andere Makros aufrufen
knnen. Ein typisches Beispiel ist

 Makro U 
 // Kreis durch drei Punkte
    Parameter A=P // Erster Punkt
    Parameter B=P // Zweiter Punkt
    Parameter C=P // Dritter Punkt
    g1=MS(A,B)
    g2=MS(A,C)
    U=S(g1,g2)
    Ziel k=k(U,A)
 Ende

Die Einrckungen sind hier optional. Die Kommentarzeilen am Anfang
werden als Makrokommentar gespeichert. Parameterpunkte sind mit dem
Schlsselwort Parameter (oder Param) gekennzeichnet, und Ziele mit dem
Schlsselwort Target (oder Ziel). Der Prompt fr diese Parameter ist
der evtl. vorhandene Einzeilenkommentar nach dem Parameter.

Das Makro im obigen Beispiel ruft das Makro MS auf, das die
Mittelsenkrechte zwischen zwei Punkte konstruiert. Das Makro knnte
etwa so aussehen.

 Makro MS
 // Mittelsenkrechte
	Param A=punkt
	Param B=punkt
	partiell(wahr)
	k1=kreis(A,B)
	k2=kreis(B,A)
	partiell(falsch)
	P1,P2=schnitt(k1,k2)
	Ziel g=gerade(P1,P2)
 Ende

Da MS ein Zielobjekt hat (die Mittelsenkrechte), kann im Aufruf
g1=MS(A,B) diesem Ziel ein Name zugewiesen werden. Ziele mssen
separat definiert werden, wenn in einer Zeile mehr als ein Objekt
entsteht.

 A,B=schnitt(g,h)
 Ziel B

Ein Makro kann mehrere Ziele haben, die dann aber auch alle beim
Aufruf zugewiesen werden mssen.

 A,B=test(...)

Prompts sind ebenfalls mglich. Dazu wird das Schlsselwort __Prompt__
verwendet. Wie bei der normalen Definition von Makros wird der
Benutzer beim Aufruf des Makros nach dem Wert dieses Objekts gefragt,
oder beim beschreibenden Aufruf wird der Wert von einem zustzlichen
Parameter gelesen. Das Objekt muss ein fixiertes Objekt sein.

Man beachte bei Makrodefinitionen, dass nur diejenigen Objekte
konstruiert werden, die tatschlich aus den Parametern konstruierbar
sind. Andere Konstruktionsschritte werden nicht ausgefhrt.

Verwendet man Kreise oder Geraden als Parameter, so mssen die
Elternobjekte vorher definiert sein. Die Mittelsenkrechte knnte dann
auch von einer Strecke abhngen.

 Makro MS
 // Mittelsenkrechte
	A=punkt
	B=punkt
    Parameter s=strecke(A,B)
	partiell(wahr)
	k1=kreis(A,B)
	k2=kreis(B,A)
	partiell(falsch)
	P1,P2=schnitt(k1,k2)
	Ziel g=gerade(P1,P2)
 Ende

Falls __Kreise__ als Parameter verwendet werden, so kann man die
spezielle Syntax

 A=Punkt
 Parameter k=Kreis(A)
 
verwenden. Diese Art von Kreisen macht nur als Parameter in Makros Sinn. 

Es gibt das spezielle Kommando "sichtbar" (showall), das alle
Zwischenobjekte des Makros sichtbar macht. Im Gegensatz dazu versteckt
"unsichtbar" (invisible) alle Zwischenobjekte vollstndig.

.assignments
.related save restricted colors comment
Aufgaben

//image images/Aufgabe.jpg

__Aufgaben__ sind Konstruktionsaufgaben, die der Benutzer lsen soll.
Dem Benutzer werden die Ausgangsobjekte angezeigt und das Zielobjekt
in schwcherer Darstellung. Beachten Sie, dass man in einem Applet die
mglichen Werkzeuge einschrnken kann.

Sobald der Benutzer die Aufgabe gelst hat, wird dies in einem 
Dialogfenster angezeigt. Alternativ kann man, wenn die Aufgabe 
in einem __Applet__ gestellt wird, zu einer __Lsungsseite__ springen.

Aufgaben werden erzeugt, indem man das letzte anzuzeigende Objekt
auswhlt und die __Zielobjekte__. Dazu existiert ein spezielles
Werkzeug im Men. Das letzte darzustellende Objekt ist das letzte der
Ausgangsobjekte, auf die der Benutzer vollen Zugriff hat. Objekte nach
diesem Objekt werden nur dann dargestellt, wenn Sie Zielobjekte der
Aufgabe sind. Allerdings kann der Benutzer auf Zielobjekte natrlich
nicht zugreifen. Mit Hilfe der __Umschalttaste__ knnen sekundre
Zielobjekte ausgewhlt werden, die nicht berprft werden sollen. Sie
dienen nur als zustzliche Orientierung. Wird ein Zielobjekt vor dem
Abspeichern der Aufgabe versteckt, so ist es nicht sichtbar. In diesem
Fall sollte die Erklrung der geforderten Aufgabe eindeutig sein.

Im Normalfall wird man eine Aufgabe lsen, bevor man sie stellt. In
diesem Fall ist die Lsungsdatei, zu der das Applet springen kann,
identisch mit der Aufgabendatei. Man whlt als letztes darzustellende
Objekt das letzte der Ausgangsobjekte und die Zielobjekte befinden
sich hinter diesem Objekt, weil sie ja von den Ausgangsobjekten
abhngen. Allerdings ist es auch mglich, Aufgaben zu stellen, die man
nicht gelst hat. In diesem Fall befinden sich die Zielobjekte
durchaus auch vor den Ausgangsobjekten. Man muss dann sicher stellen,
dass alle Objekte, die der Benutzer nicht verwenden knnen soll,
sekundre Zielobjekte sind.

Auerdem kann noch fr die Aufgabe ein eigener __Kommentar__
festgelegt werden, der die Aufgabe beschreiben sollte. Die Aufgabe
kann getestet werden. Dies zeigt die Aufgabe aus der Sicht des
Benutzers, allerdings mit dem vollen Werkzeugsatz.

Bei __Polygone__n sollte man nur die notwendigen Eckpunkte als Ziele
vorgeben. Falls der Lsende unntige Zwischenpunkte eingibt, also
Punkte auf den Seiten des gesuchten Polygons, so wird dies erkannt.
Gibt man selbst solche Zwischenpunkte ein, so mssen diese
Zwischenpunkte auch in Lsung vorhanden sein.

.browser
.related online
Hilfe im Browser

Die Hilfe im __Browser__ muss evtl. konfiguriert werden. Auf
Windows-System nimmt Z.u.L. den Internet-Explorer als Browser,
sonst Netscape an. Das Programm versucht auch, den Pfad zur Hilfedatei
zu finden. Falls keine Datei gefunden wird, wird ein Link zur
Hilfeseite im Web angenommen.

//image images/Explorer.jpg

Falls die Hilfe nicht funktioniert, so muss man den Browser selbst
konfigurieren. Dazu gibt man ein

Pfad_zum_Browser Pfad_zur_HTML_Hilfedatei

Pfade mit Leerzeichen mssen in "..." eingeschlossen werden.

.comment
.related assignments parameter htmlexport
Kommentare

//image- images/comment.png
Konstruktionen knnen kommentiert werden. __Kommentare__ werden beim
Laden der Konstruktion angezeigt. Auerdem knnen Kommentare in die
HTML-Datei exportiert werden.

Wichtig sind Kommentare von Aufgaben. Sie sollen die Aufgabenstellung
enthalten.

Auch __Makros__ knnen und sollten Kommentare haben, die erklren, was
das Makro leistet.

.fonts
.related zoom save properties
Fonts

__Font__s werden entweder pro Objekt oder global eingestellt. Die
globalen Einstellungen haben Vorrang.

Z.u.L. verwendet Fonts in zwei Grenstufen. Die Fonts werden mit dem
Konstruktionsfenster skaliert, genau wie die Gre von Punkten. Da
dies bei kleinen Fenstern zu kleinen Objekten fhrt, kann man eine
__Minimalgre__ einstellen.

Es kann auch global ein fetter Font gewhlt werden. Dies empfiehlt sich
insbesondere fr den __Grafikexport__, falls nicht die genauere
Skalierung der Fonts im Exportdialog verwendet wird.

.sizes
Greneinstellungen

//image images/Sizes.jpg

In diesem Dialog kann man die __Minimalgre__n fr Punkte, Linien und
Schriften einstellen. Diese Gren werden normalerweise mit der
Fenstergre skaliert. Allerdings wird dabei die hier eingestellte
Minimalre eingehalten.

Man beachte, dass man beim __Grafikexport__ die exakte Gren whlen
kann, die unabhngig von der Gre des Exports sind.

Auerdem kann man die __Vektorgre__ und die Gre des Bereichs
fr die Auswahl von Objekten einstellen.

Die __Minimalgre__n knnen beim HTML-Export exportiert werden.

.save
.related assignments parameter descriptivefiles print defaultmacros filedialog print
Speichern und Laden

Konstruktionen werden im __XML-Format__ in Dateien gespeichert. Das
Format ist fr Menschen lesbar. Normale Konstruktionen haben die
Erweiterung "__.zir__", Aufgaben die Erweiterung "__.job__" und Makros
die Erweiterung "__.mcr__". Dies gilt fr alle __Sprachen__, in denen
Z.u.L. luft.

Konstruktionen knnen __Makros__ enthalten oder nicht. Man whlt
mit einem Schalter, ob Makros mit der Konstruktion abgespeichert
werden sollen oder nicht. Damit sich Makros nicht in Konstruktionen
aufhufen, gibt es einen Schalter, mit dem Makros beim
Laden einer Konstruktion automatisch gelscht werden. Dies gilt nicht
fr Defaultmakros.

Dateien knnen __komprimiert__ werden. Dies geschieht automatisch,
wenn die Erweiterung um "z" ergnzt wird.

.print
.related exportsettings
Druck und Export von Grafik

Es gibt verschiedene __Exportformate__ fr Grafiken. Fr
__Vektorgrafiken__ ist __EPS__ am gebruchlichsten und fr Bitmaps
empfehle ich __PNG__. Beide Formate lassen sich in einer
__Textverarbeitung__ importieren. PNG ist wegen der schneren Grafik
vorzuziehen, wobei man allerdings die Grafik __skalieren__ muss, so
dass die Qualitt ausreichend ist.

//image image/Export.jpg

Beim PNG-Export erscheint daher ein Dialog, in dem an die Gre der
exportierten Grafik angeben kann, eventuell auch mit einem
Faktor relativ zum aktuellen Bildschirm. Es ist aber auch mglich,
die Gre durch die gewnschte Druckgre und Auflsung einzustellen.

Es gibt eine Reihe Voreinstellungen, die sich in einer Auswahlbox
whlen lassen. Neben den Bildschirmauflsungen existieren
Voreinstellungen fr den Druck in bestimmten Gren. Mit der Auswahl
"__1:1__ bei 300 __DPI__" wird sicher gestellt, dass die Auflsung
hoch genug ist, um die Grafik skaliert (1 Einheit = 1 cm) mit 300 dpi
auszudrucken.

Da beim Verkleinern Schriften, Linien und Punkte zu klein werden,
knnen diese Objekte auf eine bestimmte Gre skaliert werden. Es gibt
eine Vorschau, die den Effekt am Schirm vorfhrt. Die Grenangaben
sind normalerweise in cm. Es knnen aber auch die Einheiten mm, '', in
oder __pt__ angegeben werden.

Eine sinnvolle Vorgehensweise ist, die Vorschau mit der
gewnschten Durckgre einzuschalten. Danach sollte die Konstruktion
noch einmal durchgesehen und ausgerichtet werden.

Fr __LaTeX__ gibt es einen speziellen Export, der zwei weitere
Dateien erstellt. Die erste enthlt Informationen ber die Bildgre
und hat die Endung "bb". Die zweite enthlt den __LaTeX-Code__, um das
Bild einzufgen. Sie hat die Endung "ztx". Dabei ist es mglich, die
Zeichenketten in der Konstruktion von LaTeX exakt positioniert
zeichnen zu lassen. In einem weiteren Dialog kann man auswhlen,
welche Typen der Zeichenketten von LateX bernommen werden sollen. Im
LaTeX-Quelltext bindet man das Paket "__graphicx__" ein. Die
Bildausgabe erfolgt mit einem input-Befehl aud der Datei "bild.ztx".
Dieser Befehl sollte zentriert in einer figure-Umgebung stehen, also
zum Beispiel

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

Zum Export von Graphiken fr das Web whlt man normalerweise die Voreinstellung
"Fenstergre". Die Schriften brauchen dabei nicht skaliert zu werden.
Es ist auch mglich nur einen gewissen Bereich im Zentrum zu exportieren.
In diesem Fall erscheint in der Vorschau ein Rahmen, der natrlich nur
sichtbar ist, wenn der Bereich kleiner als das Fenster ist.

Der Dialog zu Skalieren erscheint auch, wenn Grafiken auf die Zwischenablage
exportiert werden. Falls Sie eine Kopie des Konstruktionsfensters wollen,
so whlen Sie bitte "Fenstergre" in diesem Dialog.

Beim PDF-Export ist es sinnvoll, die gewnschte Bildbreite in cm
anzugeben. Dort knnen die Schriften, Linien und Punkte ebenfalls
skaliert werden, wenn die Ausgabe zu klein wird.

Konstruktionen knnen einfach direkt auf einem Drucker gedruckt werden. 
Im Men kann man einstellen, dass die Lnge 1 genau 
auf 1 cm gedruckt wird. Natrlich muss man dann darauf achten, dass
der Druck auf das Papier passt.

.filedialog
.related save settings
Dateiauswahldialog

//image images/Filedialog.jpg

Z.u.L. benutzt zur __Dateiauswahl__ einen speziellen Dialog. Man kann
allerdings auch den normalen Systemdialog benutzen
(__spezielleEinstellungen__).

Die Eingabefelder fr den __Dateinamen__, das Verzeichnis und die
__Dateimuster__ merken sich vorherige Eingaben. Drcken Sie dazu die
Pfeiltaste nach oben oder unten. Die alten Verzeichnisse findet man
zustzlich in einer Auswahlliste.

Verzeichnisse werden durch Doppelklick in der rechten Liste
ausgewhlt, Dateien durch Doppelklick rechts oder mit dem
Aktionsknopf "Speichern" oder "Laden". Es gibt einen "Zurck"-Knopf,
der in das vorherige Verzeichnis springt. Der Knopf funktioniert auch
nach dem Schlieen und erneuten ffnen des Dialogs.

Der Knopf "__Eigene Dateien__" springt in das Z.u.L.-Verzeichnis,
falls dies bei der Installation angelegt wurde. Es heit "ZuL Dateien"
und befindet sich in Windows in "Eigene Dateien". Falls dieses
Verzeichnis nicht gefunden wurde, so springt der Dialog in das
__Hauptverzeichnis__ des Benutzers, unter Windows in "Eigene Dateien",
unter Linux in das home Verzeichnis. Hlt man die Umschalt- und die
Strg-Taste whrend eines Drucks auf "Eigene" fest, so wird das
aktuelle Verzeichnis neues Z.u.L.-Verzeichnis. Ein erneuter Klick mit
diesen Tasten stellt wieder den alten Zustand her.

Um ein neues Verzeichnis anzulegen, wird der Name in das
Verzeichnisfeld eingetragen und der Knopf "Neues Verzeichnis"
gedrckt. Mit diesem Dialog kann man keine Dateien oder Verzeichnisse
lschen.

.construction
.related hide reorder
Liste von Objekten

//image images/Gui.jpg

Die __Objektliste__ enthlt eine Liste ausgewhlter Objekte der
Konstruktion. Von hier aus kann man den Einstellungsdialog der Objekte
ffnen und damit zum Beispiel auch vollstndig versteckte Objekte
wieder sichtbar machen. Die Farben der Linien entsprechen den
Objektfarben. Vollstndig versteckte Objekte stehen in Klammern.
Grundobjekte sind mit einem ">" versehen.

Im Auswahlmen in der ersten Zeile kann die Darstellung auf bestimmte
Objekte reduziert werden. "Sichtbare Objekte" zeigt alle in der
Konstruktion sichtbaren Objekte, also auch versteckte, wenn der
Modus zum Anzeigen versteckter Objekte angeschaltet ist. Vollstndig
versteckte Objekte sind nur sichtbar, wenn "Alle Objekte" ausgewhlt
wird.

.colors
.related htmlexport
Farben

//image images/Farben.jpg

Alle __Farben__ knnen beliebig eingestellt werden. Die Farben werden
nicht mit der Konstruktion gespeichert. Jedoch werden sie beim
__HTML-Export__ in das Applet geschrieben. Die Farben werden im
blichen RGB-Modell eingestellt.

Beim Export in Applets kann zustzlich eine Farbe fr den
__Seitenhintergrund__ und fr den __Hintergrund__ des Applets
eingestellt werden.

.settings
.related restricted iconbar tips restricted exportsettings beginner
Spezielle Einstellungen

//image images/Spezielle.jpg

In dem Dialog fr __spezielleEinstellungen__ kann man zunchst
einstellen, ob Objekte beim Ziehen mit ihrer Position oder Gre
angezeigt werden sollen. Dies ist in vielen Fllen ntzlich, am Anfang
aber eher verwirrend. Die Anzeige kann auf fixierte Objekte beschrnkt
werden.

Auerdem knnen einige __Nachfragen__ abgeschaltet werden, sowie der
Dialog zur __Objektauswahl__, wenn die Auswahl mit der Maus nicht
eindeutig war. In diesem Fall wird immer das erste Objekt verwendet.

Die __Vorschau__ abzuschalten, ist durchaus sinnvoll. Gerade Anfnger
werden durch die Vorschau zu ungltigen Konstruktionen verfhrt. Die
Vorschau von erzeugten Punkten ist hier nicht kritisch und sehr
hilfreich.

Die __Werkzeugleiste__ kann an den unteren Bildrand verbannt werden.

Die __Dateiauswahl__ des Systems wird normalerweise durch eine eigene
ersetzt.

Normalerweise verwendet Z.u.L. __UTF-8_ fr Dateien. Dies sollte man
nur ndern, wenn Konstruktionen per Hand ediert werden und kein
UTF-8-Editor benutzt wird.

Auf langsamen System kann man die verbesserte __Grafik__ abschalten.

Der __Smartboard-Modus__ nimmt darauf Rcksicht, dass Smartboards
keine Ereignisse beim Bewegen von Objekten erzeugen, so dass keine
Vorschau mglich ist.

__Makros__ werden normalerweise mit einem einfachen Klick der rechten
Maus aufgerufen. Man kann hier einstellen, dass ein Doppelklick
bentigt wird.

.exportsettings
.related settings print
Einstellungen fr den Grafikexport

//image images/ExportSpezielle.jpg

Hier kann engestellt werden, dass sich das Programm beim Verkleinern
nicht an die __Minimalgre__ fr Punkte oder Schriften halten
soll. Dies ist notwendig, wenn der Schirm auf ein relativ kleines Bild
getreu skaliert sein muss.

Bitmapgrafiken knnen mit dem eingestellten __Hintergrund__ oder mit
weiem Hintergrund gespeichert werden.

.reorder
.related circle angle expressionsyntax
Umordnen von Objekten

Man kann zu spt konstruierte Objekte mit dem
Werkzeug "nderung der __Reihenfolge__" nach vorne legen. Das Programm
macht nach der Auswahl eines Objektes einen Vorschlag, den man
annehmen sollte. Es wird immer die frhest mgliche Position
vorgeschlagen. Dies ist im Wesentlichen fr die Reihenfolge
des Zeichnens ntzlich.

.tips
.related online browser start move intersection expressionsyntax reorder
Tipps und FAQ

Hier findet man einige Hinweise auf Probleme, die hufig auftreten.

Ungltige Konstruktionen: Man kann eine Konstruktion dadurch
berprfen, dass man einen Ausgangspunkt verschiebt. Wenn die
Konstruktion dabei ungltig wird, so liegt das meist an
__Schnitten__. Anstatt einen Schnitt zu verwenden, wurde ein neuer
Punkt erzeugt.

Falsche Schnitte: Wird die Konstruktion ungltig, sobald die
Ausgangspunkte ihre gegenseitige Orientierung ndern, so liegt das
meist an der Auswahl eines __Schnittpunkte__s. Die meisten Probleme
erledigt die Automatik des Programms. Gelegentlich sollte man jedoch
Hand anlegen, indem man im Eigenschaftsdialog des Schnittpunktes "Weg
von" oder "Hin zu" anklickt und einen Punkt auswhlt, von dem der
Schnittpunkt verschieden sein soll, bzw. bei dem der Schnittpunkt
liegen soll.

.keyboard
.related gui delete zoom mouse
Tastatur

Die meisten Kommandos in Z.u.L. knnen mit der __Tastatur__ ausgewhlt
werden. Die entsprechenden Tasten sind im Men jeweils hinter dem
Werkzeug aufgelistet.

Allerdings muss dazu Z.u.L. den Tastaturfokus haben. Ein Klick mit
der rechten Maustaste an einer leeren Stelle in die Konstruktion gibt
dem Programm den Fokus.

Hufig verwendet werden __+/-__ zum Vergrern und Verkleinern und die
__Pfeiltasten__ zum Verschieben der Konstruktion. Wichtig ist auch die
__Rckschrittaste__ zum Lschen des letzten Objekts. __F1__ ffnet wie
blich die Hilfe.

Auerdem setzt die __ESC-Taste__ das aktuelle Werkzeug auf den
Ausgangszustand zurck.

Die Strg-Taste wird manchmal zusammen mit der Maus verwendet.

Man beachte auch, dass manche Java-Versionen die __Leertaste__ als
Besttigungstaste fr Dialogknpfe verwenden, andere die
Eingeabetaste.

.image
.related background
Bilder

//image images/Spiegelung.jpg

__Bilder__ knnen in die Konstruktion aufgenommen werden. Verwendet
man drei Ankerpunkte, so wird das Bild affin skaliert, verwendet man
zwei, so wird es gedreht und gestreckt. Wollen Sie nur zwei Punkte
verwenden, so whlen sie den ersten oder zweiten Punkt erneut aus.

Bilder mssen sich im gleichen Verzeichnis wie die Konstruktion befinden.
Bilder knnen auch als __Hintergrund__bild verwendet werden.

.language
Sprache

Normalerweise startet Z.u.L. in der __Sprache__ des Systems, in dem es
luft. Sie knnen die Sprache aber auch wechseln. Verwenden Sie die
folgenden Abkrzungen.

 Englisch - en
 Deutsch - de
 Franzsich - fr
 Hollandisch - nl
 Italienisch - it
 Spanisch - es
 Portugiesisch - pt
 Brasilianisch - br
 Slowenisch - sl
 Dnisch - da
 Norwegisch - no
 Polnisch - pl
 Russisch - ru

Die Sprache kann ber einen Menpunkt eingestellt werden, oder mit einem
__Kommandozeile__nargument wie "-l en" fr Englisch.

.selfreference
Objekte mit Selbstbezgen

Es ist mglich, einen Punkt zu definieren, dessen Koordinaten beim Verschieben
bestimmte Werte annehmen. Dies erreicht man dadurch, dass die
Koordinaten des Punktes mit einem Ausdruck fixiert werden.
Der Punkt ist unter Umstnden trotzdem vom Benutzer verschiebbar. Es
gilt nmlich die Regel, dass Objekte, die sich nur auf sich selbst
beziehen (__@-Bezge__ zhlen hier nicht), bewegbar sind
(__Selbstreferenz__). In diesem Fall wird zunchst der Rest der
Konstruktion bewegt, dann der Punkt fixiert. Auf diese Art kann man
auch Punkte definieren, die innerhalb von bestimmten Gebieten gehalten
werden.

Solche fixierten, beweglichen Punkte lassen sich auch per Makro erzeugen. Sie
mssen dazu ein Makroparameter sein, der mit der __Umschalttaste__
angewhlt wurde. Beim Ablauf des Makros erhalten die fr den Parameter
gewhlten Punkte diese Fixierung.

Das gleiche gilt auch fr durch Makros erzeugte Punkte, die eine
__bedingte Formatierung__ haben, die zum Beispiel von ihrer Lage
abhngt.

.transparent
.related properties
Transparente Objekte

Ab Java 1.2 kann Z.u.L. __Transparenz__ fr das Zeichnen von Objekten
verwenden. Dadurch werden gefllte Objekte mglich, die den
Hintergrund durchscheinen lassen. Falls Objekte dick gezeichnet
werden, wird die Transparenz nicht verwendet.

Die Transparenz lsst sich fr einzelne Objekte an- und abschalten.
Sie lsst sich auch in den __Defaulteinstellungen__ fr alle neuen
Objekte abschalten.

.replace
.related intersection point
Ersetze ein Objekt durch ein anderes

Mit diesem Werkzeug ist es mglich, ein Objekt durch ein anderes zu
__ersetzen__. Das heit, alle Objekte, die sich vorher auf das alte
Objekt bezogen haben, beziehen sich nun auf das neue.

Als Beispiel nehmen wir an, dass eine Konstruktion von einem
Schnittpunkte abhngt. Sie soll aber von einem freien Punkt abhngen
(oder umgekehrt). Man kann einfach einen freien Punkt erzeugen, und
den Schnittpunkt durch diesen Punkt ersetzen.
