29.17 Standard-Tags zum Zeichnen

Ab Hollywood 4.0 akzeptieren die meisten der Zeichnungsbefehle eine optionale Tabelle als Argument. Zum Beispiel können Sie die Tags angeben, die die Grafik skaliert oder automatisch dreht, bevor sie angezeigt wird.

Viele der Standard-Tags zum Zeichnen funktionieren nur, wenn Ebenen aktiviert sind. Einige können jedoch auch ohne Ebenen verwendet werden. Beachten Sie, dass die Grafikdaten des Quellobjekts nie verändert werden. Wenn Ebenen aktiviert sind, wird Hollywood die neue Ebene einfügen und sofort jede Transformation anwenden, bevor die Ebene sichtbar wird. Wenn das Ebenensystem ausgeschaltet ist, wird von der der ursprünglichen Grafik eine Kopie gemacht. Die Originalgrafikdaten werden niemals geändert (im Gegensatz zu Befehlen wie ScaleBrush(), RotateBrush(), TransformBrush() usw., die die Daten von Pinseln ändern). So können Sie sicher sein, dass Sie immer die beste Qualität erhalten, wenn die Transformationen mit den Standard-Tags zum Zeichnen anwenden, weil Hollywood immer die Originalgrafikdaten verwendet wird.

Für jeden Standard-Zeichnungs-Tag gibt es eine Voreinstellung, falls der Tag nicht angegeben wurde. Sie können diese Standardeinstellung mit dem Befehl SetDrawTagsDefault() ändern. Dies ist sehr nützlich, wenn Sie dauerhaft einen anderen Standardwert für einen bestimmten Tag verwenden möchten. Zum Beispiel wenn Sie dauerhaft einen Ankerpunkt von 0.5 / 0.5 anstelle von 0.0 / 0.0 haben wollen oder Sie ändern den Einsatz der Standard-Ebenenposition von vorderste zu hinterste usw.

Die folgenden Standard-Tags sind derzeit definiert:

Width, Height:
Wenn Sie diese Tags angeben, wird das Objekt auf die angegebene Größe geändert und anschließend angezeigt. (V4.0)

Rotate:
Dieser Tag wird die Grafik in Gradeinheiten drehen und dann anzeigen. (V4.0)

SmoothScale:
Wenn dieser Tag auf True gesetzt ist, wird beim Skalieren und/oder Drehen das Objekt mit Antialias interpoliert. Das sieht besser aus, ist aber auch langsamer. (V4.0)

ScaleX, ScaleY:
Das ist eine Alternative, um eine Objektgröße zu ändern. Sie müssen hier einen Fließkommawert übergeben, der den Skalierungsfaktor angibt. Zum Beispiel bedeutet 0.5 halb so groß, 2.0 hingegen doppelt so groß. Dies ist besonders praktisch, wenn Sie die Proportionen des Objekts beibehalten möchten. Wenn Sie den gleichen Faktor für ScaleX und ScaleY verwenden, wird das Seitenverhältnis der Grafik erhalten bleiben. Bitte beachten Sie, dass ScaleX/ScaleY und Width/Height nicht gleichzeitig gebraucht werden können. Entweder verwenden Sie ScaleX/ScaleY oder Width/Height. (V4.5)

Transform:
Mit diesem Tag können Sie eine 2x2 Transformationsmatrix angeben. Transformationsmatrizen sind nützlich, wenn Sie gleichzeitig Skalierung und Rotation anwenden oder ein Objekt spiegeln wollen. Sie übergeben eine Tabelle, welche die vier Bestandteile einer 2x2 Transformationsmatrix in der folgenden Reihenfolge enthält: sx, rx, ry, sy. Siehe TransformBrush für weitere Informationen über Transformationsmatrizen. Bitte beachten Sie, dass der Tag Transform und folgende sich gegenseitig ausschließen: Width/Height/ScaleX/ScaleY/Rotate. (V4.5)

AnchorX, AnchorY:
Sie können diese beiden Tags verwenden, um den Ankerpunkt des Grafikobjekts anzugeben (manchmal wird der Ankerpunkt auch "Hot Spot" genannt). Der Ankerpunkt kann jeder Punkt zwischen 0.0/0.0 (oben links des Grafikobjekts) und 1.0/1.0 (untere rechte Ecke des Grafikobjekts) sein. Das Zentrum des Grafikobjekts würde durch Ankerpunkt 0.5/0.5 definiert werden. Alle Transformationen (Skalierung, Drehung usw.) werden relativ zum Ankerpunkt angewendet. Auch ist die Position eines Objekts immer relativ zu dem Ankerpunkt. Werfen wir einen Blick auf den folgenden Code:

 
DisplayBrush(1, 0, 0, {AnchorX = 0.5, AnchorY = 0.5})

Mit dieser Befehlszeile wird der Pinsel im Zentrum von 0:0 erscheinen, weil der Ankerpunkt bei 0.5/0.5 eingestellt ist. Wenn die linke obere Ecke des Pinsels bei 0:0 angezeigt werden soll, müssen Sie einen Ankerpunkt von 0.0/0.0 verwenden (was auch der Standardankerpunkt ist). Ankerpunkte werden meistens nur dann verwendet, wenn Ebenen aktiviert sind. Sie können jedoch auch AnchorX/Y bei ausgeschaltenen Ebenen verwenden. Siehe SetLayerAnchor für weitere Informationen über das Ankerpunktekonzept. (V4.5)

Hidden:
Hier können Sie eine Ebene erstellen, die zunächst verborgen bleibt. Wenn Sie diesen Tag auf True setzen, werden die Grafiken als Ebene eingefügt werden. Allerdings werden sie nicht angezeigt, da die Ebene ausgeblendet ist. Diese Funktionalität läuft nur mit aktivierten Ebenen. Der Standardwert ist False. (V4.5)

InsertPos:
Hier können Sie die Einfügeposition für die neue Ebene angeben. Die Ebene wird an dieser Stelle eingefügt und schiebt alle anderen Ebenen in der Hierarchie nach unten. Die erste Ebene ist an Position 1. Geben Sie hier eine Position von 0 an, wird die Ebene als letzte eingefügt. Dies ist auch die Standardeinstellung. Sie können auch den Namen einer Ebene angeben, an dessen Position die neue Ebene eingefügt werden soll. Natürlich funktioniert diese Funktionalität nur mit aktivierten Ebenen. (V4.5)

Name:
Dieser Tag kann verwendet werden, um für die Ebene zum Zeitpunkt der Erstellung einen Namen zuzuweisen. Das ist so ziemlich das gleiche, wie wenn direkt nach dem Erstellen einer Ebene der Befehl SetLayerName() angewandt wird. Mit diesem Tag ersparen Sie etwas Tipparbeit und macht den Code besser lesbar. Dieser Tag wird nur berücksichtigt, wenn Ebenen aktiviert sind. Standardmäßig werden keine Namen den Ebenen, sondern nur IDs zugewiesen. (V4.5)

Group:
Wenn Ebenen aktiviert sind, können Sie diesen Tag verwenden, um die Ebene direkt zum Zeitpunkt der Erstellung an eine Gruppe anzuhängen. Dies ist so ziemlich dasselbe wie der Aufruf des Befehls GroupLayer() für die Ebene direkt nach dem Erstellen. Das Angeben des Tags Group hier erspart Ihnen nur etwas Tipparbeit und macht den Code besser lesbar. Dieser Tag wird nur verarbeitet, wenn Ebenen aktiviert sind. Siehe GroupLayer für Details. (V10.0)

Transparency:
Sie können mit diesem Tag eine globale Transparenz für dieses Grafikobjekt einstellen. Dies kann einen Wert im Bereich von 0 (keine Transparenz) bis 255 (volle Transparenz) sein oder alternativ eine Zeichenfolge, die einen Prozentsatz (zum Beispiel "50%" für die Hälfte der Transparenz) enthält. Der Standardwert ist 0. (V4.5)

GlobalTransparency:
Dies wird nur unterstützt, wenn Ebenen aktiviert sind. Wenn er auf True gesetzt ist, wird die Transparenzeinstellung der Ebene, die mit dem Tag Transparency oder mit Befehlen wie SetLayerTransparency() festgelegt wurde, auch auf den Schatten der Ebene angewendet. Aus irgendeinem Grund hat Hollywood dies nie standardmäßig getan und um die Kompatibilität mit Skripten aufrechtzuerhalten, die das alte Verhalten erwarten, wurde die Funktionalität mit einem neuen Tag hinzugefügt. Wenn Sie das neue Verhalten global für alle Ihre Ebenen aktivieren möchten, verwenden Sie einfach den Befehl SetDrawTagsDefault(), wobei GlobalTransparency auf True gesetzt ist. (V9.1)

Tint:
Mit diesem Tag können Sie eine globale Farbtönung für dieses Grafikobjekt angeben. Dies kann einen Wert von 0 (keine Tönung) bis hin zu 255 (Vollfarbtönung) oder alternativ eine Zeichenfolge sein, die einen Prozentsatz (zum Beispiel "50%" für mittlere Farbtönung) enthält. Wenn Sie etwas anderes als 0 gesetzt haben, müssen Sie auch eine Farbe im Tag TintColor einsetzen (siehe unten). Der Standardwert ist 0. Ab Hollywood 5.0 ist dieser Tag mit dem Filter Tint direkt verbunden. Somit gibt der Tag Tint das gleiche wie ein Tint-Filter in der unten angegebenen Filters-Tabelle an. (V4.5)

TintColor:
Nur erforderlich, wenn Sie auch den Tag Tint angegeben haben. In diesem Fall müssen Sie hier eine RGB-Farbe angeben, die für die Tönung verwendet wird. (V4.5)

Shadow:
Wenn Sie diesen Tag auf True setzen, wird das Grafikobjekt mit einem Schatten gezeichnet werden. Sie können das Aussehen des Schattens mit den Tags ShadowDir, ShadowSize, Shadow und ShadowRadius konfigurieren. Siehe unten für weitere Informationen. Dieser Tag wird nur unterstützt, wenn Ebenen eingeschaltet sind. Siehe SetLayerShadow für Details. (V5.0)

ShadowDir:
Gibt die Richtung des Schattens an. Dies muss mit einer Richtungskonstanten von Hollywood eingestellt werden. Dieser Tag wird nur berücksichtigt, wenn Shadow auf True gesetzt wurde (siehe oben). (V5.0)

ShadowColor:
Stellt die Farbe des Schattens ein. Dies muss ein ARGB-Wert sein und kann eine transparente Einstellung haben. Auch dieser Tag wird nur gehandhabt, wenn Shadow auf True gesetzt wurde (siehe oben). (V5.0)

ShadowPen:
Wenn der Palettenmodus auf #PALETTEMODE_PEN eingestellt ist und das Zeichnungsziel eine Palette verwendet, wird der Schatten mit dem hier angegebenen Stift gezeichnet, anstatt mit der Farbe, die im Tag ShadowColor von oben angegeben wurde. (V9.0)

ShadowSize:
Mit diesem Tag wird die Größe bzw. der Abstand des Schattens in Pixel angegeben. Wenn der Tag Shadow auf True gesetzt wurde, wird dieser Tag berücksichtigt, ansonsten wird er ignoriert (siehe oben). (V5.0)

ShadowRadius:
Definiert den Radius des Schattens. Wird nur berücksichtigt, wenn für Shadow True gesetzt wurde (siehe oben). (V5.0)

Border:
Dieser Tag kann verwendet werden, um die Grafik mit einem Rahmen zu zeichnen. Sie können das Aussehen des Rahmens mit den Tags BorderSize und BorderColor konfigurieren. Bitte siehe unten für weitere Informationen. Dieser Tag wird nur unterstützt, wenn Ebenen eingeschaltet sind. Siehe SetLayerBorder für Details. (V5.0)

BorderColor:
Dieser Tag gibt die Farbe des Rahmens an. Dies muss ein ARGB-Wert sein, der eine Transparenzeinstellung enthält. Dieser Tag funktioniert nur dann, wenn der Tag Border auf True gesetzt wurde (siehe oben). (V5.0)

BorderPen:
Wenn der Palettenmodus auf #PALETTEMODE_PEN eingestellt ist und das Zeichnungsziel eine Palette verwendet, wird der Rahmen mit dem hier angegebenen Stift gezeichnet, anstatt mit der Farbe, die oben im Tag BorderColor angegeben wurde. (V9.0)

BorderSize:
Damit lässt sich die Rahmendicke einstellen. Läuft nur, wenn Border auf True gesetzt wurde (siehe oben). (V5.0)

Filters:
Dieser Tag kann verwendet werden, um einen Filter auf diesem Grafikobjekt anzuwenden. Sie müssen diesem Tag eine Tabelle übergeben, die die gewünschte Konfigurationen der einzelnen Filter beschreibt. Siehe SetLayerFilter für weitere Informationen wie diese Tabelle aussehen muss.. Beachten Sie, dass obwohl die Dokumentation auf die Ebenen-Bibliothek verweist, der Tag Filters tatsächlich auch dann funktioniert, wenn die Ebenen deaktiviert sind. (V5.0)


Navigation zeigen