#include <CVector.h>
Das Klassentemplate CVector implementiert einen N - dimensionalen Vektor mit Komponenten vom Datentyp T. Die nötigen arithmetischen Operatoren wurden überschrieben, so dass es möglich ist, alle Rechenoperationen durchzuführen, die auf Vektoren im mathematischen Sinne definiert sind.
|
Der Standardkonstruktor initialisiert alle Komponenten des Vektors mit dem Wert 0. Deshalb ist es, wie oben bereits beschrieben, notwendig dass der Datentyp T zu (int) oder (float) konvertiert werden kann. |
|
Dieser zusätzliche Konstruktor erlaubt es ein CVektor-Objekt auf der Basis eines N elementigen Arrays mit Elementen vom Typ T zu erzeugen. Dabei wird das Array a[] in das Komponentenarray c[] kopiert. |
|
Der Kopierkonstruktor erzeugt ein CVektor-Objekt auf der Basis eines anderen CVector-Objekts. Dabei werden die Werte der Komponenten des Vektors s dem neu erzeugten Vektor zugewiesen. Es ist nicht zwangsweise erforderlich, dass der Vektor s und der neu erzeugte Vektor die gleiche Anzahl an Komponenten aufweisen. Hat der Zielvektor weniger Komponenten so werden nur soviele wie möglich kopiert. Hat der Zielvektor mehr Komponenten, so werden die übriggebliebenen mit 0 initialisiert. |
|
Die Routine berechnet die euklidische Länge des Vektors, indem sie die Summe der Komponentenquadrate bildet und daraus die Wurzel zieht. |
|
Die Routine normalisiert den Vektor, so dass seine euklidsche Länge anschließend 1 ergibt. Dabei wird zunächst die euklidische Länge des Vektors berechnet und alle Komponenten durch diese dividiert.
|
|
Der Vektor a wird auf den links vom "+="-Operator stehenden Vektor aufaddiert. Hierbei wird eine komponentenweise Addition durchgeführt. |
|
Der Vektor a wird von dem links vom "-="-Operator stehenden Vektor abgezogen. Hierbei wird eine komponentenweise Subtraktion durchgeführt. |
|
Der links vom "*="-Operator stehende Vektor wird mit dem skalaren Wert f vom Typ T multipliziert. Hierbei wird eine komponentenweise Multiplikation durchgeführt. |
|
Der links vom "/="-Operator stehende Vektor wird durch den skalaren Wert f vom Typ T dividiert. Hierbei wird eine komponentenweise Division durchgeführt. |
|
Es wird das Vektorprodukt zwischen dem links vom "%="-Operator stehenden Vektor und dem Vektor b berechnet. Das Ergebnis wird wieder dem links vom "%="-Operator stehenden Vektor abgelegt.
|
|
Das Array speichert N Komponenten vom Datentyp T. |