fed geo - Geometrie-Erweiterung im Formeleditor
Von: matroid
Datum: So. 22. Juni 2003 22:11:51
Thema: Matroids Matheplanet






fedgeo - Geometrie-Erweiterung im optimath-Formeleditor


Wer erstellt damit die schönste Konstruktion eines regelmäßigen Fünfecks?

Erstes Handbuch (Befehlsreferenz)


(Stand 3.8.2003)



Alle folgenden Befehle können im fed-Formeleditor verwendet werden.

Klicke auf das Beispiel-Bild, um den fedgeo-Code dafür zu sehen.

Grundgerüst


Jede Geometrie-Zeichnung ist in fed so aufgebaut:
\geo

...verschiedene geo-Befehle ...

\geooff

... andere fed-Befehle ...

geoprint()

Betrachte ein Beispiel.
Öffne fedgeo durch einen Klick auf folgendes Bild und lies dann weiter.





Umschalten in den Geometrie-Modus: \geo



Der Befehl \geo muß am Anfang einer Zeile stehen.

Alle folgenden Zeilen werden als geo-Befehle interpretiert und nicht angezeigt.

Zurückschalten in den Formel-Modus: \geooff


Der \geo-Modus wird mit \geooff beendet.




Ausgabe einer Zeichnung mit der Funktion 'geoprint([name])'.


Die Ausgabe kann nur außerhalb von \geo und \geooff erfolgen.

Die Ausgabe einer Zeichnung muß nicht direkt hinter dem \geooff erfolgen.

Mit 'geoprint()' ohne 'name' wird die letzte definierte Zeichnung ausgegeben.

Mit 'geoprint(name)' wird die Zeichnung mit dem Namen 'name' ausgegeben.

Über Befehle im Geometrie-Modus



In einer Zeile können mehrere geo-Befehle hintereinander stehen.

Alle geo-Befehle können klein oder groß eingegeben werden.

Beispiel: Punkt(1,2) = punkt(1,2) = PUNKT(1,2)



Links- oder rechtsstehende Leerzeichen werden ignoriert.

Beispiel: punkt (1,2) = punkt(1,2)



geo-Befehle können fast immer stark abgekürzt werden.

Beispiel: p(1,2) = punkt(1,2)



Mit geo-Befehlen werden geometriche Objekte erzeugt.



Diese geo-Objekte gibt es:



Primär:

  1. punkt
  2. gerade
  3. kreis
  4. winkel
  5. funktion
  6. abstand
  7. konstante
  8. parameter

Sekundär:

  1. schnittpunkt
  2. tangente
  3. parallele
  4. mittelpunkt
  5. strecke
  6. strahl
  7. pfeil
  8. senkrechte
  9. hoehe
  10. winkelhalbierende
  11. lotpunkt
  12. imabstand
  13. bogen
  14. Punkt auf Kreisbogen
  15. Punkt auf Funktionsgraphen

Farb- und Stiftbefehle:

  1. color
  2. pen
  3. punktform
  4. ausfuellen



Zeichenblattbefehle

  1. ebene

  2. xachse, yachse, xyachse



Sonstige Befehle

  1. repaint

  2. test

  3. replace

  4. label, nolabel

  5. name

  6. print



Kommentare


Kommentare werden mit # eingeleitet.

Zeichnen mit fed-geo



Die Zeichnung wird in auf einer Zeichenebene mit einem virtuellen Koordinatensystem erstellt. Die Einheit in diesem Koordinatensystem ist '1', unabhängig von der Pixelgröße des Bildes.



Als Standard wird eine Zeichenebene mit 330 mal 330 Pixeln und einer Achsenskalierung
von 0 bis 5 für x- und y-Achse verwendet.



Mit folgenden Befehlen kann man davon abweichende Einstellungen treffen:


ebene(pixbreite,pixhoehe)

e(pixbreite,pixhoehe)


Erzeugt eine Zeichenfläche in der verlangten Größe.

pixbreite und pixhoehe muessen Zahlen von 100 bis 800 sein.



xachse(xmin,xmax)

x(xmin,xmax)


Skaliert die x-Achse von xmin bis xmax.


yachse(ymin,ymax)

y(ymin,ymax)


Skaliert die y-Achse von ymin bis ymax.


xyachse(xymin,xymax)

xy(xymin,xymax)


Skaliert beide Achsen von ymin bis ymax.



Die Zeichenblatt-Befehle müssen vor dem Erzeugen des ersten geo-Objekts stehen, denn sonst wird die Zeichenebene und das Koordinatensystem automatisch mit den Standardwerten angelegt.




Eine Zeichnung kann benannt werden.



name(name)


Der Name kann bei 'geoprint' verwendet werden.

Einen Namen zu vergeben macht Sinn, wenn man mehrere Zeichnungen erstellt.

Der name-Befehl soll hinter den ebene() und x()/y() Befehlen und vor dem Erzeugen des ersten geo-Objekts stehen. Das benannte Zeichenblatt hat die Eigenschaften, die vor dem name-Befehl definiert wurden.




Erzeugen von geo-Objekten:



Allen Konstruktoren gemeinsam


Objekt-Namen

Alle geo-Objekte haben einen Namen. Wenn der Name nicht gegeben ist, wird ein Standardname automatisch gebildet.

Beispiel: p(1,2) erzeugt einen Punkt mit Namen 'p1'. Ein folgendes p(2,4) erzeugt einen Punkt mit Namen 'p2' usw.

Es ist natürlich gefährlich, sich auf diese automatischen Namen zu verlassen. Konstruiert man eine Gerade g(p1,p2), fügt aber spöter noch einen weiteren Punkt ein, dann kann sich die Zählung ändern.



Beschriftung unterdrücken

Als Standardeinstellung werden Objekte in der Zeichnung beschriftet (label). Mit den globalen Funktionen 'label()' und 'nolabel()' kann die Grundeinstellung geändert werden.




Die Label aller Objekte nicht zeigen

Nach nolabel() werden für alle folgend erzeugten Objekte keine Label angezeigt. 'nolabel()' verändert die globale Grundeinstellung.



Die Label aller Objekte zeigen

Nach label() werden für alle folgend erzeugten Objekte Label angezeigt. 'label()' verändert die globale Grundeinstellung.



Einzelne Label unterdrücken

Mit nolabel als letztem Parameter eines Konstruktors, wird das Objekt gezeichnet, aber die Objektbeschriftung (label) wird nicht angezeigt.

Das 'nolabel' Attribut ist bei jedem Konstruktor möglich und wird zur Vereinfachung hier nicht jedesmal genannt.




Einzelne Beschriftung zeigen

Mit label als letztem Parameter eines Konstruktors wird das Objekt gezeichnet und die Beschriftung (label) wird angezeigt.

'label' ist nur sinnvoll, wenn zuvor die globale Einstellung mit 'nolabel()' auf 'keine Label zeigen' eingestellt wurde.

Das 'label' Attribut ist bei jedem Konstruktor erlaubt und wird zur Vereinfachung hier nicht jedesmal genannt.



Objekte unsichtbar machen

Allen1 folgend aufgelisteten Konstruktoren kann als letzter Parameter
das Schluesselwort hide angefügt werden.
Es bewirkt, daß das Objekt nicht gezeichnet wird.

1) ausgenommen sind 'strecke', 'strahl', 'pfeil' und 'hoehe', sowie 'abstand'

Das 'hide' Attribut wird zur Vereinfachung hier nicht jedesmal genannt.

'hide' schließt 'nolabel' mit ein.




Alle Objekte zum Text sichtbar machen

Nach test() werden alle Objekte und Label
angezeigt, unabhängig davon, ob irgendwo hide oder nolabel angegeben ist.




Erlaubt mehrfache Verwendung der gleichen Objektnamen

Nach replace() erfolgt keine Fehlermeldung, wenn Objektnamen (z.B. P1 oder K) doppelt vergeben werden.
Das neue Objekt erhält den Namen, zwangsläufig wird das vorher erzeugte Objekt gleichen Namens nicht mehr referenzierbar.
Sinnvoll ist der replace-Modus hauptsächlich in Makros. (Siehe dazu die fed-Hilfe.)


Primaere Konstruktoren für Punkte:






punkt(x,y)

p(x,y)


Erzeugt Punkt an (x,y)


punkt(x,y,name)

p(x,y,name)


Erzeugt Punkt an (x,y) mit Namen 'name'


Mit punktform(welche) oder kürzer form(welche)
bestimmt man die Darstellung der Punkte als Diagonalkreuz (x), gerades Kreus (+),
Stern (*), Kreis (o) oder gefüllter Kreis (of) oder keine Kennzeichnung (.). Standard ist 'x'.




-> Siehe auch Schnittpunkt, Mittelpunkt, Lotpunkt, imAbstand,

Maus-Unterstützung bei Koordinateneingabe (nur MSIE)


Es ist möglich Punktkoordinaten durch Mausklick abzulesen und in die Konstruktion einzufügen.

Wenn die erste Zeile in eine fed-Eingabe mit '\geo' oder '\geoon' beginnt,

Punktwahl 0

dann erscheint nach dem 'Erzeugen' eine weitere Checkbox über dem Bild:

Punktwahl 0

Klick man bei nicht angekreuzter Checkbox auf eine Stelle des Bildes, dann erscheinen die Koordinaten des angeklickten Punktes in der Statuszeile des Browser-Fensters:

Punktwahl 0


Klick man bei angekreuzter Checkbox auf eine Stelle des Bildes,

Punktwahl 0

dann erscheinen die Koordinaten des angeklickten Punktes
in der Statuszeile des Browser-Fensters und die Koordinaten werden an der aktuellen Cursorposition im Formeleingabebereich eingefügt:

Punktwahl 0

Beginnt die Eingabe nicht mit '\geo' oder '\geoon' oder wird nicht der Internet Explorer oder ein kompatibler Browser verwendet, dann ist die zusätzliche Checkbox nicht zu sehen. JavaScript (Active Scripting) muß auf jedem Fall eingeschaltet sein.

Anmerkung: Eine Ausschnittdefinition im geoprint-Befehl wird bei der Umrechnung der Bildkoordinaten in die virtuellen Koordinaten der Zeichnung nicht berücksichtigt - darum Ausschnitt oder Vergrößerung erst eintragen, wenn die Punkte gewählt sind.






Primaere Konstruktoren für Geraden:



gerade(P1,P2)

g(P1,P2)


Erzeugt eine Gerade durch P1 und P2.


gerade(P1,P2,name)

g(P1,P2,name)


Erzeugt eine Gerade durch P1 und P2 mit Namen 'name'.


gerade(m,b,name)

g(m,b,name)


Erzeugt eine Gerade x = mx+b mit Namen 'name'.

-> Siehe auch Strecke, Strahl, Pfeil, Tangente, Parallele, Senkrechte/Normale, Hoehe, Winkelhalbierende.




Primaere Konstruktoren für Kreise:



kreis(P,r)

k(P,r)


Erzeugt einen Kreis um P mit Radius r.


kreis(P,r,name)

k(P,r,name)


Erzeugt einen Kreis um P mit Radius r mit Namem 'name'.


kreis(P1,P2,name,hide)

k(P1,P2,name,hide)


Erzeugt einen Kreis um P1 durch P2.

-> Siehe auch Bogen, Punkt auf Kreis.



Primaere Konstruktoren für Funktionen:



funktion(funktionsdefinition,name)

plot(funktionsdefinition,name)


Erzeugt eine Funktion. Die Variable in 'funktionsdefinition' muß 'x' sein.

Beispiel: plot(sin(x)+cos(x),f1)


Hinweis: Begrenzung der Iterationen auf 2000 (für alle Plots in einem Bild).
Das reicht i.d.R. für 4 bis 10 Plots übereinander aus - je nachdem wie wechselhaft das
Steigungsverhaltenist.

In Funktionen wird x^2 oder 2^x oder 2^4 oder x^x verstanden. Für kompliziertere
Potenzen (z.B. geklammerte Basis oder Exponent) bitte die 'power'-Funktion benutzen.


-> Siehe auch Punkt auf Funktionsgraph.

Parameterkurven



kurve(x_funktionsdefinition, y_funktionsdefinition, name)


Erzeugt eine Parameterkurve. Die Variable in 'funktionsdefinition' muß ein zuvor definierter Parameter sein.

Siehe Beschreibung und Beispiel bei Parameter.


Beispiel: param(alpha,0,180) kurve(cos(deg2rad(alpha)),sin(deg2rad(alpha)),halbkreis)



Erlaubte Ausdrücke und math. Funktionen in Funktionen und Kurven:


Ziffern: 0123456789 und . als Dezimaltrenner



Variable: x



Operatoren:+ - * / ^



Klammern: ( )



Mathematische Funktionen:
abs(expr)          -- Absolutwert

acos(expr) -- Arcuscosinus

acosh(expr) -- Inverser cosh

asin(expr) -- Arcussinus

asinh(expr) -- Inverser sinh

atan(expr) -- Arcustangens

atanh(expr) -- Inverser tanh

ceil(expr) -- Aufrunden

cos(expr) -- Cosinus

cosh(expr) -- Hyperbolischer Cosinus

deg2rad(expr) -- Grad in Bogenmaß wandeln

exp(expr) -- e hoch expr

floor(expr) -- Abrunden

fmod(expr1,expr2) -- Rest von expr1 modulo expr2

hypot(expr1,expr2) -- sqrt( expr1²+expr2²)

log10(expr) -- Zehner-Logarithmus

log(expr) -- Natürlicher Logarithmus

max(expr) -- Maximalwert bestimmen

min(expr) -- Minimalwert bestimmen

pi() -- Wert von PI

power(expr1,expr2) -- Exponentialfunktion:

expr1 hoch expr2


rad2deg(expr) -- Bogenmaß in Grad wandeln

round(expr1,expr2) -- Runden von expr1 auf expr2

Stellen (auf-/abrunden)


sin(expr) -- Sinus

sinh(expr) -- Hyperbolischer Sinus

sqrt(expr) -- Quadratwurzel

tan(expr) -- Tangens

tanh(expr) -- Hyperbolischer Tangens

Bei Verwendung unbekannter Zeichen oder Funktionen erfolgt die Fehlermeldung:
plot: 'funktionsdefinition' ist nicht zugelassen, enthält unbekannte Ausdrücke oder falsche Operatoren. Beanstandet wurde 'pruef'

In 'pruef' steht, welche Zeichen oder Funktionen nicht verstanden wurden.




Primaere Konstruktoren für Winkel:



winkel(g1,g2)

w(g1,g2)


Erzeugt einen Winkel am Schnittpunkt der Geraden g1 und g2.


winkel(g1,g2,name)

w(g1,g2,name)


Erzeugt einen benannten Winkel am Schnittpunkt der Geraden g1 und g2.


winkel(g1,g2,name,-)

w(g1,g2,name,-)


Erzeugt den 'anderen' Winkel (Gegenwinkel) zwischen g1 und g2.


winkel(P1,P2,P3)

w(P1,P2,P3)


Erzeugt einen Winkel zwischen den Punkten P1, P2 und P3.


winkel(P1,P2,P3,name)

w(P1,P2,P3,name)


Erzeugt einen benannten Winkel zwischen den Punkten P1, P2 und P3.


winkel(P1,P2,P3,name,-1)

w(P1,P2,P3,name,-1)


Erzeugt den 'anderen' Winkel (Gegenwinkel) zwischen den Punkten P1, P2 und P3.


Hinweis: Der komplementäre Winkel zwischen g1 und g2 wird mit w(g2,g1) konstruiert.

Analog w(P3,P2,P1)

Hinweis: Die Namen von Winkeln werden mit fed interpretiert. Der Name '\a' wird also
als griechisches alpha-Zeichen dargestellt.




Primaere Konstruktoren für Abstände:



abstand(P1,P2,name)

a(P1,P2,name)


Erzeugt den Abstand der Punkte P1 und P2.





Primaere Konstruktoren für Konstanten:



konstante(name,wert)

konst(name,wert)


Definiert eine Konstante mit Namen 'name' und Wert 'wert'.


Hinweis: Konstanten können in allen Konstruktoren statt Zahlen eingesetzt werden.


Primaere Konstruktoren für Parameter:



Parameter werden zum Zeichnen von Parameter-Kurven benötigt (siehe bei 'Funktion').


parameter(name,wert_von,wert_bis,
schrittweite,converter)

param(name,wert_von,wert_bis,
schrittweite,converter)


Definiert einen Parameter mit Namen 'name'. Ein Parameter kann die Input-Variable für
eine Parameter-Kurve sein. Der Parameter dient dann als Schleifenvariable und wird von 'wert_von'
bis 'wert_bis' mit der Schrittweite 'schrittweite' durchlaufen.

schrittweite ist optional. Fehlt dieser Wert, dann wird 1 als Schrittweite genommen.

converter ist optional. Ist kein Converter angegeben, wird der Parameter unverändert in die Funktionen der Kurvendefinition eingesetzt.
Ein häufig nützlicher Konverter ist erwartungsgemäß 'deg2rad', also die Konvertierung eines Parameters, der einen Winkel in Grad (deg) angibt, in Bogenmaß (rad).

Man kann mit einem Converter bereits bei der Parameterdefinition die generelle Umwandlung (z.B. in Bogenmaß) bestimmen und muß das nicht bei jeder Verwendung der Parameters explizit tun.

Als Converter sind alle bekannten Standardfunktionen zulässig.
Beispiel: param(phi,0,360,1,deg2rad)

Hinweis: Parameter-Namen müssen nicht eindeutig sein. Wird ein früher vergebener Parameter nochmal definiert,
dann wird damit der alte Parameter ersetzt. Auf diese Art kann eine Kurve mit Hilfe der 'repaint'-Funktion abschnittsweise gezeichnet werden.

Ein Parameter darf nicht 'x' heißen.


Beispiele für eine Parameterkurve:





Und ein Beispiel mit Converter 'deg2rad':





Sekundäre Konstruktoren für Punkte:



mittelpunkt(P1,P2,name)

mitte(P1,P2,name)

m(P1,P2,name)

punkt(P1,P2,name)

p(P1,P2,name)


Erzeugt den Mittelpunkt der (gedachten) Strecke von P1 nach P2.




schnittpunkt(g1,g2,name)

sp(g1,g2,name)

punkt(g1,g2,name)

p(g1,g2,name)


Erzeugt den Schnittpunkt der Geraden g1 und g2.





imabstand(P,g,abstand,name)

imabstand(g,P,abstand,name)


Erzeugt zwei Punkte im Abstand 'abstand' von P auf der Geraden g.

Der eine Punkt erhält den Namen 'name+', der andere 'name-'.

'abstand' kann eine Zahl oder der Name eines Abstand-Objekts sein.


imabstand(P,g,abstand,welcherpunkt,name)

imabstand(g,P,abstand,welcherpunkt,name)


Erzeugt einen Punkt in + oder - Richtung im Abstand 'abstand' von P auf der Geraden g.
In 'welcherpunkt' kann mit + oder - angegeben werden, welcher von den zwei Punkten nur gewünscht ist.

Der Punkt+ ist dabei der mit dem größeren x-Wert von den beiden, und bei gleichem x-Wert ist es derjenige mit dem größeren y-Wert.

Der Punkt erhält den Namen 'name'.

'abstand' kann eine Zahl oder der Name eines Abstand-Objekts sein.





punkt(K,gradzahl,name)

p(K,gradzahl,name)


Erzeugt den Punkt mit dem Winkel 'gradzahl' auf der Peripherie des Kreises K.

(Hier ist 'gradzahl' eine Zahl (oder Konstante).)


punkt(K,w,name)

p(K,w,name)


Erzeugt den Punkt mit dem Winkel w auf der Peripherie des Kreises K.

(Hier ist 'w' ein Objekt.)




schnittpunkt(K,g,name)

schnittpunkt(g,K,name)

sp(K,g,name)

sp(g,K,name)


Erzeugt den/die Schnittpunkte des Kreises K mit der Geraden g.

Gibt es 2 Schnittpunkte, dann erhält der eine den Namen 'name+', der andere 'name-'.



schnittpunkt(K1,K2,name)

sp(K1,K2,name)


Erzeugt den/die Schnittpunkte der Kreise K1 und K2.

Gibt es 2 Schnittpunkte, dann erhält der eine den Namen 'name+', der andere 'name-'.


Will man von zwei Schnittpunkten nur einen verwenden und benennen, dann kann man
durch einen vierten Parameter den gewünschten Schnittpunkt bestimmen:





schnittpunkt(K,g,name,welcherpunkt)

sp(K,g,name,welcherpunkt)

punkt(K,g,name,welcherpunkt)

p(K,g,name,welcherpunkt)

schnittpunkt(K1,K2,name,welcherpunkt)

sp(K1,K2,name,welcherpunkt)


Erzeugt einen von zwei möglichen Schnittpunkten eines Kreises mit einer Geraden
oder zweier Kreisen.

Für 'welcherpunkt' kann + oder - angegeben werden.

Der Punkt + ist derjenige von den beiden, der den größeren x-Wert hat,
bei gleichem x-Wert ist es derjenige, der den größeren y-Wert aufweist.

Wird derart ein Punkt ausgewählt, dann erhält der eine gezeichnete Punkt den
Namen 'name' - es wird dann kein '+' oder '-' angefügt.

Im Falle, daß es ohnehin nur einen Schnittpunkt gibt, ist der Parameter 'welcherpunkt'
wirkungslos.





lotpunkt(P,g,name)

lot(P,g,name)


Erzeugt den Fußpunkt des Lots von P auf g.



punkt(funktion,x,name)

p(funktion,x,name)


Erzeugt den Punkt (x,funktion(x)).

'funktion' ist ein zuvor erzeugte Funktion-Objekt.




Sekundäre Konstruktoren für Geraden:



strecke(P1,P2,name)

s(P1,P2,name)


Erzeugt die Gerade 'name' durch P1 und P2, aber zeichnet nur die Strecke dazwischen.




strahl(P1,P2,name)


Erzeugt die Gerade 'name' durch P1 und P2, aber zeichnet nur den Strahl von P1 durch P2.




pfeil(P1,P2,name)

pf(P1,P2,name)


Erzeugt die Gerade 'name' durch P1 und P2, und zeichnet die Strecke von P1 nach P2 mit einer Pfeilspitze bei P2.




parallele(g,P,name)

par(g,P,name)


Erzeugt die Parallele zur Geraden g durch den Punkt P.



senkrechte(g,P,name)

sen(g,P,name)

normale(g,P,name)

nor(g,P,name)


Erzeugt die Senkrechte zur Geraden g durch den Punkt P.




hoehe(g,P,name)

h(g,P,name)


Erzeugt die senkrechte Gerade 'name' durch den Punkt P, aber zeichnet nur die Höhe, d.h. die Strecke von P zum Fußpunkt des Lots von P auf g.





winkelhalbierende(g1,g2,name)

wh(g1,g2,name)


Erzeugt die winkelhalbierende Gerade am Schnittpunkt der Geraden g1 und g2.



winkelhalbierende(g1,g2,name,-)

wh(g1,g2,name,-)


Erzeugt die 'andere' winkelhalbierende Gerade am Schnittpunkt der Geraden g1 und g2.



winkelhalbierende(P1,P2,P3,name)

wh(P1,P2,P3,name)


Erzeugt die winkelhalbierende Gerade im Winkel P1, P2, P3.




tangente(K,P,name)

t(K,P,name)


Erzeugt die Tangente durch P an K. Liegt P nicht auf K, dann wird die Normale zur Geraden MP durch P erzeugt. (M der Mittelpunkt des Kreises).





Sekundäre Konstruktoren für Kreise:



bogen(P1,P2,P3,name)

b(P1,P2,P3,name)


Erzeugt einen Kreisbogen mit Zentrum P1 von P2 nach P3. Der Kreis hat den Radius |P1P2|.

Anmerkung: 'Bogen' verhält sich zu 'Kreis' wie 'Strecke' zu 'Gerade'.

Beispiel:






Farben und Färben, Strichstärke





color(farbe)

c(farbe)


Bestimmt die Farbe für den Zeichenstift.

Für 'farbe' kann ein bekannter Farbname oder jeder Hex-Code angegeben werden.

Information über die bekannten Farbnamen mit dem Befehl: geoprint(Colors)



pen(dicke)


Bestimmt die Strichstärke für Geraden, Kreise und Funktionen.

Für 'dicke' kann 1 (normal) oder 2 (dicker) angegeben werden.



ausfuellen(K,farbe[,top])

fuellen(K,farbe[,top])

fill(K,farbe[,top])

f(K,farbe[,top])


Füllt den Kreis K mit Farbe 'farbe'. Die Färbung läßt die Konturen der vorher gezeichneten Objekte sichtbar.

Die Füllung erfolgt standardmäßig linientransparent, d.h. alle im Füllbereich gelegenen, sichtbaren Linien und Punkt bleiben über der Farbfläche sichtbar.

Mit dem optionalen Schlüsselwort top als letztem Parameter wird die Färbung deckend ausgeführt, d.h. im Füllbereich liegende Punkte und Linien werden verdeckt. Der 'top'-Parameter ist auch bei allen folgenden Füllvarianten möglich.


ausfuellen(K,farbe,top)

fuellen(K,farbe,top)

fill(K,farbe,top)

f(K,farbe,top)


Füllt den Kreis K mit Farbe 'farbe'. Die Färbung liegt über allen vorher gezeichneten Objekten.


ausfuellen(P1,P2,P3,...,farbe[,top])

fuellen(P1,P2,P3,...,farbe[,top])

fill(P1,P2,P3,...,farbe[,top])

f(P1,P2,P3,...,farbe[,top])


Füllt das Polygon mit den Ecken P1, P2, P3, ... in der Farbe 'farbe'

Information über die bekannten Farbnamen mit dem Befehl: geoprint(Colors)



ausfuellen(x,y,farbe)

fuellen(x,y,farbe)

fill(x,y,farbe)

f(x,y,farbe)


Füllt die Fläche, in der (x,y) liegt, mit der Farbe 'farbe'. Die zu füllende Fläche wird durch Linien in der aktuellen Schreibfarbe begrenzt. Alle vorher in dem Gebiet gezeichneten Objekte werden übermalt.

Hinweis: Diese Art des Füllens ist geeignet, wenn man ein von Linien gleicher Farbe berandetes Gebiet färben möchte. Sind Linien oder Kreise in verschiedenen Farben vorhanden, dann wird ausschließlich die aktuelle Farbe als Grenze für die Farbfüllung respektiert.

Information über die bekannten Farbnamen mit dem Befehl: geoprint(Colors)








ausfuellen2(x,y,farbe)

fuellen2(x,y,farbe)

fill2(x,y,farbe)

f2(x,y,farbe)


Füllt die Fläche in der (x,y) liegt mit der Farbe 'farbe'. Die Füllung erfolgt als flood-fill, d.h. mit Farbe 'farbe' wird ausgehend von (x,y) das größte zusammenhängende Gebiet gefärbt, das die gleiche Farbe wie (x,y) hat.

Hinweis: Diese Art des Füllens ist geeignet, wenn man ein von Linien beliebiger Farbe berandetes Gebiet färben möchte.

Information über die bekannten Farbnamen mit dem Befehl: geoprint(Colors)









repaint(objektname[,color])


Das Objekt 'objektname' wird neu gezeichnet.

Optional kann eine Farbe angegeben werden.

Mögliche Anwendungen:
  1. Eine mit 'top' gefüllte Fläche verdeckt mehrere Punkte, von denen aber einer wieder sichtbar gemacht werden soll.

  2. Ein Kurve soll nach einer Änderung des Kurvenparamters für den geänderten Parameter gezeichnet werden.





Beschriftungen und Zahlenwerte zeigen




label(objekt)

label(objekt,x,y)

print(objekt)

print(objekt,x,y)


Zeigt zu einem Objekt (punkt, gerade, kreis, winkel, abstand) Namen und Koordinaten.

Mit den optionalen x-y-Werten kann man die linke obere Ecke des Labels selbst festlegen.

Ansonsten wird das Label 'in der Nähe' des Objekts gezeigt.


print(konstante,x,y)


Zeigt den Wert einer Konstanten an der Position (x,y) = linke obere Ecke.


print(text,x,y)


Zeigt einen Text an der Position (x,y) = linke obere Ecke.

Der Text wird von fed interpretiert.




Parameter für geoprint() zur Ausgabesteuerung


Syntax für geoprint:

geoprint(name,bildbezeichnung,

clip_X0,clip_y0,clip_X1,clip_Y1,zoom)



name

Mit 'name' wird das so benannten Bild ausgegeben.


beschriftung

Beschriften von fertigen Bildern mit geoprint:

'bildbezeichnung' wird an der rechten unteren Ecke des Bildes als Bildbezeichnung eingedruckt.


Clipping

Ist das Bild zu groß oder liegt das Objekt ungünstig, dann kann ein Rechteck ausgeschnitten werden.

Dabei ist (clip_X0,clip_Y0) die linke untere Ecke und (clip_X1,clip_Y1) die rechte obere Ecke des Clip-Rechtecks.
Die Angabe erfolgt in virtuellen Koordinaten (nicht in Pixeln).


zoom

'zoom' vergrößert/verkleinert das Bild um den angegebenen Faktor.

Das gezoomte Bild darf nicht größer als 800x800 Pixel werden


Hinweis: Will man keine Beschriftung, und keinen Ausschnitt, aber in doppelter Größe zeichnen, dann läßt man die nicht benötigten Parameter leer.

Beispiel: geoprint(,,,,,,2)

Fehler und Fehlermeldungen



Fehlermeldungen werden in rot in die Zeichnung eingedruckt, sofern eine Zeichnung erstellt werden konnte.

Ansonsten werden Fehlermeldungen auf der sog. 'System-Ebene' gesammelt. Die System-Ausgabe wird automatisch angezeigt, wenn keine andere Zeichnung hat erstellt werden können.

Man kann die System-Ebene aber auch freiwillig mit dem Befehl 'geoprint(System)' zur Anzeige bringen.


Hilfe



Dies ist vorläufig das Handbuch.

Es sieht kompliziert aus, weil vieles noch ohne Beispiel ist. Versuche es mit Intuition.

Eine bessere Darstellung soll bald folgen.

Darin will ich die Erkenntnisse aus dem ersten Feldtest berücksichtigen.




(C) Martin Wohlgemuth (Matroid) 2003

Letzte Ergänzung: 10.2.2006


Dieser Artikel kommt von Matroids Matheplanet
http://matheplanet.com

Die Url für diesen Artikel ist:
http://matheplanet.com/default3.html?article=457