Benutzer-Werkzeuge

Webseiten-Werkzeuge


mathe:konstruktion:sprache

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

mathe:konstruktion:sprache [2008/01/11 21:43]
admin
mathe:konstruktion:sprache [2011/02/14 16:35] (aktuell)
admin
Zeile 10: Zeile 10:
 Zu den gültig definierten Objekten gehören Zahlen, Zeichenketten in (doppelten) Anführungszeichen,​ Objekte, die weiter unten noch einzeln aufgeführt werden und Listen daraus. Listen werden in geschweiften Klammern notiert. Elemente von Listen oder Parameterlisten werden durch Kommata getrennt. Zu den gültig definierten Objekten gehören Zahlen, Zeichenketten in (doppelten) Anführungszeichen,​ Objekte, die weiter unten noch einzeln aufgeführt werden und Listen daraus. Listen werden in geschweiften Klammern notiert. Elemente von Listen oder Parameterlisten werden durch Kommata getrennt.
  
-Zahlen haben das in Programmiersprachen übliche Format (Dezimalpunkt,​ Zehnerexponent mit e), dürfen aber der Bequemlichkeit mit ''​°''​ enden, was einer Multiplikation mit ¿/180 entspricht. Dies verwendet man üblicherweise bei Winkeln, das sind Zahlen, die mit ''<''​ beginnen.+Zahlen haben das in Programmiersprachen übliche Format (Dezimalpunkt,​ Zehnerexponent mit e), dürfen aber der Bequemlichkeit mit ''​°''​ enden, was einer Multiplikation mit π/180 entspricht. Dies verwendet man üblicherweise bei Winkeln, das sind Zahlen, die mit ''<''​ beginnen.
  
 Eine gültige (wenn auch völlig sinnlose) Konstruktionsbeschreibung zeigt folgendes Beispiel: Eine gültige (wenn auch völlig sinnlose) Konstruktionsbeschreibung zeigt folgendes Beispiel:
Zeile 88: Zeile 88:
   * Die Hints haben üblicherweise die Form ''​Hintname:​wirksamesObjekt''​. Der ''​Hintname''​ sagt aus, worauf ''​wirksamesObjekt''​ Einfluss nimmt. Wie Hintname lauten muss, ist unten jeweils aufgeführt..   * Die Hints haben üblicherweise die Form ''​Hintname:​wirksamesObjekt''​. Der ''​Hintname''​ sagt aus, worauf ''​wirksamesObjekt''​ Einfluss nimmt. Wie Hintname lauten muss, ist unten jeweils aufgeführt..
   * Manche Hints braucht man so oft, dass die Angabe des Hintnamens unangenehm wird. Diese besonderen Hints dürfen dann auch ohne Hintname (und ohne Doppelpunkt) angegeben werden. Sie werden allein auf Grund des Typs von ''​wirksamesObjekt''​ erkannt.   * Manche Hints braucht man so oft, dass die Angabe des Hintnamens unangenehm wird. Diese besonderen Hints dürfen dann auch ohne Hintname (und ohne Doppelpunkt) angegeben werden. Sie werden allein auf Grund des Typs von ''​wirksamesObjekt''​ erkannt.
-  * Wenn in der Liste der Hints irgendetwas nicht zusammenpasst,​ wird der Hint ignoriert und so verfahren, als wäre er nicht genannt worden. So ist z.B. der Hint ''​Strichfarbe:​&quot;blau&quot;''​ ein sinnloser Hint, weil nach dem Doppelpunkt statt eines Strings eine Farbe definiert werden müsste, also etwa ''​Strichfarbe:​Farbe(0,​0,​1)''​ oder ''​Strichfarbe:​_blau''​. Die Darstellung erfolgt in diesem Fall aber ohne Fehlermeldung in der Standardfarbe.+  * Wenn in der Liste der Hints irgendetwas nicht zusammenpasst,​ wird der Hint ignoriert und so verfahren, als wäre er nicht genannt worden. So ist z.B. der Hint ''​Strichfarbe:​"blau"''​ ein sinnloser Hint, weil nach dem Doppelpunkt statt eines Strings eine Farbe definiert werden müsste, also etwa ''​Strichfarbe:​Farbe(0,​0,​1)''​ oder ''​Strichfarbe:​_blau''​. Die Darstellung erfolgt in diesem Fall aber ohne Fehlermeldung in der Standardfarbe.
   * Es besteht keine Gefahr der Kollision von Hintnamen mit selber definierten Namen. Hintnamen werden gesondert erkannt. Nach dem Doppelpunkt werden vernünftigerweise selber definierte Namen als solche erkannt. Die Angabe ''​Strichfarbe:​blau''​ ist also sinnvoll, wenn vorher irgendwo definiert wurde ''​blau=Farbe(...)''​.   * Es besteht keine Gefahr der Kollision von Hintnamen mit selber definierten Namen. Hintnamen werden gesondert erkannt. Nach dem Doppelpunkt werden vernünftigerweise selber definierte Namen als solche erkannt. Die Angabe ''​Strichfarbe:​blau''​ ist also sinnvoll, wenn vorher irgendwo definiert wurde ''​blau=Farbe(...)''​.
-  * ''​Farbe(r,​g,​b)''​ Farbe mit den drei Anteilen für Rot, Grün und Blau. Die einzelnen Werte müssen Zahlen zwischen 0 und 1 sein. Je größer die Werte sind, desto heller ist die Farbe. Sind alle drei Werte 1, ist die Farbe Weiß gemeint.\\  +  * ''​Farbe(r,​g,​b)''​ Farbe mit den drei Anteilen für Rot, Grün und Blau. Die einzelnen Werte müssen Zahlen zwischen 0 und 1 sein. Je größer die Werte sind, desto heller ist die Farbe. Sind alle drei Werte 1, ist die Farbe Weiß gemeint. ​(Ohne Angabe der Farbe wird stets schwarz verwendet. Bereits definiert sind die unten genannten Farben.)
-Ohne Angabe der Farbe wird stets schwarz verwendet. Bereits definiert sind die unten genannten Farben.+
   * ''​Strich(d)''​ ein durchgezogener Strich der Dicke ''​d''​ Points. Bereits definiert sind die unten genannten Striche.   * ''​Strich(d)''​ ein durchgezogener Strich der Dicke ''​d''​ Points. Bereits definiert sind die unten genannten Striche.
   * ''​Strich(d,​{s1,​u1,​s2,​u2,​...})''​ ein Strich der Dicke ''​d''​ Points. Der Stil des Strichs ist nicht durchgezogen,​ sondern bestehend aus: sichtbares Stück der Strichlänge ''​s1'',​ unsichtbares Stück der Unterbrechungslänge ''​u1'',​ usw. Wenn das Muster für den darzustellenden Strich nicht reicht, wird es wiederholt.   * ''​Strich(d,​{s1,​u1,​s2,​u2,​...})''​ ein Strich der Dicke ''​d''​ Points. Der Stil des Strichs ist nicht durchgezogen,​ sondern bestehend aus: sichtbares Stück der Strichlänge ''​s1'',​ unsichtbares Stück der Unterbrechungslänge ''​u1'',​ usw. Wenn das Muster für den darzustellenden Strich nicht reicht, wird es wiederholt.
Zeile 98: Zeile 97:
   * ''​Spitze:​_Pfeil'',​ dass ein Pfeil gezeichnet wird.   * ''​Spitze:​_Pfeil'',​ dass ein Pfeil gezeichnet wird.
   * ''​Zeichner({g1,​g2,​...},​hints)''​ zeichnet einen Linienzug durch die Positionen der angegebenen geometrischen Objekte. &​Uuml;​blicherweise wird man meist Punkte verwenden. Dadurch hat man also die Möglichkeit,​ Linien zu zeichnen, die nicht unendlich lang sind.   * ''​Zeichner({g1,​g2,​...},​hints)''​ zeichnet einen Linienzug durch die Positionen der angegebenen geometrischen Objekte. &​Uuml;​blicherweise wird man meist Punkte verwenden. Dadurch hat man also die Möglichkeit,​ Linien zu zeichnen, die nicht unendlich lang sind.
-  * ''​Anzeige(was,​wo,​hints)''​ schreibt einen Text in die Zeichnung. Der Inhalt und das Aussehen werden größtenteils in den ''​hints''​ festgelegt. Da aber fast immer ein Parameter dargestellt werden soll, muss mit ''​was''​ angegeben werden, von welchem Objekt. Da die meisten Objekte mehrere Parameter haben, wird in einem Formatierungsstring in den ''​hints''​ definiert, welcher Parameter gewünscht ist. Diese sind durchnummeriert mit ganzen Zahlen ab 0. Mit ''​wo''​ muss ein Objekt angegeben werden, von dem dann die Koordinaten verwendet werden, um die Anzeige dort zu platzieren. Vernünftigerweise nimmt man da meistens einen Punkt, den man selbst nicht zeichnet.\\  +  * ''​Anzeige(was,​wo,​hints)''​ schreibt einen Text in die Zeichnung. Der Inhalt und das Aussehen werden größtenteils in den ''​hints''​ festgelegt. Da aber fast immer ein Parameter dargestellt werden soll, muss mit ''​was''​ angegeben werden, von welchem Objekt. Da die meisten Objekte mehrere Parameter haben, wird in einem Formatierungsstring in den ''​hints''​ definiert, welcher Parameter gewünscht ist. Diese sind durchnummeriert mit ganzen Zahlen ab 0. Mit ''​wo''​ muss ein Objekt angegeben werden, von dem dann die Koordinaten verwendet werden, um die Anzeige dort zu platzieren. Vernünftigerweise nimmt man da meistens einen Punkt, den man selbst nicht zeichnet. 
-In den hints können folgende Eintragungen gemacht werden:\\  +  ​* ​In den hints können folgende Eintragungen gemacht werden: 
-''​Stiftfarbe:​Farbe(...)'',​ ''​Hintergrund:​Farbe(...)'',​ ''​dx:​Zahl'',​ ''​dy:​Zahl''​ und ''​Format:​String''​\\  +    ​* ​''​Stiftfarbe:​Farbe(...)'',​ ''​Hintergrund:​Farbe(...)'',​ ''​dx:​Zahl'',​ ''​dy:​Zahl''​ und ''​Format:​String''​ (''​Stiftfarbe''​ und ''​Format''​ sind Defaultangaben,​ d.h. der Hintname darf weggelassen werden.) 
-(''​Stiftfarbe''​ und ''​Format''​ sind Defaultangaben,​ d.h. der Hintname darf weggelassen werden.)\\  +    ​* ​''​dx''​ und ''​dy''​ geben an, um wie viele Pixel die Anzeige von der Position ''​wo''​ entfernt erfolgen soll. Das hat den Zweck, dass man für mehrere Anzeigen den gleichen Ort ''​wo''​ verwenden kann, jedoch mit jeweils verschiedenen Verschiebungen ''​dx''​ oder ''​dy''​. Verändert man dann die Lage von ''​wo'',​ so wandern alle Anzeigen auf einmal mit. 
-''​dx''​ und ''​dy''​ geben an, um wie viele Pixel die Anzeige von der Position ''​wo''​ entfernt erfolgen soll. Das hat den Zweck, dass man für mehrere Anzeigen den gleichen Ort ''​wo''​ verwenden kann, jedoch mit jeweils verschiedenen Verschiebungen ''​dx''​ oder ''​dy''​. Verändert man dann die Lage von ''​wo'',​ so wandern alle Anzeigen auf einmal mit.\\  +  ​* ​Beispiel: Sei ''​A=Punkt(10,​1)''​ Dann bewirkt ''​Anzeige(A,​A,​{"​(%0 #.##%|%1 #​.##​%)",​dx:​10,​Stiftfarbe:​Farbe(1,​0,​0),​Hintergrund:​Farbe(0,​1,​0)})''​ die Anzeige der Koordinaten des Punktes ​''​A'' ​in einer Entfernung von 10 Pixeln rechts von ''​A'' ​in etwa folgender Weise: (1,​13|-2,​2) 
-Beispiel: Sei ''​A=Punkt(10,​1)''​ Dann bewirkt\\  +    ​* ​Ein ''​%''​ leitet ein Format ein. Danach folgt die Nummer des gewünschten Parameters (im Beispiel 0 bzw. 1). Danach kann die Formatierung angegeben werden. Ein weiteres ''​%''​ beendet das Format und schaltet auf normale Textwiedergabe. Daraus folgt, dass das Zeichen ''​%''​ selber nicht darstellbar ist. Deswegen dient es als Fehlermelder:​ Taucht es in der Ausgabe auf, so heißt das, dass der Formatstring fehlerhaft ist. Verzichtet man ganz auf die Angabe eines Formats, so wird ein Format verwendet, das am besten zum verwendeten Objekt passt. 
-''​Anzeige(A,​A,​{"​(%0 #.##%|%1 #​.##​%)",​dx:​10,​Stiftfarbe:​Farbe(1,​0,​0),​Hintergrund:​Farbe(0,​1,​0)})''​\\  +    ​* ​Bei eindimensionalen Größen, wie Längen und Winkeln ist Parameter 0 der Wert und Parameter 1 der Wert multipliziert mit 180/π (also der Wert in Grad). Dies ist sinnvoll, wenn man Winkel in Grad angeben will. Bei zweidimensionalen Objekten kommt erst die Position 0 für x, 1 für y und dann die Eigenheiten,​ also bei Kreisen der Radius (2) und bei Geraden der Richtungsvektor (2 und 3) und der Drehwinkel im Bogen- und Gradmaß (4 und 5). Vektoren haben noch als 6. Parameter ihre Länge. 
-die Anzeige der Koordinaten des Punktes A in einer Entfernung von 10 Pixeln rechts von A in etwa folgender Weise: (1,13|-2,2)\\  +    ​* ​Gibt man eine zu große Parameternummer an, so erhält man keinen Wert.
-Ein ''​%''​ leitet ein Format ein. Danach folgt die Nummer des gewünschten Parameters (im Beispiel 0 bzw. 1). Danach kann die Formatierung angegeben werden. Ein weiteres ''​%''​ beendet das Format und schaltet auf normale Textwiedergabe. Daraus folgt, dass das Zeichen ''​%''​ selber nicht darstellbar ist. Deswegen dient es als Fehlermelder:​ Taucht es in der Ausgabe auf, so heißt das, dass der Formatstring fehlerhaft ist. Verzichtet man ganz auf die Angabe eines Formats, so wird ein Format verwendet, das am besten zum verwendeten Objekt passt.\\  +
-Bei eindimensionalen Größen, wie Längen und Winkeln ist Parameter 0 der Wert und Parameter 1 der Wert multipliziert mit 180/¿ (also der Wert in Grad). Dies ist sinnvoll, wenn man Winkel in Grad angeben will. Bei zweidimensionalen Objekten kommt erst die Position 0 für x, 1 für y und dann die Eigenheiten,​ also bei Kreisen der Radius (2) und bei Geraden der Richtungsvektor (2 und 3) und der Drehwinkel im Bogen- und Gradmaß (4 und 5). Vektoren haben noch als 6. Parameter ihre Länge.\\  +
-Gibt man eine zu große Parameternummer an, so erhält man keinen Wert.+
   * ''​Anzeige(was,​wo)''​ wie oben, aber mit Standardwerten für alles was durch Hints definierbar ist.   * ''​Anzeige(was,​wo)''​ wie oben, aber mit Standardwerten für alles was durch Hints definierbar ist.
   * ''​Anzeige(wo,​hints)''​ dient der Anzeige eines Strings (deshalb entfällt der Parameter ''​was''​). Der String muss bei den Hints mitgegeben werden und darf benannt werden mit ''​Format:''​. Damit wird jedoch ein etwaiges ''​%''​-Zeichen nicht als Parameter gewertet, sondern als solches wiedergegeben. Die anderen Hints funktionieren sinngemäß weiter.   * ''​Anzeige(wo,​hints)''​ dient der Anzeige eines Strings (deshalb entfällt der Parameter ''​was''​). Der String muss bei den Hints mitgegeben werden und darf benannt werden mit ''​Format:''​. Damit wird jedoch ein etwaiges ''​%''​-Zeichen nicht als Parameter gewertet, sondern als solches wiedergegeben. Die anderen Hints funktionieren sinngemäß weiter.
Zeile 121: Zeile 117:
 Als ''​Spitze''​ von Linienzügen und Vektoren gibt es ''​_keine'' ​ Als ''​Spitze''​ von Linienzügen und Vektoren gibt es ''​_keine'' ​
 und ''​_Pfeil''​. und ''​_Pfeil''​.
 +
mathe/konstruktion/sprache.1200084228.txt.gz · Zuletzt geändert: 2008/01/11 00:00 (Externe Bearbeitung)