Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:csharp_oop [2025-05-18 13:24] scatalit:csharp_oop [2025-05-18 13:30] (aktuell) – [Auftrag im Detail] sca
Zeile 39: Zeile 39:
    1. Es ist etwas umständlich, für neue Vektoren immer zuerst ein double-Array erstellen zu müssen. Stattdessen wollen wir die gängigsten Vektoren (sagen wir 1-4D) auch durch `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.\\ \\    1. Es ist etwas umständlich, für neue Vektoren immer zuerst ein double-Array erstellen zu müssen. Stattdessen wollen wir die gängigsten Vektoren (sagen wir 1-4D) auch durch `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.\\ \\
    1. Erweitere nun deine Klasse beliebig. Hier einige Vorschläge:    1. Erweitere nun deine Klasse beliebig. Hier einige Vorschläge:
-      1. Weiter Operationen: `DotProduct` , `ScalarMultiplication` , `VectorProduct` (nur für 3D Vektoren)+      1. Weiter Operationen: 
 +        1. `DotProduct` 
 +        1. `ScalarMultiplication` (überladendamit `ScalarMultiplication(3,v)und `ScalarMultiplication(v,3)` funktionieren. 
 +        1. `VectorProduct` (nur für 3D Vektoren)
       1. Winkel zwischen zwei Vektoren: `AngleInRad` , `AngleInRad`       1. Winkel zwischen zwei Vektoren: `AngleInRad` , `AngleInRad`
-      1. Zwei Vektoren vergleiche: `ArePerpendicular`,`AreParallel`,`AreAntiParallel`,`HaveSameMagnitude`+      1. Zwei Vektoren vergleichen: `ArePerpendicular`,`AreParallel`,`AreAntiParallel`,`HaveSameMagnitude`\\ \\ 
 +   1. **Operatoren überladen**: Mit `v1 + 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).\\ \\ 
 +   1. **Optional:** Falls du sehr motiviert bist, könntest du eine Klasse *Matrix* definieren, mit der man Matrizen-Rechnungen durchführen kann. Matrizen können als Verallgemeinerungen von Vektoren betrachtet werden.
  
 +<nodisp 2>
  
- +++++Weiteres|
-===== Zusatzaufgaben ===== +
- +
-   1. Für 3er Vektoren soll nun auch das **Vektorprodukt** berechnet werden können. [[https://de.wikipedia.org/wiki/Kreuzprodukt#Komponentenweise_Berechnung|Wikipedia Vektorprodukt]]\\ \\ +
-   1. Füge nun auch die Skalarmultiplikation hinzu. Dort wird ein Vektor mit einer reellen Zahl gestreckt oder gestaucht. Der Operator `*` soll so überladen werden, dass `v1*v2` das Skalarprodukt ergibt und (s sei eine Zahl, kein Vektor) `v*s` oder `s*v` die Skalarmultiplikation.\\ \\  +
-   1. Erweitere deine Klasse mit weiteren sinnvollen Methoden usw.\\ \\ +
-   1. Falls du sehr motiviert bist, könntest du eine Klasse *Matrix* definieren, mit der man Matrizen-Rechnungen durchführen kann.+
  
 ===== 2D-Drawing ===== ===== 2D-Drawing =====
Zeile 116: Zeile 116:
     * Scene untersucht für alle möglichen Paare von Körpern, ob sie sich berühren und führt die Kollision aus.     * Scene untersucht für alle möglichen Paare von Körpern, ob sie sich berühren und führt die Kollision aus.
  
 +++++
 +
 +</nodisp>
  • talit/csharp_oop.1747574699.txt.gz
  • Zuletzt geändert: 2025-05-18 13:24
  • von sca