sum.kern
Class Stift

java.lang.Object
  extended by sum.kern.Stift
Direct Known Subclasses:
Buntstift

public class Stift
extends Object

Der Stift ist ein Werkzeug, das sich auf dem Bildschirm bewegen kann. Er befindet sich stets auf einer genau definierten Position des Bildschirms, die durch Zeichenkoordinaten (horizontal nach rechts, vertikal nach unten) angegeben wird, und zeigt in eine Richtung, die durch Winkel beschrieben wird (0 = rechts, Drehsinn mathematisch positiv). Der Stift kennt zwei Zustaende: Ist der Stift abgesenkt (runter) und bewegt er sich über den Bildschirm, so hinterlaesst er eine Spur, die von einem Zeichenmodus abhaengig ist. Ist der Stift angehoben (hoch), hinterlaesst er keine Spur. Beim Zeichnen kennt der Stift drei Modi: Normal - der Stift zeichnet eine Linie in der Stiftfarbe; Wechseln - der Stift zeichnet eine Linie, wobei die Untergrundfarbe in die Stiftfarbe und die Stiftfarbe in die Untergrundfarbe geaendert wird; Radieren - der Stift zeichnet eine Linie in der Farbe des Untergrunds.

Version:
7.5 vom 29.10.2013
Author:
Bernard Schriek

Field Summary
protected  BasicStroke hatStroke
           
protected  Bildschirm kenntPrivatschirm
           
protected static int NORMALMODUS
           
protected static int RADIERMODUS
           
protected static int WECHSELMODUS
           
protected  boolean zHoch
           
protected  int zSchreibModus
           
protected  double zStiftH
           
protected  double zStiftV
           
protected  double zWinkel
           
 
Constructor Summary
Stift()
          Der Stift wird initialisiert.
Stift(Fenster pFenster)
          Der Stift für ein Fenster wird initialisiert.
 
Method Summary
 void bewegeBis(double pH, double pV)
          Der Stift wird unabhaengig von seiner vorherigen Position auf die durch die Parameter angegebene Position bewegt.
 void bewegeUm(double pDistanz)
          Der Stift wird von seiner aktuellen Position in die aktuelle Richtung bewegt.
 void dreheBis(double pWinkel)
          Der Stift wird unabhaengig von seiner vorherigen Richtung auf die durch Winkel angegebene Winkelgroesse gedreht.
 void dreheUm(double pWinkel)
          Der Stift wird ausgehend von seiner jetzigen Richtung um die durch Winkel angegebene Winkelgroesse im mathematisch positiven Sinne weitergedreht.
 void dreheZu(double pWohinH, double pWohinV)
          Der Stift wird unabhaengig von seiner vorherigen Richtung in die Richtung des Punktes gedreht, dessen Koordinaten uebergeben werden.
protected  Graphics2D get2DGraphics(Graphics g)
          wird intern vor dem Zeichnen aufgerufen.
 void gibFrei()
          Der Stift wird freigegeben.
 void hoch()
          Der Stift wird angehoben.
 double hPosition()
          liefert die horizontale Koordinate der aktuellen Stiftposition.
 boolean istUnten()
          liefert, ob der Stift abgesenkt ist.
 void normal()
          Der Stift arbeitet danach im Normalmodus.
 void radiere()
          Der Stift arbeitet danach im Radiermodus.
 void runter()
          Der Stift wird abgesenkt.
 void schreibeText(char pZeichen)
          Der Stift schreibt das angegebenen Zeichen auf die Zeichenebene unter Verwendung seines aktuellen Zeichenmodus unabhaengig vom Zustand.
 void schreibeText(String pText)
          Der Stift schreibt den angegebenen Text auf die Zeichenebene unter Verwendung seines aktuellen Zeichenmodus unabhaengig vom Zustand.
 void schreibeZahl(double pZahl)
          Der Stift schreibt die angegebene Zahl auf die Zeichenebene unter Verwendung seines aktuellen Zeichenmodus unabhaengig vom Zustand.
 void schreibeZahl(int pZahl)
          Der Stift schreibt die angegebene Zahl auf die Zeichenebene unter Verwendung seines aktuellen Zeichenmodus unabhaengig vom Zustand.
protected  void setzeZustand(Graphics2D g)
          wird intern vor dem Zeichnen aufgerufen.
 double vPosition()
          liefert die vertikale Koordinate der aktuellen Stiftposition.
 void wechsle()
          Der Stift arbeitet danach im Wechselmodus.
 double winkel()
          liefert die aktuelle Bewegungsrichtung des Stifts.
 void zeichneKreis(double pRadius)
          Der Stift zeichnet unabhaengig von seinem Zustand im aktuellen Zeichenmodus einen Kreis mit der aktuellen Position als Mittelpunkt und dem angegebenen Radius.
protected  void zeichneLinie(double x1, double y1, double x2, double y2)
          wird intern von bewegeBis() aufgerufen.
 void zeichneRechteck(double pBreite, double pHoehe)
          Der Stift zeichnet unabhaengig von seinem Zustand im aktuellen Zeichenmodus ein achsenparalleles Rechteck mit der aktuellen Position als linker oberer Ecke und der angegebenen Breite und Hoehe.
 
Methods inherited from class
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

hatStroke

protected BasicStroke hatStroke

kenntPrivatschirm

protected Bildschirm kenntPrivatschirm

NORMALMODUS

protected static final int NORMALMODUS
See Also:
Constant Field Values

RADIERMODUS

protected static final int RADIERMODUS
See Also:
Constant Field Values

WECHSELMODUS

protected static final int WECHSELMODUS
See Also:
Constant Field Values

zHoch

protected boolean zHoch

zSchreibModus

protected int zSchreibModus

zStiftH

protected double zStiftH

zStiftV

protected double zStiftV

zWinkel

protected double zWinkel
Constructor Detail

Stift

public Stift()
Der Stift wird initialisiert. Die Zeichenebene steht zur Verfuegung und der Stift befindet sich angehoben oben links an Position (0,0) mit Richtung 0 Grad im normalen Zeichenmodus.


Stift

public Stift(Fenster pFenster)
Der Stift für ein Fenster wird initialisiert. Die Zeichenebene steht zur Verfügung und der Stift befindet sich angehoben oben links an Position (0,0) mit Richtung 0 Grad im normalen Zeichenmodus.

Method Detail

bewegeBis

public void bewegeBis(double pH,
                      double pV)
Der Stift wird unabhaengig von seiner vorherigen Position auf die durch die Parameter angegebene Position bewegt.

Parameters:
pH - neue horizontale Position des Stifts
pV - neue vertikale Position des Stifts

bewegeUm

public void bewegeUm(double pDistanz)
Der Stift wird von seiner aktuellen Position in die aktuelle Richtung bewegt.

Parameters:
pDistanz - Laenge der bewegten Strecke

dreheBis

public void dreheBis(double pWinkel)
Der Stift wird unabhaengig von seiner vorherigen Richtung auf die durch Winkel angegebene Winkelgroesse gedreht.

Parameters:
pWinkel - neue Richtung des Stifts

dreheUm

public void dreheUm(double pWinkel)
Der Stift wird ausgehend von seiner jetzigen Richtung um die durch Winkel angegebene Winkelgroesse im mathematisch positiven Sinne weitergedreht.

Parameters:
pWinkel - um diesen Winkel wird die Richtung des Stifts gedreht.

dreheZu

public void dreheZu(double pWohinH,
                    double pWohinV)
Der Stift wird unabhaengig von seiner vorherigen Richtung in die Richtung des Punktes gedreht, dessen Koordinaten uebergeben werden.

Parameters:
pWohinH - horizontale Position des Punktes, zu dem die neue Richtung des Stifts zeigt.
pWohinV - vertikale Position des Punktes, zu dem die neue Richtung des Stifts zeigt.

get2DGraphics

protected Graphics2D get2DGraphics(Graphics g)
wird intern vor dem Zeichnen aufgerufen.


gibFrei

public void gibFrei()
Der Stift wird freigegeben.


hoch

public void hoch()
Der Stift wird angehoben.


hPosition

public double hPosition()
liefert die horizontale Koordinate der aktuellen Stiftposition.

Returns:
die horizontale Position des Stifts

istUnten

public boolean istUnten()
liefert, ob der Stift abgesenkt ist.

Returns:
true, wenn der Stift gesenkt ist.

normal

public void normal()
Der Stift arbeitet danach im Normalmodus.


radiere

public void radiere()
Der Stift arbeitet danach im Radiermodus.


runter

public void runter()
Der Stift wird abgesenkt.


schreibeText

public void schreibeText(char pZeichen)
Der Stift schreibt das angegebenen Zeichen auf die Zeichenebene unter Verwendung seines aktuellen Zeichenmodus unabhaengig vom Zustand. Die aktuelle Stiftposition ist die linke obere Ecke des Zeichens. Die neue Stiftposition wird die rechte obere Ecke des Zeichens.

Parameters:
pZeichen - Zeichen, das auf den Bildschirm geschrieben wird.

schreibeText

public void schreibeText(String pText)
Der Stift schreibt den angegebenen Text auf die Zeichenebene unter Verwendung seines aktuellen Zeichenmodus unabhaengig vom Zustand. Die aktuelle Stiftposition ist die linke obere Ecke des Textes. Die neue Stiftposition wird die rechte obere Ecke des Textes.

Parameters:
pText - Zeichenkette, die auf den Bildschirm geschrieben wird.

schreibeZahl

public void schreibeZahl(double pZahl)
Der Stift schreibt die angegebene Zahl auf die Zeichenebene unter Verwendung seines aktuellen Zeichenmodus unabhaengig vom Zustand. Die aktuelle Stiftposition ist die linke obere Ecke der Zahl. Die neue Stiftposition wird die rechte obere Ecke der Zahl.

Parameters:
pZahl - Zahl, die auf den Bildschirm geschrieben wird.

schreibeZahl

public void schreibeZahl(int pZahl)
Der Stift schreibt die angegebene Zahl auf die Zeichenebene unter Verwendung seines aktuellen Zeichenmodus unabhaengig vom Zustand. Die aktuelle Stiftposition ist die linke obere Ecke der Zahl. Die neue Stiftposition wird die rechte obere Ecke der Zahl.

Parameters:
pZahl - Zahl, die auf den Bildschirm geschrieben wird.

setzeZustand

protected void setzeZustand(Graphics2D g)
wird intern vor dem Zeichnen aufgerufen.


vPosition

public double vPosition()
liefert die vertikale Koordinate der aktuellen Stiftposition.

Returns:
die vertikale Position des Stifts

wechsle

public void wechsle()
Der Stift arbeitet danach im Wechselmodus.


winkel

public double winkel()
liefert die aktuelle Bewegungsrichtung des Stifts.

Returns:
die Richtung des Stifts

zeichneKreis

public void zeichneKreis(double pRadius)
Der Stift zeichnet unabhaengig von seinem Zustand im aktuellen Zeichenmodus einen Kreis mit der aktuellen Position als Mittelpunkt und dem angegebenen Radius. Die Position und die Richtung des Stiftes bleiben unveraendert.

Parameters:
pRadius - der Radius des Kreises

zeichneLinie

protected void zeichneLinie(double x1,
                            double y1,
                            double x2,
                            double y2)
wird intern von bewegeBis() aufgerufen.


zeichneRechteck

public void zeichneRechteck(double pBreite,
                            double pHoehe)
Der Stift zeichnet unabhaengig von seinem Zustand im aktuellen Zeichenmodus ein achsenparalleles Rechteck mit der aktuellen Position als linker oberer Ecke und der angegebenen Breite und Hoehe. Die Position und die Richtung des Stiftes bleiben unveraendert.

Parameters:
pBreite - die Breite des Rechtecks
pHoehe - die Hoehe des Rechtecks