Z.u.L. > Dokumentation > Befehlsmodus

Befehlsmodus

Z.u.L. kennt zwei Operations-Arten

Der visuelle Modus ist der normale Modus zum Konstruieren, während der beschreibende Modus eher didaktische Ziele hat. Zum Umschalten zwischen diesen Modi gibt es einen Menüpunkt und das Werkzeug . Das Werkzeug ist allerdings per Default ausgeblendet.

Die Modi sind dadurch erkennbar, dass im visuellen Modus die Statuszeile erscheint und im beschreibenden Modus eine Eingabezeile, in der Konstruktionsschritte eingegeben werden können.

Außerdem ist es möglich eine Konstruktion extern in einer Datei zu erstellen, und dann zu laden. Dort sind auch Makros definierbar, so dass sich eine regelrechte Programmiersprache für Konstruktionen mit Unterprogrammen ergibt.

Visueller Modus

Im visuellen Modus konstruiert man mit der Maus auf der Konstruktionsoberfläche. Objekte werden direkt durch Anklicken ausgewählt. Die meisten Teile dieser Anleitung beziehen sich auf den visuellen Modus.

Beschreibender Modus

In diesem Modus werden die Konstruktionsschritte in einer Eingabezeile unterhalb des Konstruktionsfensters eingegeben. Die Werkzeugleiste bleibt zwar erhalten, aber die Werkzeuge funktionieren anders.

Natürlich ist es nun notwendig, eine gewisse Syntax einzuhalten. Die allgemeine Form eines Konstruktionsschrittes ist.

name=function(parameter,...)

Diese Syntax wird durchgängig 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. Außerdem existiert eine Hilfedatei, die diese Kommandos enthält, und die man direkt aus Z.u.L. heraus aufrufen kann.

Anstatt der deutschen Lang- oder Kurzform kann auch die englische Alternative verwendet werden. Bei den Langformen spielt Groß- oder Kleinschreibung keine Rolle.

Beispiel

Langform

Alternative

Beschreibung

A=P()

Punkt

point

Erzeugt einen Punkt, der zufällig 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 Länge 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 Länge 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 möglichst 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 gefülltes Vieleck mit diesen Ecken.

wert(P,0,1)

Wert

value

Fixiert den Punkt nach (0,1).

wert(s,2)

Fixiert die Strecke auf die Länge 2.

wert(k,2)

Fixiert den Radius des Kreises auf 2.

wert(w,90)

Fixiert den Winkel auf 90 Grad.

wert(wahr,o)
wert(o)

Stellt die Wertanzeige für das Objekt an und aus.

wert(wahr)

Stellt die Defaultanzeige für Werte ein und aus.

name(o,p)

Name

name

Setzt den Namen des Objektes o auf p.

name(wahr,o)
name(o)

Stellt die Namensanzeige für das Objekt an und aus.

name(wahr)

Stellt die Defaultanzeige für Namen ein und aus.

v(wahr,o)

Verstecken

hide

Versteckt das Objekt und zeigt es wieder an.

v(o)

Versteckt das Objekt.

v(wahr)

Stellt den Defaultwert für das Verstecken von Objekten ein und aus.

farbe(grün,o)

Farbe

color

Färbt das Objekt mit einer der Farben Schwarz, Blau, Grün, Braun (black, blue, green, brown)

farbe(grün)

Stellt die Farbe als Defaultfarbe ein.

dicke(dick,o)

Dicke

thickness

Stellt die Darstellung des Objekts auf Dick, Normal oder Dünn (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(wahr,k)
partiell(k)

Partiell

partial

Stellt die partielle Darstellung des Objekts k an oder aus.

partiell(wahr)

Stellt die Defaultdarstellung um.

voll(true,o)
voll(o)

Voll

fill

Stellt das Objekt o auf gefüllte oder nicht gefüllte Darstellung.

zur(true,o)
zur(o)

Zurück

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(true,a)
stumpf(a)
Stumpf obtuse Der Winkel a kann größer als 180 Grad werden oder nicht.
solid(true,a)
solid(a)
  solid Das Objekt ist nicht transparent.
beschränkt(c,A,B)   restrict Beschränkt einen Kreis auf den Bogen von A bis B.
gültig(true,o)
gültig(o)
  valid Lote und Schnitte werden nicht mehr ungültig, wenn der Schnitt außerhalb der Strecke oder des Bogens liegt.
name(A,B)   rename Nenne A zu B um.

Makros

Auch Makros können verwendet werden. Der Funktionsname ist in diesem Fall der Makroname. Namen können nur an die angegebene Makro-Zielobjekte vergeben werden. Es ist deswegen günstig, bei der Definition von Makros immer die wesentlichen Ziele anzugeben.

Bei Makros, die einen Prompt zur Größeneinstellung eines Objektes enthalten, kann diese Größe als zusätzlicher Parameter angegeben werden.

Konstruktionsbeschreibungen in Dateien

Damit ist es möglich, Konstruktionen in der beschreibenden Form in eine Datei zu schreiben. Außerdem kann die Datei Makrodefinitionen enthalten, die sich auch gegenseitig aufrufen dürfen. Damit entsteht eine einfache Programmiersprache für 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 können Kommentare enthalten die mit // eingeleitet werden und für den Rest der Zeile gelten. Die verwendete Sprache ist zeilenorientiert. Jeder Konstruktionsschritt nimmt genau eine Zeile ein.

Außerdem können sie Makros enthalten, die auch andere Makros aufrufen können. 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 Einrückungen sind hier optional. Die Kommentarzeilen am Anfang werden als Makrokommentar gespeichert. Parameterpunkte sind mit dem Schlüsselwort Parameter (oder Param) gekennzeichnet, und Ziele mit dem Schlüsselwort Target (oder Ziel). Der Prompt für 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 könnte 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 müssen 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 müssen.

A,B=test(...)

Prompts sind ebenfalls möglich. Dazu wird das Schlüsselwort 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 zusätzlichen Parameter gelesen. Das Objekt muss ein fixiertes Objekt sein.

Beachten Sie bei Makrodefinitionen, dass nur diejenigen Objekte konstruiert werden, die tatsächlich aus den Parametern konstruierbar sind. Andere Konstruktionsschritte werden nicht ausgeführt.

Verwendet man Kreise oder Geraden als Parameter, so müssen die Elternobjekte vorher definiert sein. Die Mittelsenkrechte könnte dann auch von einer Strecke abhängen.

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.

Das Kommando "sichtbar" (showall) zeigt auch die Zwischenschritte eines Makros an, die normalerweise versteckt werden. Das Kommando "unsichtbar" (invisible) versteckt Zwischenschritte vollständig.

Z.u.L. > Dokumentation > Befehlsmodus