Kenobi van Gin
Brillenschlange
Hallo zusammen.
Wir haben im Studium über die Feiertage die Aufgabe gestellt bekommen, Klassen zu verschiedenen geometrischen Formen zu erstellen. Mitgeliefert sind die Klassen Point2D, Vector2D und Shape2D, wobei Shape2D die Superklasse der zu erstellenden Klassen Rectangle, Square, Ellipse und Circle ist. Die Klassen Point2D und Vector2D stellen bereits eine Reihe von Methoden zur Verfügung.
Mein Problem ist jetzt: Ich komme beim Besten Willen nicht drauf, wie ich einen der Eckpunkte berechnen kann. Vorgegeben (durch den Konstruktor) sind der Mittelpunkt, Breite und Länge und der Neigungswinkel der Form zur X-Achse. Zwar fallen mir schon ein oder zwei Möglichkeiten ein, was ich machen könnte (z. B. Umkehrung des Neigungswinkels, Addition der halben Breite zum Mittelpunkt, umgekehrter Neigungswinkel + 90 °, Addition der halben Höhe, um auf die untere linke Ecke zu kommen), aber ich kann mir nicht vorstellen, dass das so kompliziert sein soll. Es geht um einen Kurs Grundlagen Programmierung 1 und bislang waren die Aufgaben immer mit Hilfe der bereits zur Verfügung gestellten Funktionalität (also ohne große mathematische Verrenkungen) lösbar. Ich habe eher den Eindruck, dass ich hier grade ein Brett vor dem Kopf habe![Confused :confused: :confused:](https://ngb.to/images/smilies/confused.png)
Die für die Klasse Rectangle vorgeschriebenen Methoden:
Die von der Klasse Vector2D zur Verfügung gestellten Methoden:
Wenn jemand von euch eine Idee hat, die mich weiterbringt, wäre ich wirklich sehr dankbar!
Wir haben im Studium über die Feiertage die Aufgabe gestellt bekommen, Klassen zu verschiedenen geometrischen Formen zu erstellen. Mitgeliefert sind die Klassen Point2D, Vector2D und Shape2D, wobei Shape2D die Superklasse der zu erstellenden Klassen Rectangle, Square, Ellipse und Circle ist. Die Klassen Point2D und Vector2D stellen bereits eine Reihe von Methoden zur Verfügung.
Mein Problem ist jetzt: Ich komme beim Besten Willen nicht drauf, wie ich einen der Eckpunkte berechnen kann. Vorgegeben (durch den Konstruktor) sind der Mittelpunkt, Breite und Länge und der Neigungswinkel der Form zur X-Achse. Zwar fallen mir schon ein oder zwei Möglichkeiten ein, was ich machen könnte (z. B. Umkehrung des Neigungswinkels, Addition der halben Breite zum Mittelpunkt, umgekehrter Neigungswinkel + 90 °, Addition der halben Höhe, um auf die untere linke Ecke zu kommen), aber ich kann mir nicht vorstellen, dass das so kompliziert sein soll. Es geht um einen Kurs Grundlagen Programmierung 1 und bislang waren die Aufgaben immer mit Hilfe der bereits zur Verfügung gestellten Funktionalität (also ohne große mathematische Verrenkungen) lösbar. Ich habe eher den Eindruck, dass ich hier grade ein Brett vor dem Kopf habe
![Confused :confused: :confused:](https://ngb.to/images/smilies/confused.png)
Die für die Klasse Rectangle vorgeschriebenen Methoden:
double area()
double circumference()
double height()
Point2D pointA()
Point2D pointB()
Point2D pointC()
Point2D pointD()
void scale(double factor)
Scales the object with respect to its origin.
String toString()
double width()
double circumference()
double height()
Point2D pointA()
Point2D pointB()
Point2D pointC()
Point2D pointD()
void scale(double factor)
Scales the object with respect to its origin.
String toString()
double width()
Die von der Klasse Vector2D zur Verfügung gestellten Methoden:
static double addAngles(double angle1, double angle2)
Point2D freeVectorTip()
Returns the tip of the free vector of the current vector.
Vector2D report()
Shows a report on the vector on the output stream.
Vector2D rotate(double angle)
Rotates the object around its origin (counterclockwise).
Vector2D rotate(double angle, Point2D centre)
Rotates the vector around a point (counterclockwise).
Vector2D scale(double factor)
Scales the vector with respect to its initial point.
String toString()
Returns a textual representation of the vector.
Vector2D translate(Vector2D vector)
Translates the object according to the given vector.
Point2D freeVectorTip()
Returns the tip of the free vector of the current vector.
Vector2D report()
Shows a report on the vector on the output stream.
Vector2D rotate(double angle)
Rotates the object around its origin (counterclockwise).
Vector2D rotate(double angle, Point2D centre)
Rotates the vector around a point (counterclockwise).
Vector2D scale(double factor)
Scales the vector with respect to its initial point.
String toString()
Returns a textual representation of the vector.
Vector2D translate(Vector2D vector)
Translates the object according to the given vector.
Wenn jemand von euch eine Idee hat, die mich weiterbringt, wäre ich wirklich sehr dankbar!