Diskrete Mathematik I Vorlesung 3 28.10.99 -Arrays-
Übersicht Arrays (am Beispiel von Java) Unterschiede in der Verwendung primitiver Datentypen/Arrays Arrays - beachte Zugriff Beispiele Skalarprodukt Multiplikation von Matrizen Punkte als Arrays Transformationen Homogene Koordinaten
Arrays (am Beispiel von Java) Unterscheidungen primitive Datentypen: boolean char byte short int long float 1 2 1 2 4 8 4 Byte Größe steht von vorneherein fest Referenztypen Arrays Strings Objekte Größe erst zur Laufzeit bekannt
Unterschiede in der Verwendung primitiver Typen / Arrays Primitive Typen int i, j; // Deklaration i = 0; // Initialisierung j = 1; oder: int i = 0, j = 1; /* Deklaration und Initialisierung gleichzeitig */ Arrays int a[], b[]; // int - Array float v[], w[]; // float- Array float m1[][]; // float - Matrix a = new int[5]; // Erzeugung w = new float[3]; m1 = new float[3][3]; oder: int b[] = {1,2,3,4,5}; /* Deklaration, Erzeugung und Initialisierung gleichzeitig */
Arrays - beachte: 3 Schritte Im Unterschied zu Pascal Deklarieren Erzeugen (Instanz bilden, Instanziieren) Initialisierungen Im Unterschied zu Pascal die Größe n des Arrays wird erst zum Zeitpunkt der Erzeugung (new double[3] ) festgelegt Die Indizierung läuft von 0 ... n - 1 n -1
Zugriff int a[][] = new int[2][3]; a[0][0] = 1; a[0][1] = 2;
Beispiel: Skalarprodukt int v[], w[]; v = {1,2,3}; w = {4,5,6}; int iprod = 0; for (int i = 0; i < 3; i++) iprod = iprod + v[i] * w[i]; for-Schleife for(init; test; update) i++ i = i + 1
Beispiel: Multiplikation von Matrizen = c[i,k]= Sa[i,j]*b[j,k]
Beispiel: Multiplikation von Matrizen float a[][], b[][], c[][]; .. float c[][] = {{0,0,0}, {0,0,0}, {0,0,0}}; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) for (int k = 0; k < 3; k++) c[i][j] = c[i][j] + a[i][k] * b[k][j];
Punkte als Arrays y P x
Verschiebung (Translation) y P x
Verschiebung (Translation) y P´ P x
Verschiebung (Translation) y P´ P x
Drehung (um den Ursprung) y P x
Drehung (um den Ursprung) y P´ P a x
Drehung (um den Ursprung) y P´ P a x
Scherung (Zoom in, Zoom out) y 6 P 2 x 2 8
Scherung (Zoom in, Zoom out) y 9 3 P´ x 4 16
Homogene Koordinaten y P x homogene Koordinaten
Translation in homogenen Koordinaten y P´ P x
Translation in homogenen Koordinaten y P´ P x
Drehung in homogenen Koordinaten y P´ P a x
Drehung in homogenen Koordinaten y P´ P a x
Scherung in homogenen Koordinaten y P´ x
Scherung in homogenen Koordinaten y P´ x
Homogene Koordinaten Repräsentation in homogenen Koordinaten führt zu „homogener“ Modellierung der Operationen Implementierung der Matrizenmultiplikation in Hardware bringt Effizienz 2D 3 x 3 - Matrix 3D 4 x 4 - Matrix