stasichase.gui
Class Tools

java.lang.Object
  |
  +--stasichase.gui.Tools

public class Tools
extends Object

Tools fuer Bilder. Sicher gibt es eine weit umfangreichere Bibliothek in Java. Jedoch ist das objektoriientierte Angebot von Java teils unverstaendlich, teils weit zu umstaendlich. Hier eine primitive Zusammenstellung von Grafik methoden die auf einem zwei-dimensionalen Array arbeiten.
Eine Ausnahme bilden die random() und randomize() Methoden. Diese sind wesentlich schneller, als die Java internen Methoden.

Version:
$Id: Tools.java,v 1.10 2000/07/06 20:57:45 rieck Exp $
Author:
Konrad Rieck

Field Summary
(package private) static int aktuelleFarbe
           
(package private) static int counter
           
(package private) static int dicke
           
(package private) static int dir
           
(package private) static int[] farbe
           
(package private) static int reg
           
(package private) static int verlauf
           
 
Constructor Summary
Tools()
           
 
Method Summary
static int[][] ellipse(int[][] bild, int x, int y, int r1, int r2)
          zeichnet eine leere Ellipse.
static Vector[] interpolate(int[] start, int[] ende, int steps)
          Interpoliert eine Palette.
static int[][] kreis(int[][] bild, int x, int y, int r)
          zeichnet einen leeren Kreis.
static int[][] linie(int[][] bild, int xstart, int ystart, int xende, int yende)
          zeichnet eine Linie.
static int[][] pixel(int[][] bild, int x, int y)
          Zeichnet ein Pixel.
static int[][] quadrat(int[][] bild, int x, int y, int w)
          zeichnet ein leeres Quadrat.
static int random(int a, int b)
          ein schnelles random().
static void randomize()
          Randomisiert die Seeds.
static int[][] rechteck(int[][] bild, int x, int y, int w, int h)
          zeichnet ein leeres Rechteck.
static void setzeCounter(int c)
           
static void setzeDicke(int d)
          Setzt die Pixeldicke.
static void setzeFarbe(int farbe)
          Setzt die Standardfarbe.
static void setzeFarbe(int start, int ende)
          Setzt die Standardfarbe.
static void setzeVerlauf(int v)
          Setzt die Verlaufsgeschwindigkeit.
static int[][] smooth(int[][] bild, int faktor)
          Weichfilter fuer Bilder.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

reg

static int reg

dicke

static int dicke

farbe

static int[] farbe

aktuelleFarbe

static int aktuelleFarbe

dir

static int dir

verlauf

static int verlauf

counter

static int counter
Constructor Detail

Tools

public Tools()
Method Detail

setzeCounter

public static void setzeCounter(int c)

interpolate

public static Vector[] interpolate(int[] start,
                                   int[] ende,
                                   int steps)
Interpoliert eine Palette. Die Palette wird als linearer Farbverlauf von start zu ende generiert.
Parameters:
int[3] - start - rot, gruen, blau Werte
int[3] - ende - rot, gruen, blau Werte
steps - Zwischenstufen
Returns:
Vector[] - Nacheinander rot, gruen, blau Werte

setzeFarbe

public static void setzeFarbe(int start,
                              int ende)
Setzt die Standardfarbe. Die Standardfarbe wird als Farbverlauf gesetzt.
Parameters:
start - Startfarbe
ende - Endfarbe

setzeFarbe

public static void setzeFarbe(int farbe)
Setzt die Standardfarbe.
Parameters:
farbe - Farbe

setzeVerlauf

public static void setzeVerlauf(int v)
Setzt die Verlaufsgeschwindigkeit.
Parameters:
v - Geschwindigkeit

setzeDicke

public static void setzeDicke(int d)
Setzt die Pixeldicke.
Parameters:
d - Dicke

pixel

public static int[][] pixel(int[][] bild,
                            int x,
                            int y)
Zeichnet ein Pixel. Das Pixel wird nach Angaben der Dicke und der Farbe gezeichnet.
Parameters:
bild - das Bild
x - X-Koordinate
y - Y-Koordinate
Returns:
bild das Bild
See Also:
setzeDicke, setzeFarbe

rechteck

public static int[][] rechteck(int[][] bild,
                               int x,
                               int y,
                               int w,
                               int h)
zeichnet ein leeres Rechteck.
Parameters:
bild - das Bild
x - X-Koordinate
y - Y-Koordinate
w - Breite
h - Hoehe
Returns:
das neue Bild
See Also:
setzeDicke, setzeFarbe

linie

public static int[][] linie(int[][] bild,
                            int xstart,
                            int ystart,
                            int xende,
                            int yende)
zeichnet eine Linie. Die Linie wird mit einer Farbschattierung von farbeVon bis farbeZu gefuellt. Die Methode basiert auf dem bekannten Bresenham Algrithmus zur Interpolation.
Parameters:
bild - das Bild
xstart - X-Koordinate
ystart - Y-Koordinate
xende - X1-Koordinate
yende - Y1-Koordinate
Returns:
das neue Bild
See Also:
setzeDicke, setzeFarbe

quadrat

public static int[][] quadrat(int[][] bild,
                              int x,
                              int y,
                              int w)
zeichnet ein leeres Quadrat.
Parameters:
bild - das Bild
x - X-Koordinate
y - Y-Koordinate
w - Breite
color - Index der Farbe
Returns:
das neue Bild
See Also:
setzeDicke, setzeFarbe

kreis

public static int[][] kreis(int[][] bild,
                            int x,
                            int y,
                            int r)
zeichnet einen leeren Kreis.
Parameters:
bild - das Bild
x - X-Koordinate
y - Y-Koordinate
r - Radius
Returns:
das neue Bild
See Also:
setzeDicke, setzeFarbe

ellipse

public static int[][] ellipse(int[][] bild,
                              int x,
                              int y,
                              int r1,
                              int r2)
zeichnet eine leere Ellipse.
Parameters:
bild - das Bild
x - X-Koordinate
y - Y-Koordinate
r1 - Radius1
r2 - Radius2
Returns:
das neue Bild
See Also:
setzeDicke, setzeFarbe

smooth

public static int[][] smooth(int[][] bild,
                             int faktor)
Weichfilter fuer Bilder. Ein einfacher Weichzeichner, der sich skalieren laesst. Hierbei ist 1 der staerkste Faktor und 100 der schwaechste.
Parameters:
bild - ein Bild als zwei dimensionales Array.
Returns:
das Bild.

random

public static int random(int a,
                         int b)
ein schnelles random(). Das Java interne random() ist nicht ganz so performant. Hier eine eigene Version auf Basis von einem linearen Shifting-Register (LSR). Nachteil ist zur Zeit noch die teilweise zu geringe Periode der Funktion, diese sollte bald groesser sein, wenn die kompletten 16 (bzw. 32) bit des Integerwertes ausgenutzt werden. Bitte bitte vorher randomize() aufrufen
Parameters:
a - Grenze A
b - Grenze B
Returns:
ein Zufallswert zwischen A und B
See Also:
randomize

randomize

public static void randomize()
Randomisiert die Seeds. Es wird einfach die Unixtime in das Shifting-Register geschrieben.