Zum Inhalt

Erscheinungsbild von Objekten

Die Zeichenengine von Cinderella speichert eine Standarderscheinung für jede Art von Element (Punkt, Linie, Text), das gezeichnet werden kann. Wenn eine Zeichenanweisung ohne Modifizierer aufgerufen wird, wird die Standarderscheinung verwendet, um das Objekt zu rendern. Dies ist sehr nützlich zum Zeichnen von Objekten, die grafisch identisch aussehen. Die Hauptattribute, die durch das Erscheinungsbild beeinflusst werden, sind die Farbe, Größe und Deckkraft des Objekts.

Elemente auf den Erscheinungsstapel legen: gsave()

Elemente vom Erscheinungsstapel entfernen: grestore()

Erscheinungsstapel löschen: greset()

Beschreibung: Es ist oft notwendig, vorübergehend zu einer anderen Standarderscheinung zu wechseln. Zu diesem Zweck werden die Operatoren gsave() und grestore() bereitgestellt. Der gsave-Operator speichert alle Informationen über den grafischen Zustand (Größen, Farben, Deckkraft) in einem Stapel. Der grestore-Operator kehrt diesen Effekt um, indem er die Informationen vom Stapel entfernt. Schließlich setzt der greset-Operator den Stapel auf seinen Ausgangszustand zurück. Zusätzlich zu Erscheinungsinformationen werden auch Informationen zum lokalen Koordinatensystem gespeichert.

Siehe auch: Script-Koordinatensystem



Größe

Punktgröße einstellen: pointsize(<number>)

Liniengröße einstellen: linesize(<number>)

Textgröße einstellen: textsize(<number>)

Standardgrößen können durch drei Operatoren festgelegt werden: pointsize(<number>), linesize(<number>) und textsize(<number>). Die Größe wird durch eine reelle Zahl dargestellt. Für Linien und Punkte wird angenommen, dass die Größen ganze Zahlen zwischen 1 und 20 sind. Die Größen kodieren absolute Pixelwerte. Der folgende Code erzeugt das untenstehende Bild:

sizes=1..15;
forall(sizes,
  pointsize(#);
  textsize(#+4);
  draw((#,0`;
  drawtext`#,1),#);
)

Farben

Farben werden durch Listen von drei reellen Zahlen dargestellt, die die Rot-Grün-Blau-Komponente der Farbe darstellen. Jede Zahl wird angenommen zwischen 0 und 1 zu liegen, wobei 0 Schwarz bedeutet und 1 den vollständigen Farbwert bedeutet. Mit diesem RGB-Farbschema werden die acht Grundfarben durch die folgenden Vektoren dargestellt:

Farbe: Vektor:
Schwarz (0,0,0)
Rot (1,0,0)
Grün (0,1,0)
Blau (0,0,1)
Cyan (0,1,1)
Magenta (1,0,1)
Gelb (1,1,0)
Weiß (1,1,1)

Punktfarbe einstellen: pointcolor(<colorvec>)

Linienfarbe einstellen: linecolor(<colorvec>)

Textfarbe einstellen: textcolor(<colorvec>)

Farbe einstellen: color(<colorvec>)

Die Standardfarben können durch drei Operatoren festgelegt werden: pointcolor(<colorvec>), linecolor(<colorvec>) und textcolor(<colorvec>). Darüber hinaus setzt der Operator color(<colorvec>) gleichzeitig die Farbe aller Objekttypen.

Wenn reelle Werte als Farbkomponenten interpretiert werden, werden Werte unter 0 durch 0 ersetzt und Werte über 1 durch 1 ersetzt.

Beispiel: Der folgende Code erzeugt das untenstehende Bild:

n=13;
ind=1..n;
pointsize(9);
forall(ind,i,
  forall(ind,j,
    pointcolor((i/n,j/n,0`;
    draw`i,j),noborder->true);
    pointcolor((0,i/n,j/n`;
    draw`i+15,j),noborder->true);
    pointcolor((j/n,0,i/n`;
    draw`i+30,j),noborder->true);


![](../assets/wiki_up/ColorsX.png)
  )
)

Deckkraft

Deckkraft einstellen: alpha(<number>)

Beschreibung: Deckkraft wird durch einen reellen Wert zwischen 0 und 1 kodiert. Hier steht 0 für vollständig transparent und 1 für vollständig undurchsichtig. Werte außerhalb dieses Bereichs werden entweder auf 0 oder auf 1 gesetzt.



Farbfunktionen

Um Berechnungen mit Farben etwas zu vereinfachen, sind einige Standardfunktionen deklariert, die Farbwerte zurückgeben.

Rote Farben: red(<number>)

Beschreibung: Dieser Operator erstellt einen RGB-Vektor, dessen Grün- und Blauwerte auf 0 gesetzt sind. Der Rotwert wird auf <number> gesetzt.


Grüne Farben: green(<number>)

Beschreibung: Dieser Operator erstellt einen RGB-Vektor, dessen Rot- und Blauwerte auf 0 gesetzt sind. Der Grünwert wird auf <number> gesetzt.


Blaue Farben: blue(<number>)

Beschreibung: Dieser Operator erstellt einen RGB-Vektor, dessen Rot- und Grünwerte auf 0 gesetzt sind. Der Blauwert wird auf <number> gesetzt.


Graufarben: gray(<number>)

Beschreibung: Dieser Operator erstellt einen RGB-Vektor, dessen Rot-, Grün- und Blauwerte alle auf <number> gesetzt sind.


Regenbogenfarben: hue(<number>)

Beschreibung: Dieser Operator erstellt einen RGB-Vektor, der eine der vollständig gesättigten Regenbogenfarben erzeugt. Der Wert von <number> liegt zwischen 0 und 1. Dieser Wertebereich stellt einen vollständigen Regenbogenfarb-Zyklus dar. Für größere Zahlen wiederholt sich der Zyklus regelmäßig.

Beispiel: Der folgende Code erzeugt das untenstehende Bild:

n=360;
ind=(1..n)/n;
linesize(2);
forall(ind,
  color(hue(#`;
  draw`0,0),(sin(#*2*pi),cos(#*2*pi)))
)


🤖 Diese Seite wurde automatisch mit KI (Claude) übersetzt und wartet noch auf Überprüfung. → Alle KI-übersetzten Seiten