Die Klasse Paint (gb.qt4) besitzt nur (statische) Methoden. Die vielen Methoden sind in den u.a. Tabellen gruppiert notiert, um so Zusammenhänge besser sichtbar werden zu lassen. Nach den Tabellen finden Sie Hinweise zur Verwendung ausgewählter Methoden und Beschreibungen der Parameter.
Das Projekt Painting aus den Gambas-Beispielen sollten Sie sich unbedingt ansehen, weil es nicht nur das Zeichnen mit der Klasse Paint demonstriert, sondern auch den verwendeten (Paint-)Quelltext für die 22 Linien und Flächen anzeigt:
Abbildung 23.3.2.1: Projekt Painting – Beispiel 9: Füllstil
Die Klasse Paint verfügt über diese Methoden:
Methode | Beschreibung |
---|---|
Color ( Color As Integer ) As PaintBrush | Erstellt einen neuen Pinsel entsprechend einer opaken oder durchscheinenden Farbe. Die Farbe 'Color' wird definiert wie für alle GUI-Komponenten → Kapitel 25.3.5 Arbeit mit Farben |
LinearGradient ( X0 As Float, Y0 As Float, X1 As Float, Y1 As Float, Colors As Integer[], Positions As Float[] [ , Extend As Integer ] ) As PaintBrush | Erstellt einen neuen linearen Farbverlauf-Pinsel entlang der durch (X0|Y0) und (X1|Y1) definierten Linie und definiert Farbhaltestellen aus den Farb- und Positionsargumenten. |
RadialGradient ( CX As Float, CY As Float, Radius As Float, FX As Float, FY As Float, Colors As Integer[], Positions As Float[] [ , Extend As Integer ] ) As PaintBrush | Erstellt einen neuen radialen Farbverlauf-Pinsel, wobei die Farben zwischen einem Brennpunkt (FX|FY) und dem Endpunkt auf einer von (CX0|CY0, Radius0) definierten Kreisfläche interpoliert werden und definiert Farbhaltestellen aus den Farb- und Positionsargumenten. |
Methode | Beschreibung |
---|---|
Text ( Text As String [ , X As Float, Y As Float, Width As Float, Height As Float, Alignment As Integer ] ) | Fügt den angegebenen Text zum Pfad hinzu. Es wird der aktuelle Font benutzt, der über die Font-Eigenschaft gesetzt ist. |
TextSize ( Text As String ) As RectF | Gibt den Begrenzungsrahmen (Datentyp RectF (mit Koordinaten vom Typ Float)) zurück, der durch die Textzeichenfolge benötigt wird. Im Gegensatz zu TextExtents wird die Font-Schriftgröße verwendet – nicht die Höhe des tatsächlich gezeichneten Textes. |
TextExtents ( Text As String ) As PaintExtents | Ermittelt die Ausmaße (Datentyp PaintExtents) für die Textzeichenfolge. Die Ausmaße beschreiben ein User-Space-Rechteck, das den tatsächlich gezeichneten Text umschließt, wie es von Paint.Text und Paint.Fill ohne Transformationsmatrix erstellt worden wäre. |
TrimText ( Text As String, W As Float [ , H As Float ] ) As String | Gibt einen eingekürzten Text zurück, der in das angegebene Rechteck passt. Wenn der Text von vornherein in das Rechteck passt, wird er unverändert zurückgegeben. Sonst wird er gekürzt und mit einem Auslassungszeichen ergänzt, so dass er passt. |
RichText ( Text As String [ , X As Float, Y As Float, Width As Float, Height As Float, Alignment As Integer ] ) | Fügt den angegebenen RichText zum Pfad hinzu. Es wird der aktuelle Font benutzt, der über die Font-Eigenschaft gesetzt ist. |
RichTextSize ( Text As String [ , Width As Float ] ) As RectF | Gibt den Begrenzungsrahmen (Datentyp RechteckF (mit Koordinaten vom Typ Float)) zurück, der durch die RichText-Zeichenfolge benötigt wird. Im Gegensatz zu RichTextExtents wird die Font-Schriftgröße verwendet - nicht der tatsächlich gezeichnete Text. |
RichTextExtents ( Text As String [ , Width As Float ] ) As PaintExtents | Ermittelt die Ausmaße (Datentyp PaintExtents) für die RichText-Zeichenfolge. Die Ausmaße beschreiben ein User-Space-Rechteck, das den tatsächlich gezeichneten Text umschließt, wie es von Paint.RichText und Paint.Fill ohne Transformationsmatrix erstellt worden wäre. Da nur ein Pfad erstellt wird, werden durch die <font>-Auszeichnung definierte Schrift-Farben nicht berücksichtigt! |
TrimRichText ( RichText As String, W As Float [ , H As Float ] ) As String | Gibt eine gekürzte Version des gegebenen RichTexts zurück, die in das gegebene Rechteck passt. Wenn der RichText hinein passt, wird er unverändert zurückgegeben. Sonst wird er eingekürzt und um ein Auslassungszeichen ergänzt, so dass er passt. |
DrawImage ( Image As Image, X As Float, Y As Float [ , Width As Float, Height As Float, Opacity As Float, Source As Rect ] ) | Zeichnet ein Bild oder einen Teil eines Bildes. Dabei geben die X-, Y-, Width- und Height-Argumente die Position und maximale Ausdehnung des Bildes auf der Zeichenfläche an. Im Source-Argument kann das gewünschte Teilbild aus dem übergebenen Image als Rechteck spezifiziert werden. |
DrawPicture ( Picture As Picture, X As Float, Y As Float [ , Width As Float, Height As Float, Source As Rect ] ) | Zeichnet ein Bild oder einen Teil eines Bildes. Dabei geben die X-, Y-, Width- und Height-Argumente die Position und maximale Ausdehnung des Bildes auf der Zeichenfläche an. Im Source-Argument kann das gewünschte Teilbild aus dem übergebenen Picture als Rechteck spezifiziert werden. |
DrawText ( Text As String [ , X As Float, Y As Float, Width As Float, Height As Float, Alignment As Integer ] ) | Zeichnet den angegebenen Text. Wenn Sie die optionalen Parameter angegeben, so wird der Text durch das angegebene Rechteck begrenzt und nach dem Alignment-Parameter ausgerichtet. Die Methode ist schneller, als den Text mit Paint.Text und anschließendem Paint.Fill zu zeichnen. |
DrawTextShadow ( Text As String, X As Float, Y As Float, W As Float, H As Float [ , Alignment As Integer, Radius As Integer, Opacity As Float ] ) | Zeichnet den Schatten eines Textes. |
DrawRichText ( Text As String [ , X As Float, Y As Float, Width As Float, Height As Float, Alignment As Integer ] ) | Zeichnet den angegebenen Rich-Text. Wenn Sie die optionalen Parameter angegeben, so wird der Text durch das angegebene Rechteck begrenzt und nach dem Alignment-Parameter ausgerichtet. Die Methode ist schneller, als den Text mit Paint.RichText und anschließendem Paint.Fill zu zeichnen. |
DrawRichTextShadow ( Text As String, X As Float, Y As Float, W As Float, H As Float [ , Alignment As Integer, Radius As Integer, Opacity As Float ] ) | Zeichnet den Schatten eines RichTextes. |
Image ( Image As Image [ , X As Float, Y As Float ] ) As PaintBrush | Erstellt einen neuen Pinsel aus einem Bild. Image ist das Bildobjekt und X sowie Y sind die (optionalen) Werte (Datentyp Float) aus der Brush-Matrix und geben die initiale Translation des Bildes an. |
Tabellen 23.3.2.4.1 : Methoden der Klasse Paint
Die folgenden Hinweise ergänzen die Inhalte der Tabellen. Es werden Argumente näher beschrieben und auf Besonderheiten hingewiesen. Beispiele und vollständige Projekte dagegen finden Sie in den folgenden beiden → Kapiteln 23.3.3 Paint-Projekte 1 und 23.3.4 Paint-Projekte 2.
ClosePath
Kreis und Kreisbogen
Die Hinweise für einen Kreisbogen sind einerseits sehr umfangreich und andererseits zum Teil nur in bestimmten Kombinationen gültig:
Abbildung 23.3.2.4.1: Kreisbogen - Kreissektoren
Quelltext:
Public Sub DrawArcs() Paint.AntiAlias = True Paint.LineWidth = 1 Paint.Brush = Paint.Color(Color.Red) Paint.Arc(100, 140, 70, Rad(45), 3 * Pi / 2, False) Paint.Stroke Paint.Arc(260, 140, 70, Pi / 4, Rad(270), True) Paint.Stroke Paint.Arc(420, 140, 70, Pi / 4, 3 * Pi / 2, True) Paint.Fill Paint.Dash = [2, 2] Paint.Arc(420, 140, 70, Pi / 4 + 3 * Pi / 2, Rad(90), False) Paint.Stroke Paint.Dash = [] ' Null Paint.AntiAlias = False End
Abgerundete Rechtecke
Wenn das optionale Radius-Argument definiert ist, so wird das Rechteck abgerundete 'Ecken' besitzen. Das Argument Radius bestimmt den Radius der Rundung. Der Radius darf nicht größer als die Hälfte der kürzesten Seite des Rechtecks sein.
Polygon – Spezialfall Dreieck
Mit diesem Quelltext wird ein hellblaues Dreieck ABC gezeichnet:
Paint.LineWidth = 1 Paint.Brush = Paint.Color(&C3DDFF) ' hellblau Paint.Polygon([20, 20, 30, 160, 200, 70]) ' A(20|20), B(30|160) und C(200|70) Paint.Fill
Ellipsen
Ellipse ( X As Float, Y As Float, Width As Float, Height As Float [ , Angle As Float, Length As Float, Pie As Boolean ] )
Kubische Bezier-Kurve
CurveTo ( X1 As Float, Y1 As Float, X2 As Float, Y2 As Float, X3 As Float, Y3 As Float )
Gab es keinen aktuellen Punkt vor dem Aufruf von Paint.CurveTo(..), so wird sich die Funktion so verhalten, als ob dem Aufruf die Methode Paint.MoveTo(X1|Y1) vorausging, um einen definierten Anfang zu sichern.
Kubische Bezier-Kurve mit relativen Koordinaten – Version von CurveTo(..)
RelCurveTo ( X1 As Float, Y1 As Float, X2 As Float, Y2 As Float, X3 As Float, Y3 As Float )
Paint.CurveTo(X+DX1, Y+DY1, X+DX2, Y+DY2, X+DX3, Y+DY3) ist logisch äquivalent zum Aufruf Paint.RelCurveTo (DX1, DY1, DX2, DY2, DX3, DY3) bei einem aktuellen Punkt (X|Y).
Text
Text(Text As String [, X As Float,Y As Float,Width As Float,Height As Float,Alignment As Integer ] )
RichText
RichText ( Text As String [ , X As Float, Y As Float, Width As Float, Height As Float, Alignment As Integer ] )
TrimText – TrimRichText
TrimText ( Text As String, W As Float [ , H As Float ] ) As String TrimRichText ( RichText As String, W As Float [ , H As Float ] ) As String
DrawImage
DrawImage ( Image As Image, X As Float, Y As Float [ , Width As Float, Height As Float, Opacity As Float, Source As Rect ] )
DrawPicture
DrawPicture ( Picture As Picture, X As Float, Y As Float [ , Width As Float, Height As Float, Source As Rect ] )
DrawTextShadow
DrawTextShadow ( Text As String, X As Float, Y As Float, W As Float, H As Float [ , Alignment As Integer, Radius As Integer, Opacity As Float ] ) DrawRichTextShadow ( Text As String, X As Float, Y As Float, W As Float, H As Float [ , Alignment As Integer, Radius As Integer, Opacity As Float ] )
LinearGradient
LinearGradient ( X0 As Float, Y0 As Float, X1 As Float, Y1 As Float, Colors As Integer[], Positions As Float[] [ , Extend As Integer ] ) As PaintBrush
Abbildung 23.3.2.4.2: LinearGradient
RadialGradient
RadialGradient (CX As Float,CY As Float,Radius As Float,FX As Float,FY As Float,Colors As Integer[],Positions As Float[] [,Extend As Integer ]) As PaintBrush
Artikel