Erstelle eine Vector Klasse, mit der du Vektorrechnungen durchführen kannst.
Lerne anhand dieses Beispiels die Grundlagen von OOP in C#.
Vector v = new Vector(new double[] { 1, 2, 3 });v ein Vektor, so soll z.B. über v.Magnitude auf diese Eigenschaft zugegriffen werden. Informiere dich darüber, was Eigenschaften und Felder, sowie getter und setter in C# sind. Schaue dir dazu z.B. folgende Quellen an:components, ein Double-Array, welches die Komponenten des Vektors beinhaltet. Regle über eine Eigenschaft (get/set) Components den Zugriff auf components. Sinn könnte machen:Dim von unten).Dim (für Dimension) und Magnitude. Diese sollen über eine Eigenschaft (get) abgerufen werden. Natürlich sollen sie nicht von aussen über einen setter verändert werden können!IsZeroVector() und IsUnitVector(). Diese geben den Bool true oder false zurück, je nachdem ob es sich beim Vektor um einen Nullvektor oder einen Einheitsvektor (unit vector) handelt.accuracy geben: Ist der Betrag des Werts kleiner dieser Genauigkeit, so wird der Wert als $0$betrachtet.Vector.Add(v1,v2); soll man dann die Vektorsumme zweier Vektoren berechnen können.throw new System.Exception("...");Vector.Sub(v1,v2); schreiben müssen, um zwei Vektoren zu Subtrahieren. Stattdessen soll das mit dem Operator -, also v1-v2, gehen. Dies geht ganz einfach mit einem Operator Overloading, siehe z.B. hier: C# - Operator Overloading. Füge nun jeweils ein Operator Overloading für die Operatoren + (Vektoraddition), - (Vektorsubtraktion) und * (Skalarprodukt) hinzu.System.Console.WriteLine(v); für einen Vektor v nur „Vector“ aus. Schön wäre aber, wenn man direkt die Komponenten erhalten würde: Jede Klasse in C# erbt automatisch von der Basisklasse object, und object definiert die Methode ToString(). Wenn man also Console.WriteLine(anyObject) aufrufst, wird intern anyObject.ToString() verwendet, ganz egal was anyObject für ein Objekt ist. Mit public override string ToString() können wir nun diese standardmässige Methode überschreiben.v.UnitVector. Dieser Einheitsvektor soll selbst wieder vom Typ Vector sein! Um von einem Vektor den zugehörigen Einheitsvektor zu erhalten, dividiert man jede Komponente des Vektors durch die Länge des gesamten Vektors. Tipp: Überlege dir gut, wo genau der Einheitsvektor berechnet werden soll!Vector v = new Vector(3.2,0,4) erzeugen. Dafür müssen wir den Konstruktor überladen, in dem wir 'weitere Konstruktoren' wie public Vector(double x, double y, double z) hinzufügen.DotProductScalarMultiplication (überladen, damit ScalarMultiplication(3,v) und ScalarMultiplication(v,3) funktionieren.VectorProduct (nur für 3D Vektoren)AngleInRad , AngleInRadArePerpendicular,AreParallel,AreAntiParallel,HaveSameMagnitudev1 + v2 soll man zwei Vektoren addieren können. Der Operator + muss dazu überladen werden: Wird + auf zwei Vektoren angewendet, soll die Add-Methode aufgerufen werden. Gleiches für v1 * v2 (dot product) und s * v resp. v * s (scalar multiplication).