Berechnen einer Matrix



  • Hallo Leute,

    hab mal wieder ein kleines Problem, und zwar habe ich die Aufgabe zweidimensionale Geometriedaten (Punkte) aus einer Datei entsprechend den Vorgaben in einer weiteren Datei zu manipulieren. Das Programm soll aus einer Datei Punktkoordinaten einlesen. In einer anderen Datei stehen eine Reihe von Transformationsmatrizen (2x2-Matrizen), die ebenfalls eingelesen werden sollen. Eine Auswahl aus den Transformationen soll auf alle Punkte angewendet werden. Die resultierenden Punkte sollen in eine neue Datei geschrieben werden. Außerdem soll das Programm eine Tabelle ausgeben, in der die ursprünglichen (eingelesenen) Punkte neben den transformierten Punkten zeilenweise nebeneinander stehen.

    Als Testdaten und für die Erzeugung des auszudruckenden Ablaufprotokolls stehen zwei Dateien (punkte.dat und transformation.dat) zur Verfügung. Zur Erzeugung des Ablaufprotokolls wenden Sie bitte die erste und die dritte Transformation in dieser Reihenfolge auf alle Punkte an! Bitte beachten Sie, daß Ihr Programm die Dateinamen auf jeden Fall von der Konsole einlesen soll und nicht mit festen Dateinamen arbeiten darf! Um die Lösung zu vereinfachen, können Sie davon ausgehen, daß in einer Datei nicht mehr als 100 Punkte (Konstante!!!) bzw. 10 (Konstante!!!) Transformationen abgespeichert sind. Außerdem können Sie davon ausgehen, daß in den Dateien nur "korrekte" Daten stehen. Die Datei "punkte.dat" besitzt folgenden Aufbau: In jeder Zeile stehen genau 2 Werte (vom Typ float). Der erste Wert ist die X-Koordinate, der zweite Wert die Y-Koordinate des Punktes. Die Datei hat maximal 100 Zeilen. Die Datei "transformation.dat" besitzt folgenden Aufbau: Jede Transformation ist gegeben durch eine 2x2-Matrix. Die erste Zeile der ersten Transformation findet sich in der ersten Zeile der Datei, die zweite Zeile der Matrix in der zweiten Zeile. Daran schließt sich in der nächsten Zeile unmittelbar die nächste Transformation an. Wenn die Datei also z.B. 16 Zeilen hat, so stellen die Werte in ihnen 8 Transformationen zu je zwei Zeilen dar. Es handelt sich alles um Werte vom Typ float. Diese Datei hat aufgrund der Vorgaben (s.o.) maximal 20 Zeilen.

    Das einlesen der Dateien habe ich soweit geschafft, nun stehe ich aber davor die Transformationen mit dynamischen feldern vorzunehmen. Leider habe ich überhaupt keine Idee, wie diese Funktion aussehen könnte. Könnt ihr mir weiterhelfen?


Anmelden zum Antworten