Class DrawingLayer

All Implemented Interfaces:
Drawable, Fillable, Strokeable, Updatable

public class DrawingLayer extends Layer implements Strokeable, Fillable
Eine Ebene auf der direkt gezeichnet werden kann.

Ein DrawingLayer ist eine der drei Standardebenen der Zeichenmaschine.

  • Field Details

    • line

      protected Line2D.Double line
      Wiederverwendbarer Speicher für eine Linie.
    • ellipse

      protected Ellipse2D.Double ellipse
      Wiederverwendbarer Speicher für eine Ellipse.
    • rect

      protected Rectangle2D.Double rect
      Wiederverwendbarer Speicher für ein Rechteck.
    • arc

      protected Arc2D.Double arc
      Wiederverwendbarer Speicher für einen Kreisbogen.
    • path

      protected Path2D.Double path
      Wiederverwendbarer Speicher für einen Pfad.
  • Constructor Details

    • DrawingLayer

      public DrawingLayer()
      Erstellt eine Zeichenebene in der Standardgröße.
    • DrawingLayer

      public DrawingLayer(int width, int height)
      Erstellt eine Zeichenebene mit der angegebenen Größe.
      Parameters:
      width - Die Breite der Ebene.
      height - Die Höhe der Ebene.
  • Method Details

    • getFillColor

      public Color getFillColor()
      Gibt die aktuelle Füllfarbe zurück.
      Specified by:
      getFillColor in interface Fillable
      Returns:
      Die aktuelle Füllfarbe.
    • setFillColor

      public void setFillColor(Color color)
      Setzt die Füllfarbe auf die angegebene Farbe.
      Specified by:
      setFillColor in interface Fillable
      Parameters:
      color - Die neue Füllfarbe oder null.
      See Also:
    • setFillColor

      public void setFillColor(Color color, int alpha)
      Setzt die Füllfarbe auf die angegebene Farbe und setzt die Transparenz auf den angegebenen Wert. 0 is komplett durchsichtig und 255 komplett deckend.
      Specified by:
      setFillColor in interface Fillable
      Parameters:
      color - Die neue Füllfarbe oder null.
      alpha - Ein Transparenzwert zwischen 0 und 255.
      See Also:
    • setFillColor

      public void setFillColor(int gray)
      Setzt die Füllfarbe auf einen Grauwert mit der angegebenen Intensität. 0 entspricht schwarz, 255 entspricht weiß.
      Specified by:
      setFillColor in interface Fillable
      Parameters:
      gray - Ein Grauwert zwischen 0 und 255.
      See Also:
    • setFillColor

      public void setFillColor(int gray, int alpha)
      Setzt die Füllfarbe auf einen Grauwert mit der angegebenen Intensität und dem angegebenen Transparenzwert. Der Grauwert 0 entspricht schwarz, 255 entspricht weiß.
      Specified by:
      setFillColor in interface Fillable
      Parameters:
      gray - Ein Grauwert zwischen 0 und 255.
      alpha - Ein Transparenzwert zwischen 0 und 255.
      See Also:
    • setFillColor

      public void setFillColor(int red, int green, int blue)
      Setzt die Füllfarbe auf die Farbe mit den angegebenen Rot-, Grün- und Blauanteilen.
      Specified by:
      setFillColor in interface Fillable
      Parameters:
      red - Der Rotanteil der Farbe zwischen 0 und 255.
      green - Der Grünanteil der Farbe zwischen 0 und 255.
      blue - Der Blauanteil der Farbe zwischen 0 und 255.
      See Also:
    • setFillColor

      public void setFillColor(int red, int green, int blue, int alpha)
      Setzt die Füllfarbe auf die Farbe mit den angegebenen Rot-, Grün- und Blauanteilen und dem angegebenen Transparenzwert.
      Specified by:
      setFillColor in interface Fillable
      Parameters:
      red - Der Rotanteil der Farbe zwischen 0 und 255.
      green - Der Grünanteil der Farbe zwischen 0 und 255.
      blue - Der Blauanteil der Farbe zwischen 0 und 255.
      alpha - Ein Transparenzwert zwischen 0 und 25
      See Also:
    • noFill

      public void noFill()
      Entfernt die Füllung der Form.
      Specified by:
      noFill in interface Fillable
    • resetFill

      public void resetFill()
      Setzt die Füllfarbe auf den Standardwert zurück.
      Specified by:
      resetFill in interface Fillable
      See Also:
    • setFill

      public void setFill(Paint fill)
      Description copied from interface: Fillable
      Setzt die Füllung direkt auf das angegebene Paint-Objekt.
      Specified by:
      setFill in interface Fillable
      Parameters:
      fill - Die neue Füllung.
    • getFill

      public Paint getFill()
      Description copied from interface: Fillable
      Gibt die aktuell gesetzte Füllung zurück.

      Die Art der Füllung kann anhand der Abfragen Fillable.hasFillColor() und Fillable.hasGradient() ermittelt werden.

      Specified by:
      getFill in interface Fillable
      Returns:
      Die aktuelle Füllung.
    • setGradient

      public void setGradient(double fromX, double fromY, Color from, double toX, double toY, Color to)
      Setzt die Füllung auf einen linearen Farbverlauf, der am Punkt (fromX, fromY) mit der Farbe from startet und am Punkt ((toX, toY) mit der Farbe to endet.
      Specified by:
      setGradient in interface Fillable
      Parameters:
      fromX - x-Koordinate des Startpunktes.
      fromY - y-Koordinate des Startpunktes.
      from - Farbe am Startpunkt.
      toX - x-Koordinate des Endpunktes.
      toY - y-Koordinate des Endpunktes.
      to - Farbe am Endpunkt.
    • setGradient

      public void setGradient(double centerX, double centerY, double radius, Color from, Color to)
      Setzt die Füllung auf einen kreisförmigen (radialen) Farbverlauf, mit dem Zentrum im Punkt (centerX, centerY) und dem angegebenen Radius. Der Verlauf starte im Zentrum mit der Farbe from und endet am Rand des durch den Radius beschriebenen Kreises mit der Farbe to.
      Specified by:
      setGradient in interface Fillable
      Parameters:
      centerX - x-Koordinate des Kreismittelpunktes.
      centerY - y-Koordinate des Kreismittelpunktes.
      radius - Radius des Kreises.
      from - Farbe im Zentrum des Kreises.
      to - Farbe am Rand des Kreises.
    • setGradient

      public void setGradient(Color from, Color to, Options.Direction dir)
      Description copied from interface: Fillable
      Setzt die Füllung auf einen linearen Farbverlauf, der in die angegebene Richtung verläuft.
      Specified by:
      setGradient in interface Fillable
      Parameters:
      from - Farbe am Startpunkt.
      to - Farbe am Endpunkt.
      dir - Richtung des Farbverlaufs.
    • setGradient

      public void setGradient(Color from, Color to)
      Description copied from interface: Fillable
      Setzt die Füllung auf einen kreisförmigen (radialen) Farbverlauf, der im Zentrum beginnt.
      Specified by:
      setGradient in interface Fillable
      Parameters:
      from - Farbe im Zentrum.
      to - Farbe am Rand.
    • noGradient

      public void noGradient()
      Entfernt einen Farbverlauf von der Füllung.
      Specified by:
      noGradient in interface Fillable
    • setStroke

      public void setStroke(Stroke stroke)
      Setzt den Linienstil für Konturlinien direkt auf das angegebene Stroke-Objekt.
      Specified by:
      setStroke in interface Strokeable
      Parameters:
      stroke - Ein Stroke-Objekt.
    • getStrokeColor

      public Color getStrokeColor()
      Gibt die aktuelle Farbe der Konturlinie zurück.
      Specified by:
      getStrokeColor in interface Strokeable
      Returns:
      Die Konturfarbe oder null.
    • setStrokeColor

      public void setStrokeColor(Color color)
      Setzt die Farbe der Konturlinie auf die angegebene Farbe.
      Specified by:
      setStrokeColor in interface Strokeable
      Parameters:
      color - Die neue Farbe der Konturlinie.
      See Also:
    • setStrokeColor

      public void setStrokeColor(Color color, int alpha)
      Setzt die Farbe der Konturlinie auf die angegebene Farbe und setzt die Transparenz auf den angegebenen Wert. 0 is komplett durchsichtig und 255 komplett deckend.
      Specified by:
      setStrokeColor in interface Strokeable
      Parameters:
      color - Die neue Farbe der Konturlinie oder null.
      alpha - Ein Transparenzwert zwischen 0 und 255.
      See Also:
    • setStrokeColor

      public void setStrokeColor(int gray)
      Setzt die Farbe der Konturlinie auf einen Grauwert mit der angegebenen Intensität. 0 entspricht schwarz, 255 entspricht weiß.
      Specified by:
      setStrokeColor in interface Strokeable
      Parameters:
      gray - Ein Grauwert zwischen 0 und 255.
      See Also:
    • setStrokeColor

      public void setStrokeColor(int gray, int alpha)
      Setzt die Farbe der Konturlinie auf einen Grauwert mit der angegebenen Intensität und dem angegebenen Transparenzwert. Der Grauwert 0 entspricht schwarz, 255 entspricht weiß.
      Specified by:
      setStrokeColor in interface Strokeable
      Parameters:
      gray - Ein Grauwert zwischen 0 und 255.
      alpha - Ein Transparenzwert zwischen 0 und 255.
      See Also:
    • setStrokeColor

      public void setStrokeColor(int red, int green, int blue)
      Setzt die Farbe der Konturlinie auf die Farbe mit den angegebenen Rot-, Grün- und Blauanteilen.
      Specified by:
      setStrokeColor in interface Strokeable
      Parameters:
      red - Der Rotanteil der Farbe zwischen 0 und 255.
      green - Der Grünanteil der Farbe zwischen 0 und 255.
      blue - Der Blauanteil der Farbe zwischen 0 und 255.
      See Also:
    • setStrokeColor

      public void setStrokeColor(int red, int green, int blue, int alpha)
      Setzt die Farbe der Konturlinie auf die Farbe mit den angegebenen Rot-, Grün- und Blauanteilen und dem angegebenen Transparenzwert.
      Specified by:
      setStrokeColor in interface Strokeable
      Parameters:
      red - Der Rotanteil der Farbe zwischen 0 und 255.
      green - Der Grünanteil der Farbe zwischen 0 und 255.
      blue - Der Blauanteil der Farbe zwischen 0 und 255.
      alpha - Ein Transparenzwert zwischen 0 und 25
      See Also:
    • noStroke

      public void noStroke()
      Entfernt die Kontur der Form.
      Specified by:
      noStroke in interface Strokeable
    • resetStroke

      public void resetStroke()
      Setzt die Farbe der Konturlinie auf die Standardwerte zurück.
      Specified by:
      resetStroke in interface Strokeable
      See Also:
    • getStrokeWeight

      public double getStrokeWeight()
      Gibt die Dicke der Konturlinie zurück.
      Specified by:
      getStrokeWeight in interface Strokeable
      Returns:
      Die aktuelle Dicke der Linie.
    • setStrokeWeight

      public void setStrokeWeight(double weight)
      Setzt die Dicke der Konturlinie. Die Dicke muss größer 0 sein. Wird 0 übergeben, dann wird keine Kontur mehr angezeigt.
      Specified by:
      setStrokeWeight in interface Strokeable
      Parameters:
      weight - Die Dicke der Konturlinie.
    • getStrokeType

      public Options.StrokeType getStrokeType()
      Gibt die Art der Konturlinie zurück.
      Specified by:
      getStrokeType in interface Strokeable
      Returns:
      Die aktuelle Art der Konturlinie.
      See Also:
    • getStrokeJoin

      public Options.StrokeJoin getStrokeJoin()
      Description copied from interface: Strokeable
      Gibt die Art der Konturverbindungen zurück.
      Specified by:
      getStrokeJoin in interface Strokeable
      Returns:
      Die aktuelle Art der Konturverbindungen.
      See Also:
    • setStrokeType

      public void setStrokeType(Options.StrokeType type)
      Setzt den Typ der Kontur. Erlaubte Werte sind Constants.DASHED, Constants.DOTTED und Constants.SOLID.
      Specified by:
      setStrokeType in interface Strokeable
      Parameters:
      type - Eine der möglichen Konturarten.
      See Also:
    • getStroke

      public Stroke getStroke()
      Description copied from interface: Strokeable
      Gibt ein Stroke-Objekt mit den aktuell gesetzten Eigenschaften zurück.
      Specified by:
      getStroke in interface Strokeable
      Returns:
      Ein Stroke mit den passenden Kontureigenschaften.
    • setAnchor

      public void setAnchor(Options.Direction anchor)
      Setzt den Standard-ANker für die Zeichenebene auf die angegebene Richtung.

      Zu Beginn ist der Standardanker immer auf CENTER gesetzt. Alle Formen werden von der Mitte aus gezeichnet. Wir der Anker mit setAnchor(NORTHWEST) beispielsweise auf NORTHWEST gesetzt, werden alle Formen von der linken oberen Ecke aus gezeichnet.

      Parameters:
      anchor - Der neue Anker.
    • clear

      public void clear(int gray)
      Übermalt die komplette Ebene mit einem Grauwert mit der angegebenen Intensität. 0 entspricht schwarz, 255 entspricht weiß.
      Parameters:
      gray - Ein Grauwert zwischen 0 und 255.
      See Also:
    • clear

      public void clear(int gray, int alpha)
      Übermalt die komplette Ebene mit einem Grauwert mit der angegebenen Intensität und dem angegebenen Transparenzwert. Der Grauwert 0 entspricht schwarz, 255 entspricht weiß.
      Parameters:
      gray - Ein Grauwert zwischen 0 und 255.
      alpha - Ein Transparenzwert zwischen 0 und 255.
      See Also:
    • clear

      public void clear(int red, int green, int blue)
      Übermalt die komplette Ebene mit der Farbe mit den angegebenen Rot-, Grün- und Blauanteilen.
      Parameters:
      red - Der Rotanteil der Farbe zwischen 0 und 255.
      green - Der Grünanteil der Farbe zwischen 0 und 255.
      blue - Der Blauanteil der Farbe zwischen 0 und 255.
      See Also:
    • clear

      public void clear(int red, int green, int blue, int alpha)
      Übermalt die komplette Ebene mit der Farbe mit den angegebenen Rot-, Grün- und Blauanteilen und dem angegebenen Transparenzwert.
      Parameters:
      red - Der Rotanteil der Farbe zwischen 0 und 255.
      green - Der Grünanteil der Farbe zwischen 0 und 255.
      blue - Der Blauanteil der Farbe zwischen 0 und 255.
      alpha - Ein Transparenzwert zwischen 0 und 25
      See Also:
    • clear

      public void clear(Color color)
      Übermalt die komplette Ebene mit der angegebenen Farbe.
      Parameters:
      color - Die neue Füllfarbe oder null.
      See Also:
    • line

      public void line(double x1, double y1, double x2, double y2)
      Zeichnet eine gerade Line zwischen den angegebenen Koordinaten.
      Parameters:
      x1 - Die x-Koordinate des Startpunktes.
      y1 - Die y-Koordinate des Startpunktes.
      x2 - Die x-Koordinate des Endpunktes.
      y2 - Die y-Koordinate des Endpunktes.
    • pixel

      public void pixel(double x, double y)
      Färbt den Pixel an der angegebenen Koordinate ein.
      Parameters:
      x - Die x-Koordinate.
      y - Die y-Koordinate.
    • square

      public void square(double x, double y, double w)
      Zeichnet ein Quadrat an den angegebenen Koordinaten mit der angegebenen Kantenlänge in die Zeichenebene.

      Als Ankerpunkt wird der Standardanker verwendet.

      Parameters:
      x - Die x-Koordinate des Ankerpunktes.
      y - Die y-Koordinate des Ankerpunktes.
      w - Die Kantenlänge des Quadrats.
      See Also:
    • square

      public void square(double x, double y, double w, Options.Direction anchor)
      Zeichnet ein Quadrat an den angegebenen Koordinaten mit der angegebenen Kantenlänge und dem angegebenen Ankerpunkt in die Zeichenebene.
      Parameters:
      x - Die x-Koordinate des Ankerpunktes.
      y - Die y-Koordinate des Ankerpunktes.
      w - Die Kantenlänge des Quadrats.
      See Also:
    • rect

      public void rect(double x, double y, double w, double h)
      Zeichnet ein Rechteck an den angegebenen Koordinaten mit der angegebenen Breite und Höhe in die Zeichenebene.

      Als Ankerpunkt wird der Standardanker verwendet.

      Parameters:
      x - x-Koordinate des Rechtecks.
      y - y-Koordinate des Rechtecks.
      w - Breite des Rechtecks.
      h - Höhe des Rechtecks.
    • rect

      public void rect(double x, double y, double w, double h, Options.Direction anchor)
      Zeichnet ein Rechteck an den angegebenen Koordinaten mit der angegebenen Breite und Höhe und dem angegebenen Ankerpunkt in die Zeichenebene.
      Parameters:
      x - x-Koordinate des Rechtecks.
      y - y-Koordinate des Rechtecks.
      w - Breite des Rechtecks.
      h - Höhe des Rechtecks.
      anchor - Ankerpunkt de Rechtecks.
    • roundedRect

      public void roundedRect(double x, double y, double w, double h, double radius)
      Zeichnet ein Rechteck mit abgerundeten Ecken an den angegebenen Koordinaten mit der angegebenen Breite und Höhe in die Zeichenebene.

      Jede Ecke wird als Viertelkreis eines Kreises mit dem Radius radius gezeichnet.

      Parameters:
      x - x-Koordinate des Rechtecks.
      y - y-Koordinate des Rechtecks.
      w - Breite des Rechtecks.
      h - Höhe des Rechtecks.
      radius - Radius der Eckenkreise.
    • roundedRect

      public void roundedRect(double x, double y, double w, double h, double radius, Options.Direction anchor)
      Zeichnet ein Rechteck mit abgerundeten Ecken an den angegebenen Koordinaten mit der angegebenen Breite und Höhe und dem angegebenen Ankerpunkt in die Zeichenebene.

      Jede Ecke wird als Viertelkreis eines Kreises mit dem Radius radius gezeichnet.

      Parameters:
      x - x-Koordinate des Rechtecks.
      y - y-Koordinate des Rechtecks.
      w - Breite des Rechtecks.
      h - Höhe des Rechtecks.
      radius - Radius der Eckenkreise.
      anchor - Ankerpunkt de Rechtecks.
    • point

      public void point(double x, double y)
      Zeichnet einen Punkt in die Zeichenebene.

      Im Gegensatz zu einem Pixel, besitzt ein Punkt einen Radius und nimmt mehr als ein Pixel auf der Ebene ein.

      Parameters:
      x - x-Koordinate des Punktes.
      y - y-Koordinate des Punktes.
    • circle

      public void circle(double x, double y, double r)
      Zeichnet einen Kreis an den angegebenen Koordinaten mit dem angegebenen Radius.
      Parameters:
      x -
      y -
      r -
    • circle

      public void circle(double x, double y, double r, Options.Direction anchor)
      Zeichnet einen Kreis an den angegebenen Koordinaten mit dem angegebenen Radius und dem angegebenen Ankerpunkt.
      Parameters:
      x -
      y -
      r -
    • ellipse

      public void ellipse(double x, double y, double w, double h)
      Zeichnet eine Ellipse in die Zeichenebene.
      Parameters:
      x -
      y -
      w -
      h -
    • ellipse

      public void ellipse(double x, double y, double w, double h, Options.Direction anchor)
      Zeichnet eine Ellipse in die Zeichenebene.
      Parameters:
      x -
      y -
      w -
      h -
      anchor -
    • arc

      public void arc(double x, double y, double r, double angle1, double angle2)
      Zeichnet einen Kreisbogen in die Zeichenebene.

      Der Kreisbogen liegt auf einem Kreis mit dem angegebenen Radius, beginnt beim angegebenen Winkel und läuft bis zum zweiten Winkel.

      Parameters:
      x -
      y -
      r -
      angle1 -
      angle2 -
    • arc

      public void arc(double x, double y, double w, double h, double angle1, double angle2)
      Zeichnet einen Ellipsenbogen in die Zeichenebene.

      Der Ellipsenbogen liegt auf einer Ellipse mit der angegebenen Breite und Höhe, beginnt beim angegebenen Winkel und läuft bis zum zweiten Winkel.

      Parameters:
      x -
      y -
      w -
      h -
      angle1 -
      angle2 -
    • pie

      public void pie(double x, double y, double r, double angle1, double angle2)
      Zeichnet einen Kreisausschnitt in die Zeichenebene.
      Parameters:
      x -
      y -
      r -
      angle1 -
      angle2 -
    • curve

      public void curve(double x1, double y1, double x2, double y2, double x3, double y3)
      Zeichnet eine quadratische Bézierkurve mit den angegebenen Start- und Endkoordinaten, sowie dem angegebenen Kontrollpunkt.
      Parameters:
      x1 -
      y1 -
      x2 -
      y2 -
      x3 -
      y3 -
    • curve

      public void curve(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
      Zeichnet eine kubische Bézierkurve mit den angegebenen Start- und Endkoordinaten, sowie den angegebenen Kontrollpunkten.
      Parameters:
      x1 -
      y1 -
      x2 -
      y2 -
      x3 -
      y3 -
      x4 -
      y4 -
    • triangle

      public void triangle(double x1, double y1, double x2, double y2, double x3, double y3)
      Zeichnet ein Dreieck mit den angegebenen Eckpunkten in die Zeichenebene.
      Parameters:
      x1 -
      y1 -
      x2 -
      y2 -
      x3 -
      y3 -
    • rhombus

      public void rhombus(double x, double y, double width, double height)
      Zeichnet einen Rhombus in die Zeichenebene.
      Parameters:
      x -
      y -
      width -
      height -
    • rhombus

      public void rhombus(double x, double y, double width, double height, Options.Direction anchor)
    • polygon

      public void polygon(double... coordinates)
    • polygon

      public void polygon(Point2D... points)
    • fillShape

      protected void fillShape(Shape shape)
    • drawShape

      protected void drawShape(Shape shape)
    • beginShape

      public void beginShape()
      Startet eine neue Freihand-Form.
    • lineTo

      public void lineTo(double x, double y)
      Fügt einer zuvor begonnenen Freihand-Form eine Linie zu den angegebenen Koordinaten hinzu.

      Wurde seit dem Start der Form noch keine Linie hinzugefügt, wird zunächst nur die angegebene Koordinate als Startpunkt der Freihand-Form gesetzt.

      Parameters:
      x - Die x-Koordinate.
      y - Die y-Koordinate.
    • curveTo

      public void curveTo(double ctrlX, double ctrlY, double x, double y)
    • curveTo

      public void curveTo(double ctrlX1, double ctrlY1, double ctrlX2, double ctrlY2, double x, double y)
    • endShape

      public void endShape()
      Beendet eine zuvor begonnene Freihand-Form und zeichent sie auf die Zeichenebene.
    • endShape

      public void endShape(Options.PathType closingType)
    • image

      public void image(String imageSource, double x, double y)
      Zeichnet das Bild von der angegebenen Quelle an der angegebenen Position auf die Zeichenebene.

      Die Bildquelle wird mithilfe von ImageLoader.loadImage(String) geladen. Schlägt dies fehl, wird nichts gezeichnet.

      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      See Also:
    • image

      public void image(String imageSource, double x, double y, Options.Direction anchor)
      Zeichnet das Bild von der angegebenen Quelle an der angegebenen Position auf die Zeichenebene.

      Die Bildquelle wird mithilfe von ImageLoader.loadImage(String) geladen. Schlägt dies fehl, wird nichts gezeichnet.

      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      anchor - Der Ankerpunkt.
      See Also:
    • imageScale

      public void imageScale(String imageSource, double x, double y, double scale)
      Zeichnet das Bild von der angegebenen Quelle an den angegebenen Koordinaten auf die Zeichenebene. Das Bild wird um den angegebenen Faktor skaliert.

      Siehe imageScale(Image, double, double, double, Options.Direction) für mehr Details.

      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      scale - Der Skalierungsfaktor des Bildes.
      See Also:
    • imageScale

      public void imageScale(String imageSource, double x, double y, double scale, Options.Direction anchor)
      Zeichnet das Bild von der angegebenen Quelle an den angegebenen Koordinaten auf die Zeichenebene. Das Bild wird um den angegebenen Faktor skaliert und der angegebene Ankerpunkt verwendet.

      Siehe imageScale(Image, double, double, double, Options.Direction) für mehr Details.

      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      scale - Der Skalierungsfaktor des Bildes.
      anchor - Der Ankerpunkt.
      See Also:
    • image

      public void image(Image image, double x, double y)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten auf die Zeichenebene.
      Parameters:
      image - Das vorher geladene Bild.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
    • imageScale

      public void imageScale(Image image, double x, double y, double scale)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten auf die Zeichenebene. Das Bild wird um den angegebenen Faktor skaliert.

      Siehe imageScale(Image, double, double, double, Options.Direction) für mehr Details.

      Parameters:
      image - Das vorher geladene Bild.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      scale - Der Skalierungsfaktor des Bildes.
    • imageScale

      public void imageScale(Image image, double x, double y, double scale, Options.Direction anchor)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten auf die Zeichenebene. Das Bild wird um den angegebenen Faktor skaliert und der angegebene Ankerpunkt verwendet.

      Bei einem Faktor größer 0 wird das Bild vergrößert, bei einem Faktor kleiner 0 verkleinert. Bei negativen Werten wird das Bild entlang der x- bzw. y-Achse gespiegelt.

      Das Seitenverhältnis wird immer beibehalten.

      Soll das Bild innerhalb eines vorgegebenen Rechtecks liegen, sollte imageScale(Image, double, double, double, double, Options.Direction) verwendet werden.

      Parameters:
      image - Das vorher geladene Bild.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      scale - Der Skalierungsfaktor des Bildes.
      anchor - Der Ankerpunkt.
    • imageScale

      public void imageScale(String imageSource, double x, double y, double width, double height)
      Zeichnet das Bild von der angegebenen Quelle an den angegebenen Koordinaten in der angegebenen Größe auf die Zeichenebene.

      Siehe imageScale(Image, double, double, double, double, Options.Direction) für mehr Details.

      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      width - Breite des Bildes auf der Zeichenebene oder 0.
      height - Höhe des Bildes auf der Zeichenebene oder 0.
      See Also:
    • imageScale

      public void imageScale(String imageSource, double x, double y, double width, double height, Options.Direction anchor)
      Zeichnet das Bild von der angegebenen Quelle an den angegebenen Koordinaten in der angegebenen Größe auf die Zeichenebene. Es wird der angegebene Ankerpunkt verwendet.

      Siehe imageScale(Image, double, double, double, double, Options.Direction) für mehr Details.

      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      width - Breite des Bildes auf der Zeichenebene oder 0.
      height - Höhe des Bildes auf der Zeichenebene oder 0.
      anchor - Der Ankerpunkt.
      See Also:
    • imageScale

      public void imageScale(Image image, double x, double y, double width, double height)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten in der angegebenen Größe auf die Zeichenebene.

      Siehe imageScale(Image, double, double, double, double, Options.Direction) für mehr Details.

      Parameters:
      image - Ein Bild-Objekt.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      width - Breite des Bildes auf der Zeichenebene oder 0.
      height - Höhe des Bildes auf der Zeichenebene oder 0.
    • imageScale

      public void imageScale(Image image, double x, double y, double width, double height, Options.Direction anchor)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten in der angegebenen Größe auf die Zeichenebene. Der angegebene Ankerpunkt wird verwendet.

      Das Bild wird innerhalb eines Rechtecks mit der angegebenen Breite und Höhe gezeichnet. Dabei wird das Abbild verzerrt, wenn beim Aufruf nicht auf ein passendes Seitenverhältnis der Werte zueinander geachtet wird.

      Um das Bild auf eine bestimmte Breite oder Höhe festzulegen und die andere Größe passend zu skalieren, kann einer der Parameter auf 0 gesetzt werden.

      Soll die Bildgröße unter Beachtung der Abmessungen um einen Faktor verändert werden, sollte imageScale(Image, double, double, double, Options.Direction) verwendet werden.

      Parameters:
      image - Ein Bild-Objekt.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      width - Breite des Bildes auf der Zeichenebene oder 0.
      height - Höhe des Bildes auf der Zeichenebene oder 0.
      anchor - Der Ankerpunkt.
    • imageRotate

      public void imageRotate(String imageSource, double x, double y, double angle)
      Zeichnet das Bild von der angegebenen Bildquelle an den angegebenen Koordinaten mit der angegebenen Drehung auf die Zeichenebene.

      Das Bild wird um seinen Mittelpunkt als Rotationszentrum gedreht.

      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      angle - Winkel in Grad.
    • imageRotate

      public void imageRotate(String imageSource, double x, double y, double angle, Options.Direction anchor)
      Zeichnet das Bild von der angegebenen Bildquelle an den angegebenen Koordinaten mit der angegebenen Drehung auf die Zeichenebene. Der angegebene Ankerpunkt wird verwendet.

      Das Bild wird um seinen Mittelpunkt als Rotationszentrum gedreht.

      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      angle - Winkel in Grad.
      anchor - Der Ankerpunkt.
    • imageRotate

      public void imageRotate(Image image, double x, double y, double angle)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten mit der angegebenen Drehung auf die Zeichenebene.

      Das Bild wird um seinen Mittelpunkt als Rotationszentrum gedreht.

      Parameters:
      image - Ein Bild-Objekt.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      angle - Winkel in Grad.
    • imageRotate

      public void imageRotate(Image image, double x, double y, double angle, Options.Direction anchor)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten mit der angegebenen Drehung auf die Zeichenebene. Der angegebene Ankerpunkt wird verwendet.

      Das Bild wird um seinen Mittelpunkt als Rotationszentrum gedreht.

      Parameters:
      image - Ein Bild-Objekt.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      angle - Winkel in Grad.
      anchor - Der Ankerpunkt.
    • imageRotateAndScale

      public void imageRotateAndScale(String imageSource, double x, double y, double angle, double width, double height)
      Zeichnet das Bild von der angegebenen Bildquelle an den angegebenen Koordinaten mit der angegebenen Drehung in der angegebenen Größe auf die Zeichenebene.
      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      angle - Winkel in Grad.
      width - Breite des Bildes auf der Zeichenebene oder 0.
      height - Höhe des Bildes auf der Zeichenebene oder 0.
      See Also:
    • imageRotateAndScale

      public void imageRotateAndScale(String imageSource, double x, double y, double angle, double width, double height, Options.Direction anchor)
      Zeichnet das Bild von der angegebenen Bildquelle an den angegebenen Koordinaten mit der angegebenen Drehung in der angegebenen Größe auf die Zeichenebene. Der angegebene Ankerpunkt wird verwendet.
      Parameters:
      imageSource - Die Bildquelle.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      angle - Winkel in Grad.
      width - Breite des Bildes auf der Zeichenebene oder 0.
      height - Höhe des Bildes auf der Zeichenebene oder 0.
      anchor - Der Ankerpunkt.
      See Also:
    • imageRotateAndScale

      public void imageRotateAndScale(Image image, double x, double y, double angle, double width, double height)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten mit der angegebenen Drehung in der angegebenen Größe auf die Zeichenebene. Der angegebene Ankerpunkt wird verwendet.
      Parameters:
      image - Ein Bild-Objekt.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      angle - Winkel in Grad.
      width - Breite des Bildes auf der Zeichenebene oder 0.
      height - Höhe des Bildes auf der Zeichenebene oder 0.
      See Also:
    • imageRotateAndScale

      public void imageRotateAndScale(Image image, double x, double y, double angle, double width, double height, Options.Direction anchor)
      Zeichnet das angegebene Bild an den angegebenen Koordinaten mit der angegebenen Drehung in der angegebenen Größe auf die Zeichenebene. Der angegebene Ankerpunkt wird verwendet.
      Parameters:
      image - Ein Bild-Objekt.
      x - x-Koordinate des Ankerpunktes.
      y - y-Koordinate des Ankerpunktes.
      angle - Winkel in Grad.
      width - Breite des Bildes auf der Zeichenebene oder 0.
      height - Höhe des Bildes auf der Zeichenebene oder 0.
      anchor - Der Ankerpunkt.
      See Also:
    • getFont

      public Font getFont()
      Returns:
      Die aktuell verwendete Schriftart.
    • setFont

      public void setFont(Font newFont)
      Setzt die verwendete Schriftart für Texte direkt auf das angegebene Font-Objekt.
      Parameters:
      newFont - Ein Font-Objekt.
    • setFont

      public void setFont(String fontName)
      Setzt die verwendete Schriftart für Texte auf eine Schriftart mit dem angegebenen Namen.

      Kann keine Schriftart mit einem passenden Namen geladen werden, wird die Schriftart nicht geändert.

      Parameters:
      fontName - Der Name der Schriftart.
      See Also:
    • setFont

      public void setFont(String fontName, int size)
      Setzt die verwendete Schriftart für Texte auf eine Schriftart mit dem angegebenen Namen und der angegebenen Schriftgröße.

      Kann keine Schriftart mit einem passenden Namen geladen werden, wird die Schriftart nicht geändert.

      Parameters:
      fontName - Der Name der Schriftart.
      size - Die Schriftgröße.
      See Also:
    • setFont

      public void setFont(String fontName, int size, int style)
      Setzt die verwendete Schriftart für Texte auf eine Schriftart mit dem angegebenen Namen, der angegebenen Schriftgröße und dem angegebenen Schriftstil.

      Der Schriftstil kann über die Stil-Konstanten PLAIN, BOLD und ITALIC gesetzt werden.

      Kann keine Schriftart mit einem passenden Namen geladen werden, wird die Schriftart nicht geändert.

      Parameters:
      fontName - Der Name der Schriftart.
      size - Die Schriftgröße.
      style - Der Schriftstil.
      See Also:
    • getFontSize

      public double getFontSize()
      Returns:
      Die aktuelle Schriftgröße für Texte.
    • setFontSize

      public void setFontSize(double size)
      Setzt die Schriftgörße für Texte auf den angegebenen Wert.
      Parameters:
      size - Die neue Schriftgröße.
    • text

      public void text(String text, double x, double y)
      Schreibt einen Text an der angegebenen Position auf die Zeichenebene.
      Parameters:
      text - Der zu schreibende Text.
      x - Die x-Koordinate des Ankerpunktes.
      y - Die y-Koordinate des Ankerpunktes.
    • text

      public void text(String text, double x, double y, Options.Direction anchor)
      Schreibt einen Text an der angegebenen Position auf die Zeichenebene und nutzt den angegebenen Ankerpunkt.
      Parameters:
      text - Der zu schreibende Text.
      x - Die x-Koordinate des Ankerpunktes.
      y - Die y-Koordinate des Ankerpunktes.
      anchor - Position des Ankerpunktes.
    • getOriginPoint

      protected Point2D.Double getOriginPoint(double x, double y, double w, double h, Options.Direction anchor)
      Berechnet den Ursprung einer zu zeichnenden Form, wenn der angegebene Ankerpunkt zugrunde gelegt wird.

      Der Ursprung einer Form liegt immer oben links. Eine Form an den Koordinaten (300, 300) und den Abmessungen (100, 50) würde für den Anker Options.Direction.NORTHWEST also den Ursprung (300, 300) haben. Für den Anker Options.Direction.CENTER wäre der Ursprung zu den Koordinaten um die Hälfte der Abmessungen nach links und oben verschoben bei (250, 275). Beim Zeichnen liegen die Koordinaten (300, 300) dann in der Mitte der Form.

      Parameters:
      x - x-Koordinate des umgebenden Rechtecks.
      y - y-Koordinate des umgebenden Rechtecks.
      w - Breite des umgebenden Rechtecks.
      h - Höhe des umgebenden Rechtecks.
      anchor - Zu verendender Anker.
      Returns:
      Der Ursprung des umgebenden Rechtecks.
    • pushStyle

      public void pushStyle()
      Speichert die aktuellen Einstellungen für Farben, Konturlinie und Schriftarten ab, sodass sie zu einem späteren Zeitpunkt mit popStyle() wiederhergestellt werden können.
    • popStyle

      public void popStyle()
      Stellt die zuletzt mit pushStyle() gespeicherten Einstellungen für Farben, Konturlinien und Texte wieder her.
    • resetStyle

      public void resetStyle()
      Setzt alle Einstellungen für Farben, Konturlinien und Texte auf die Standardwerte.
    • translate

      public void translate(double dx, double dy)
      Verschiebt den Ursprung der Zeichenebene um die angegebenen Werte entlang der x- und y-Achse.
      Parameters:
      dx - Verschiebung entlang der x-Achse.
      dy - Verschiebung entlang der y-Achse.
    • scale

      public void scale(double factor)
      Skaliert die Zeichenebene um den angegebenen Faktor.

      Ein Abstand von zehn Einheiten wird bei einem Faktor von 2.0 zu einem Abstand von 20 Einheiten. Bei einem Faktor von 0.5 zu fünf Einheiten.

      Der Skalierungsfaktor wird entlang der x- und y-Achse gleich angewandt.

      Parameters:
      factor - Der Skalierungsfaktor.
    • rotate

      public void rotate(double pAngle)
      Rotiert die Zeichenebene um den angegebenen Winkel um den Ursprung.
      Parameters:
      pAngle - Rotationswinkel in Grad.
    • rotate

      public void rotate(double pAngle, double centerX, double centerY)
      Rotiert die Zeichenebene um den angegebenen Winkel um das angegebene Drehzentrum.
      Parameters:
      pAngle - Rotationswinkel in Grad.
      centerX - x-Koordinate des Rotationszentrums.
      centerY - y-Koordinate des Rotationszentrums.
    • shear

      public void shear(double dx, double dy)
      Wendet eine Scherung auf die Zeichenebene an.

      Bei einer Scherung werden die x-Koordinaten parallel zur x-Achse abhängig von ihrer y-Koordinate verschoben. Ebenso die y-Koordinaten parallel zur y-Achse abhängig von ihrer x-Koordinate.

      Parameters:
      dx - Scherungsfaktor entlang der x-Achse.
      dy - Scherungsfaktor entlang der y-Achse.
    • getMatrix

      public AffineTransform getMatrix()
      Returns:
      Die aktuelle Transformationsmatrix der Zeichenebene.
    • pushMatrix

      public void pushMatrix()
      Speichert eine Kopie der aktuellen Transformationen der Zeichenebene ab.

      Die zuletzt gespeicherten Transformationen können mit popMatrix() wiederhergestellt werden.

    • popMatrix

      public void popMatrix()
      Ersetzt die aktuellen Transformationen der Zeichenebene durch die zuletzt mit pushMatrix() gespeicherten.

      Wurden keine Transformationen gespeichert, werden alle wird der Ursprungszustand wiederhergestellt.

    • resetMatrix

      public void resetMatrix()
      Setzt alle Transformationen der Zeichenebene zurück.