Class Polyeder

java.lang.Object
  extended byPolyeder

public class Polyeder
extends java.lang.Object

Matrix NewPolygon Klasse Thing erzeugt einen Polyeder aus den uebergebenen Parametern koord[][] und poly_param[][]. Die erzeugten Polygone werden im Array p[] gespeichert und koennen ueber eine Instanz von Thing ausgelesen werden.


Field Summary
 NewPolygon[] p
          Array fuer die Aufnahme der Polygone
 int[] wpos
          Array fuer die Speicherung der Mittelpunktkoordinaten
 
Constructor Summary
Polyeder(double[][] koord, int[][] poly_param, int width, int height, double zKorr)
          Konstruktor uebergibt die Parameter an die hiesigen Variablen und ruft die Methode buildPolygon auf
 
Method Summary
 void buildPolygon()
          Methode erzeugt aus den uebergebenen Parametern Polygone und speichert diese im Array p ab.
 boolean sichtbar(NewPolygon poly)
          Methode liefert true, wenn das uebergebene Polygon im sichtbaren Bereich ist und false, wenn es im fuer den Betrachter nicht sichtbaren Bereich ist.
 void update(Matrix m)
          Methode multipliziert koord mit der uebergebenen Matrix (main_matrix) und ermittelt so die neuen Koordinaten fuer die Positionierung dieses Polyeders.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

p

public NewPolygon[] p
Array fuer die Aufnahme der Polygone


wpos

public int[] wpos
Array fuer die Speicherung der Mittelpunktkoordinaten

Constructor Detail

Polyeder

public Polyeder(double[][] koord,
                int[][] poly_param,
                int width,
                int height,
                double zKorr)
Konstruktor uebergibt die Parameter an die hiesigen Variablen und ruft die Methode buildPolygon auf

Parameters:
koord - 3D Koordinaten
poly_param - Zugriffsparameter fuer die Polygone
width - Breite Panel
height - Hoehe Panel
zKorr - Korrekturparameter fuer z
Method Detail

sichtbar

public boolean sichtbar(NewPolygon poly)
Methode liefert true, wenn das uebergebene Polygon im sichtbaren Bereich ist und false, wenn es im fuer den Betrachter nicht sichtbaren Bereich ist. Dieses geschieht durch Errechnung des Kreuzproduktes der beiden Vektoren vom Punkt koord3D[0] aus. Wenn man ein 3D Object direkt von vorn betrachtet, sind die Seiten- elemente (z.B. eines Wuerfels) nicht im Winkel von 90 Grad nach hinten geneigt sondern etwas zum nullPunkt hin. Dadurch bleiben die Seiten- polygone zu lange sichtbar. Um diesen Effekt zu korrigieren, wird der Vergleichswert von t fuer jedes Object mit uebergeben (zKorr). Das muss individuell geschehen in Abhaengigkeit der Translation von z

Parameters:
poly - uebergebenes Polygon
Returns:
boolescher Wert

buildPolygon

public void buildPolygon()
Methode erzeugt aus den uebergebenen Parametern Polygone und speichert diese im Array p ab.


update

public void update(Matrix m)
Methode multipliziert koord mit der uebergebenen Matrix (main_matrix) und ermittelt so die neuen Koordinaten fuer die Positionierung dieses Polyeders. Achtung: koord steht bei der Multiplikation an erster Stelle und main_matrix an zweiter. Matrizenmultiplikation ist nicht kommutativ. Desweiteren wird der Mittelpunkt wpos aktualisiert.

Parameters:
m - uebergebene Matrix