ch.w3p.currgrid
Class SimGrid

java.lang.Object
  |
  +--ch.w3p.currgrid.SimGrid

public class SimGrid
extends java.lang.Object

SimGrid - a flexible current grid simulation object
Simulates a Current Grid. Mathematic Project I2
Authors Daniel Schröter; Fabian Heusser
Teacher: Dr. Josef F. Bürgler
School: hta.fhz.ch, Horw;
Project Homepage: http://www.w3p.ch/currgrid/
Project Maillist: currgrid@w3p.ch

supported features:
interpolatet Plot:
interpolatet VoltageOutput;
change Voltage Points;
delete Voltage Points;
delete a Singel Voltage Point;
drawLevelLinesM;
Matrix ScrPrintOut

LEGAL NOTICE
THIS PROJECT AND ITS FILES ARE COPYRIGHTED BY THE AUTHORS THIS PROJECT CAN BE COPIED, MODIFIED AND DISTRIBUTED UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENCE WITH THE RESTRICTION OF SENDING US A MAIL WITH THE MODIFIED SOURCODE IF THE PROJECT IS MODIEFIED.

if you like this progi feel free to send us something (beer, chips, playmates, houses....).


Constructor Summary
SimGrid(int xPos, int yPos, int width, int height)
          Construktor nur mit angaben über die physikalische grösse des Gitters.
SimGrid(int xPos, int yPos, int width, int height, int col, int row)
          Construktor mit allen möglichen angaben
 
Method Summary
 void display(java.awt.Graphics g)
          zeichnet das spannungsgitter, wenn es noch nicht berechnet ist wird es.
 void drawGrid(java.awt.Graphics g)
          Zeichnet das Gitternetz. überschreibt die Funktion bei der zusätzlich noch die Farbe angegeben werden kann
 void drawGrid(java.awt.Graphics g, java.awt.Color c)
          Zeichnet das Gitternetz
 void drawGrid(java.awt.Graphics g, java.awt.Color c, int xPos, int yPos)
          Zeichnet das Gitternetz.
 void drawGridWithPoints(java.awt.Graphics g)
          Zeichnet das Gitternetz mit den Punkten welche sich im array befinden.
 void drawGridWithPoints(java.awt.Graphics g, java.awt.Color cPoints)
          Zeichnet das Gitternetz mit den Punkten welche sich im array befinden.
 void drawGridWithPoints(java.awt.Graphics g, java.awt.Color cGrid, java.awt.Color cPoints)
          Zeichnet das Gitternetz mit den Punkten welche sich im array befinden.überschreibt die sub welche ein anderes x,y offset unterstützt als das objeckt hat
 void drawGridWithPoints(java.awt.Graphics g, java.awt.Color cGrid, java.awt.Color cPoints, int xPos, int yPos)
          Zeichnet das Gitternetz mit den Punkten welche sich im array befinden. diese Variante unterstützt zusätzlich das setzten eines anderen Offset als dem Grid Obj. zugewisen wurde.
 void drawLevelLine(double level, java.awt.Color c, java.awt.Graphics g)
          Verbindet Punkte mit dem Gleichen Spannungs Niveau.
 void drawLevelLine(double level, java.awt.Color c, java.awt.Graphics g, double toleranzRelativ)
          Verbindet Punkte mit dem Gleichen Spannungs Niveau.
 double getDefVoltage(int col, int row)
          liefert nur die Spannung eines FestSpannungPunktes zurück.
 double getMaxVoltage()
          liefert die maximale Spannung des Gitters.
 double getMinVoltage()
          liefert die minimale Spannung des Gitters.
 Matrix getSolvedMatrix()
          Es wird die Matrix Zurück gegeben wie sie NACH dem berechnen war.
 long getTimeToAssamable()
          Liefert die Zeit zurückt die zum zusammenstellen der Matrix benötigt wurde
 long getTimeToCalculate()
          Liefert die Zeit zurückt die zum Berechnen der Matrix benötigt wurde
 long getTimeToDraw()
          Liefert die Zeit zurückt die zum Zeichnen benötigt wurde. inkl. interpollieren.
 long getTimeToDrawLevelLine()
          Liefert die Zeit zurückt die zum Berechnen und Zeichnen der Höhenlinien benötigt wurde
 Matrix getUnSolvedMatrix()
          Es wird die Matrix Zurück gegeben wie sie VOR dem berechnen war.
 double getVoltage(int col, int row)
          liefert die Spannung eines Punktes zurück.
 double getVoltageInterpolated(int x, int y)
          Liefert einen Interpollierten Spannungs wert einer X,Y Koordinate.
 int getVoltagePointX(int x)
          wie die gleichnamige ausser, dass die überflüssige y koordinate nicht gegeben werden muss.
 int getVoltagePointX(int x, int y)
          Linkt eine X,Y koordinate einer spalte zu.
 int getVoltagePointY(int y)
          wie die Gleichnamige ausser, dass die Überflüssige x Koordinate nicht angegeben werden muss
 int getVoltagePointY(int x, int y)
          Linkt eine X,Y Cord zu einer zeile
 double[] getVoltagesForSave()
          Liefert das array mit den Spannungen drin zürück die spannung eines punktes errechnet sich demnach aus: x * (col+1) + y
 void resetVoltagePoints()
          Resetet das Array mit dem Spannungen auf null (alle punkte sind gelöscht) auch die timer werden gereseted.
 void setDimension(int height, int width)
          Setzt die Grösse des Gitters
 void setGrid(int col, int row)
          Setzt die spalten und zeilen zahl und somit die auflösung
 void setPos(int xPos, int yPos)
          Setzt die linke obere Ecke des Gitters
 void setVoltage(int col, int row, double voltage)
          Setzt eine feste Spannung an einen Festen punkt.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimGrid

public SimGrid(int xPos,
               int yPos,
               int width,
               int height,
               int col,
               int row)
Construktor mit allen möglichen angaben
Parameters:
xPos - x cord der Linken oberen Ecke des Gitters
yPos - y cord der Linken oberen Ecke des Gitters
width - die breite des Gitters
height - die höhe des Gitters
col - die anzahl Spalten - definiert die Virtuelle x Auflösung des Gitters
row - die anzahl Zeilen - definiert die Virtuelle y Auflösung des Gitters
See Also:
SimGrid( int xPos, int yPos, int width , int height )

SimGrid

public SimGrid(int xPos,
               int yPos,
               int width,
               int height)
Construktor nur mit angaben über die physikalische grösse des Gitters. Als virtuelle Auflösung wird ein zehntel (1/10) der breite und höhe genommen
Parameters:
xPos - x cord der Linken oberen Ecke des Gitters
yPos - y cord der Linken oberen Ecke des Gitters
width - die breite des Gitters
height - die höhe des Gitters
Method Detail

display

public void display(java.awt.Graphics g)
zeichnet das spannungsgitter, wenn es noch nicht berechnet ist wird es. Das zeichnen funktioniert mit der quadratischer Interpollation.
Parameters:
g - Graphics Objekt in welches das Spannungsgitter gezeichnet werden soll.

drawGrid

public void drawGrid(java.awt.Graphics g,
                     java.awt.Color c,
                     int xPos,
                     int yPos)
Zeichnet das Gitternetz. Ünterstützt zusätzlich noch ein anders offset als dem grid zugewisen wurde
Parameters:
g - Graphics, das Fenster in das es gezeichnet werden soll.
c - Color, Farbe des Gitters
xPos - int, alternatives x offset
yPos - int, alternatives y offset
See Also:
drawGrid(Graphics g, Color c), drawGrid(Graphics g)

drawGrid

public void drawGrid(java.awt.Graphics g,
                     java.awt.Color c)
Zeichnet das Gitternetz
Parameters:
g - Graphics, das Fenster in das es gezeichnet werden soll.
c - Color, Farbe des Gitters
See Also:
drawGrid(Graphics g, Color c,int xPos, int yPos), drawGrid(Graphics g)

drawGrid

public void drawGrid(java.awt.Graphics g)
Zeichnet das Gitternetz. überschreibt die Funktion bei der zusätzlich noch die Farbe angegeben werden kann
Parameters:
g - Graphics, das Fenster in das es gezeichnet werden soll.
See Also:
drawGrid(Graphics g, Color c), drawGrid(Graphics g, Color c,int xPos, int yPos)

drawGridWithPoints

public void drawGridWithPoints(java.awt.Graphics g,
                               java.awt.Color cGrid,
                               java.awt.Color cPoints,
                               int xPos,
                               int yPos)
Zeichnet das Gitternetz mit den Punkten welche sich im array befinden. diese Variante unterstützt zusätzlich das setzten eines anderen Offset als dem Grid Obj. zugewisen wurde.
Parameters:
g - Graphics, das Fenster in das es gezeichnet werden soll.
cGrid - Color, die Farbe des Gitters.
cPoints - Color, Die Farbe der Punkte.
xPos - int, X Offset
yPos - int, Y Offset
See Also:
drawGridWithPoints(Graphics g, Color cGrid,Color cPoints), drawGridWithPoints(Graphics g,Color cPoints), drawGridWithPoints(Graphics g)

drawGridWithPoints

public void drawGridWithPoints(java.awt.Graphics g,
                               java.awt.Color cGrid,
                               java.awt.Color cPoints)
Zeichnet das Gitternetz mit den Punkten welche sich im array befinden.überschreibt die sub welche ein anderes x,y offset unterstützt als das objeckt hat
Parameters:
g - Graphics, das Fenster in das es gezeichnet werden soll.
cGrid - Color, die Farbe des Gitters.
cPoints - Color, Die Farbe der Punkte.
See Also:
drawGridWithPoints(Graphics g,Color cGrid,Color cPoints, int xPos, int yPos), drawGridWithPoints(Graphics g,Color cPoints), drawGridWithPoints(Graphics g)

drawGridWithPoints

public void drawGridWithPoints(java.awt.Graphics g,
                               java.awt.Color cPoints)
Zeichnet das Gitternetz mit den Punkten welche sich im array befinden. Überschreibt funktionen mit mehr Farboptionen
Parameters:
g - Graphics, das Fenster in das es gezeichnet werden soll.
cPoints - Color, Die Farbe der Punkte.
See Also:
drawGridWithPoints(Graphics g,Color cGrid,Color cPoints, int xPos, int yPos), drawGridWithPoints(Graphics g, Color cGrid,Color cPoints), drawGridWithPoints(Graphics g)

drawGridWithPoints

public void drawGridWithPoints(java.awt.Graphics g)
Zeichnet das Gitternetz mit den Punkten welche sich im array befinden. Überschreibt funktionen mit mehr Farboptionen
Parameters:
g - Graphics, das Fenster in das es gezeichnet werden soll.
See Also:
drawGridWithPoints(Graphics g, Color cGrid,Color cPoints)

drawLevelLine

public void drawLevelLine(double level,
                          java.awt.Color c,
                          java.awt.Graphics g,
                          double toleranzRelativ)
Verbindet Punkte mit dem Gleichen Spannungs Niveau. Vorab version Kann noch Optimiertwerden in dem die der InterpollationsMechanismus direkt implementiert wird.
Parameters:
level - double, höhe der spannung bei der eine linie gezeichnet werden soll
c - Color, Farbe der Linie.
g - Graphics, Objekt auf welches es gezeichnet werden soll.
toleranz - double, die Toleranz der Linie in Prozent zum gesammten Wertebereich.
See Also:
drawLevelLine(double level, Color c, Graphics g)

drawLevelLine

public void drawLevelLine(double level,
                          java.awt.Color c,
                          java.awt.Graphics g)
Verbindet Punkte mit dem Gleichen Spannungs Niveau. Es wird eine default Toleranz von 1 Promill gesetzt. Vorab version Kann noch Optimiertwerden in dem die der InterpollationsMechanismus direkt implementiert wird.
Parameters:
level - double, höhe der spannung bei der eine linie gezeichnet werden soll
c - Color, Farbe der Linie.
g - Graphics, Objekt auf welches es gezeichnet werden soll.
See Also:
drawLevelLine(double level, Color c, Graphics g, double toleranz)

getVoltage

public double getVoltage(int col,
                         int row)
liefert die Spannung eines Punktes zurück.
Parameters:
row - die Zeile in der sich der Spannungspunkt befindet
col - die Spalte in der sich der Spannungspunkt befindet
Returns:
double; Spannnung welche am angegebenen punkt anliegt. NaN falls es den Punkt nicht gibt

getVoltagesForSave

public double[] getVoltagesForSave()
Liefert das array mit den Spannungen drin zürück die spannung eines punktes errechnet sich demnach aus: x * (col+1) + y
Returns:
double[], ein array mit allen spannugen drin.

getDefVoltage

public double getDefVoltage(int col,
                            int row)
liefert nur die Spannung eines FestSpannungPunktes zurück.
Parameters:
row - die Zeile in der sich der Spannungspunkt befindet
col - die Spalte in der sich der Spannungspunkt befindet
Returns:
double; Spannnung welche am angegebenen punkt anliegt. NaN falls es den Punkt nicht gibt

getVoltageInterpolated

public double getVoltageInterpolated(int x,
                                     int y)
Liefert einen Interpollierten Spannungs wert einer X,Y Koordinate. Es wird Linear Integriert. über den genauen vorgang verweise ich auf die spezielle doku zu diesem thema auf unserer Projeckt Homepage.
Parameters:
x - int, x Koordinate
y - int, y Koordinate
Returns:
die interpollierte spannung,.

getMaxVoltage

public double getMaxVoltage()
liefert die maximale Spannung des Gitters.
Returns:
double; Die maximale Spannnung;

getMinVoltage

public double getMinVoltage()
liefert die minimale Spannung des Gitters.
Returns:
double; Die minimale Spannnung;

resetVoltagePoints

public void resetVoltagePoints()
Resetet das Array mit dem Spannungen auf null (alle punkte sind gelöscht) auch die timer werden gereseted.

getVoltagePointX

public int getVoltagePointX(int x)
wie die gleichnamige ausser, dass die überflüssige y koordinate nicht gegeben werden muss.
Parameters:
x - x koordinate

getVoltagePointX

public int getVoltagePointX(int x,
                            int y)
Linkt eine X,Y koordinate einer spalte zu.
Parameters:
x - x koordinate
y - y koordinate, obwohl diese überflüssig ist.
See Also:
getVoltagePointX(int x)

getVoltagePointY

public int getVoltagePointY(int y)
wie die Gleichnamige ausser, dass die Überflüssige x Koordinate nicht angegeben werden muss
Parameters:
y - y Koordinate

getVoltagePointY

public int getVoltagePointY(int x,
                            int y)
Linkt eine X,Y Cord zu einer zeile
Parameters:
x - x koordinate, obwohl diese überflüssig ist.
y - y koordinate
Returns:
int, die Zeile.
See Also:
getVoltagePointY(int y)

getTimeToCalculate

public long getTimeToCalculate()
Liefert die Zeit zurückt die zum Berechnen der Matrix benötigt wurde
Returns:
long zeit in milisekunden

getTimeToAssamable

public long getTimeToAssamable()
Liefert die Zeit zurückt die zum zusammenstellen der Matrix benötigt wurde
Returns:
long zeit in milisekunden

getTimeToDraw

public long getTimeToDraw()
Liefert die Zeit zurückt die zum Zeichnen benötigt wurde. inkl. interpollieren.
Returns:
long zeit in milisekunden

getTimeToDrawLevelLine

public long getTimeToDrawLevelLine()
Liefert die Zeit zurückt die zum Berechnen und Zeichnen der Höhenlinien benötigt wurde
Returns:
long zeit in milisekunden

getSolvedMatrix

public Matrix getSolvedMatrix()
Es wird die Matrix Zurück gegeben wie sie NACH dem berechnen war.
Returns:
Matrixobjeckt wie es vor dem berechnen war.

getUnSolvedMatrix

public Matrix getUnSolvedMatrix()
Es wird die Matrix Zurück gegeben wie sie VOR dem berechnen war.
Returns:
Matrixobjeckt wie es vor dem berechnen war.

setPos

public void setPos(int xPos,
                   int yPos)
Setzt die linke obere Ecke des Gitters
Parameters:
x - x Koordinate
y - y Koordinate

setDimension

public void setDimension(int height,
                         int width)
Setzt die Grösse des Gitters
Parameters:
height - höhe des Gitters
width - Breite des Gitters

setGrid

public void setGrid(int col,
                    int row)
Setzt die spalten und zeilen zahl und somit die auflösung
Parameters:
col - spalten Zahl des Gitters
row - zeilen zahl des gitters
voltage - double Wert der Spannung auf die dieser punkt eingestellt werden soll.

setVoltage

public void setVoltage(int col,
                       int row,
                       double voltage)
Setzt eine feste Spannung an einen Festen punkt.
Parameters:
row - zeile in der sich der punkt befindet
col - spalte in der sich der punkt befindet.
voltage - double Wert der Spannung auf die dieser punkt eingestellt werden soll.