Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
talit:csharp_oop [2025-05-12 11:02] – sca | talit:csharp_oop [2025-05-18 13:30] (aktuell) – [Auftrag im Detail] sca | ||
---|---|---|---|
Zeile 37: | Zeile 37: | ||
1. Aktuell gibt der Befehl `System.Console.WriteLine(v); | 1. Aktuell gibt der Befehl `System.Console.WriteLine(v); | ||
1. Über eine Eigenschaft soll von einem Vektor der zugehörige **Einheitsvektor** ausgegeben werden: `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!\\ \\ | 1. Über eine Eigenschaft soll von einem Vektor der zugehörige **Einheitsvektor** ausgegeben werden: `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!\\ \\ | ||
+ | 1. Es ist etwas umständlich, | ||
1. Erweitere nun deine Klasse beliebig. Hier einige Vorschläge: | 1. Erweitere nun deine Klasse beliebig. Hier einige Vorschläge: | ||
- | 1. Weiter Operationen: | + | 1. Weiter Operationen: |
+ | 1. `DotProduct` | ||
+ | 1. `ScalarMultiplication` (überladen, damit `ScalarMultiplication(3,v)` und `ScalarMultiplication(v,3)` funktionieren. | ||
+ | 1. `VectorProduct` | ||
1. Winkel zwischen zwei Vektoren: `AngleInRad` , `AngleInRad` | 1. Winkel zwischen zwei Vektoren: `AngleInRad` , `AngleInRad` | ||
- | 1. Zwei Vektoren | + | 1. Zwei Vektoren |
+ | 1. **Operatoren überladen**: | ||
+ | 1. **Optional: | ||
+ | <nodisp 2> | ||
- | + | ++++Weiteres| | |
- | ===== Zusatzaufgaben ===== | + | |
- | + | ||
- | 1. Für 3er Vektoren soll nun auch das **Vektorprodukt** berechnet werden können. [[https:// | + | |
- | 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 115: | 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. | ||
+ | ++++ | ||
+ | |||
+ | </ |