fed geo - Geometrie-Erweiterung im Formeleditor
Von: matroid
Datum: So. 22. Juni 2003 22:11:51
Thema: Matroids Matheplanet
\(\newcommand{\IX}{\mathbb{X}} \newcommand{\IW}{\mathbb{M}} \newcommand{\politician}[1]{\text{Ich habe die Frage nicht verstanden. #1}} \newcommand{\ba}{\begin{aligned}} \newcommand{\ea}{\end{aligned}} \newcommand{\bpm}{\begin{pmatrix}} \newcommand{\epm}{\end{pmatrix}} \newcommand{\bc}{\begin{cases}} \newcommand{\ec}{\end{cases}} \newcommand{\on}{\operatorname} \newcommand{\ds}{\displaystyle}\)

\geo
e(385,308) x(0,5) y(-1,3)
p(3,1,p1)
p(1.5,1,p2)
k(p1,1.5,k1,nolabel)
k(p2,1.1,k2)
sp(k2,k1,Z)
f(k1,beige)
f(k2,lavender)
f(p2,Z+,p1,Z-,silver)
c(red)
s(p2,p1,s)
s(p1,Z+,r)
w(r,s,\a,-1)
label(k1,3.5,2.26)
label(\a,3,0.6)
print(\big\Beispiel____ Erstellt mit \darkred\ fed \blue\ geo,0.2,3)
\geooff
geoprint()

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.

\geo
punkt(1,1,A) punkt(4,1,B) punkt(3,4,C)
strecke(A,B,c)
strecke(B,C,a)
strecke(C,A,b)
mitte(A,B,Mc)
mitte(B,C,Ma)
senkrechte(c,Mc,sc)
senkrechte(a,Ma,sa)
schnittpunkt(sc,sa,M)
abstand(M,C,r)
color(blue)
kreis(M,r,Umkreis)
\geooff
geoprint()

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 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 Kreuz (+), 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.

Konstanten können auch Rechnungen ausführen, auch unter Verwendung anderer, vorher definierter, Konstanten:
\geo
xy(0,2)ebene(100,100)
konst(a,1)
konst(b,2)
konst(a+b,a+b)
print(a+b,0.5,1)
\geooff
geoprint()

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:


\geo
xy(-7.2,7.2)
c(blue)
param(phi,2,720,2)
kurve((log(phi))*sin(deg2rad(2*phi)),(log(phi))*cos(deg2rad(2*phi)),logspiral)
param(phi,0.1,2,0.1)
repaint(logspiral)
p(logspiral,40)
\geooff
geoprint(,Logarithmische Spirale)

Und ein Beispiel mit Converter 'deg2rad':
\geo
xy(-9,9)
param(phi,0,360,1,deg2rad)
kurve(5*cos(phi)-4*cos(5*phi),5*sin(phi)-4*sin(5*phi),Epizykloide)
\geooff
geoprint(,Epizykloide)
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:
\geo 2
x(-0.3,4.5)y(-1,4.5)
p(2,2,p1)
p(4,2,p2)
k(p1,p2,K,hide)
p(K,90,p3)
p(K,140,p4)
color(red)
b(p1,p2,p3,B1,nolabel)
color(blue)
b(p1,p3,p4,B2)

c(black)
b(p1,p4,p2,B3)
f(B3,lightyellow)
f(B2,aquamarine)
f(B1,lavender)
\geooff
geoprint()

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)
\geo
ebene(200,200) x(-1,3) y(-3,1)
plot((x-1)*(x-1)-2.5)
fill(1,-0.5,F2d4e6)
label((x-1)^2-2.5,0.3,0.9)
\geooff
geoprint(,Beispiel fill)

\geo
ebene(200,200) x(-1,2) y(-2,1)
p(0.5,-0.5,p1)
k(p1,1)
fill(1,-0.3,F2d4e6)
\geooff
geoprint(,Beispiel fill)

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.
Weiterer Hinweis: Sollte der Punkt (x,y) zufällig ein Gitter- oder Achsenpunkt oder ein Punkt auf einer Berandung eines Gebiets sein, so kommt es mit fill2 zu einer Färbung des Gitterpunkts oder der Achsen oder der Berandung, denn nur diese haben dann die gleiche Farbe wie (x,y). Um mit fill2 das Innere eines Gebiets zu färben, muss der Punkt wirklich im Inneren liegen und nicht auf einer Achse oder einem markierten Gitterpunkt.
Information über die bekannten Farbnamen mit dem Befehl: geoprint(Colors)
\geo
ebene(200,200) x(-1,3) y(-3,1)
plot((x-1)*(x-1)-2.5)
fill2(1,-0.5,F2d4e6)
label((x-1)^2-2.5,0.3,0.9)
\geooff
geoprint(,Beispiel fill2)

\geo
ebene(200,200) x(-1,2) y(-2,1)
p(0.5,-0.5,p1)
k(p1,1)
fill2(1,-0.3,F2d4e6)
\geooff
geoprint(,Beispiel fill2)

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
https://matheplanet.de

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