Scriptsprache von Canvas Painter
Der Canvas Painter versteht eine einfache Script- Sprache, mit der Zeichnungen erzeugt werden können. Die Scripte werden als Dateien hochgeladen und unmittelbar ausgeführt.
Grundaufbau eines Scriptes
Ein Script ist ein JSON - Array, das aus Objekten besteht, die JavaScript- Canvas- Befehle darstellen:
[ {Befehl 1}, ..., {Befehl n} ]
Jeder Befehl ist ein JSON- Objekt, das mindestens die Eigenschaft type besitzt. type definiert dabei den Befehlstyp:
{ "type": <Typnummer>, ... }
Folgende Befehlstypen existieren
Befehl | Typnummer | Beschreibung | Beispiel |
---|---|---|---|
beginPath | 1 | Startet mit dem Zeichen eines Linienzuges/Umrandung. Pfade können mittels closePath automatisch zu geschlossenen Figuren vervollständigt werden. Konstruiert wird der Linienzug mit Pfadkommandos wie lineTo und moveTo. Tatsächlich gezeichnet wird er erst durch das Kommando stroke |
{"type":1} |
closePath | 2 | Schließt einen Pfad. Die aktuelle Position ist dann die Position, an welcher der Pfad begann. |
{"type":2} |
strokeStyle | 3 | Linienstil: definiert die Farbe. Hier können HTML- Farbwerte eingetragen werden |
{"type":3,"Style":"#FFA000"} |
fillStyle | 4 | Füllstil: definiert die Farbe, mit der geschlossene Flächen gefüllt werden. Hier können HTML- Farbwerte eingetragen werden |
{"type":4,"Style":"#FFA000"} |
moveTo | 5 | Hebt den Plotterstift von der Zeichenfläche und bewegt ihn an eine neue Position. Es wird nicht gezeichnet. |
{"type":5,"X":100.0,"Y":200.0}, |
lineTo | 6 | Bewegt den Plotterstift auf der Zeichenfläche an eine neue Position. Es wird eine Linie gezeichnet. |
{"type":6,"X":200.0,"Y":300.0}, |
fillRect | 7 | Zeichnet ein Rechteck und füllt es. |
{"type":7,"pX":200.0,"pY":300.0, "Width":100.0, "Heigth":100.0} |
arc | 8 | Zeichnet einen Kreisbogen und füllt ihn. |
{"type":8,"pX":75.0, "pY":242.0,"R":70.0,"PhiStart":0,"PhiStop":3.14,"Clockwise":true} |
stroke | 9 | Alle im Pfad definierten Linien werden nun tatsächlich gezeichet |
{"type":9} |
fill | 10 | Alle im Pfad definierten Flächen werden nun tatsächlich gefüllt |
{"type":10} |