Umrechnung Koordinaten zu Winkel

Kalkulator

Mitglied
Hallo zusammen,

ich sitze nun schon seit einer Weile an folgender Aufgabe und komme nicht so recht weiter.

Ich habe folgende Klasse mit 2 Variablen x und y für die Koordinaten eines Punktes im Koordinatensystem:
Der "Anfangspunkt" des dazugehörigen Vektors liegt im Koordinatenursprung, also bei x=0 und y=0.

class Coordinates {
public double x;
public double y;
}
}

In einer anderen statischen Klasse namens Trigonometrie soll nun ausgehend von diesen Koordinaten der Winkel zur x-Achse berechnet werden.

Hierzu ist der Methode BerechneWinkel als Parameter ein Objekt der oben stehenden Klasse Coordinates zu übergeben. Als Ergebnis soll die Methode eine Umrechnung in ein Vektor-Objekt für die Winkeldarstellung zurückgeben.

Anschließend soll die Methode in der Klasse Trigonometrie über eine main-Methode getestet werden.

Mein Versuch schaut bisher so aus:

class Trigonometrie {

// Deklaration der statischen Methode berechneWinkel
public static double berechneWinkel () {

// Deklaration und Initialisierung eines Objekts der Klasse Coordinates, wobei das möglicherweise schon falsch ist, da das Objekt eigentlich von der Klasse Coordinates als Parameter übergeben werden sollte
Coordinates c = new Coordinates();

// Berechnung des Winkels zur x-Achse
double winkel = Math.atan(c.y / c.x);

// berechneter Winkel als Rückgabewert der Methode
return winkel;
}

public static void main (String[] args) {
// der Test über die main-Methode fehlt mir noch komplett
}
}

Da ich noch absoluter Programmier-Anfänger bin, wäre ich euch für Lösungsvorschläge sehr dankbar!

Vielen Dank 🙂
 
// Deklaration und Initialisierung eines Objekts der Klasse Coordinates, wobei das möglicherweise schon falsch ist, da das Objekt eigentlich von der Klasse Coordinates als Parameter übergeben werden sollte

Richtig. Du musst vor dem Aufruf von Trigonometrie.berechneWinkel eine neue Instanz erzeugen, und diese dann als Parameter diesem Aufruf mitgeben. Nauterlich musst du auch die Methode anpassen damit diese einen Parameter akzeptiert, Trigonometrie.berechneWinkel(Coordinates koordinate).

// Berechnung des Winkels zur x-Achse

Die mathematischen Winkelfunktionen in der Standard-Lib/Math arbeiten alle mit Radians, nicht mit Grad, so als Info.

Da ich noch absoluter Programmier-Anfänger bin, wäre ich euch für Lösungsvorschläge sehr dankbar!

Bist doch eh schon fast fertig. Idealerweise hast du aber drei Klassen:

Java:
public class Koordinates {}
public class Trigonometrie {}
public class Main {
    public static final void main(String[] args) {}
}

Dann hast du deine Logik in main und verwendest dort deine Klassen. Ebenfalls idealerweise sind alle deine Namen entweder Deutsch oder Englisch, und nicht gemischt, das verringert das umdenken.

Wenn du in der main[ICODE] eine neue Instanz von [ICODE]Coordinates erzeugst, darfst du natuerlich nicht vergessen die Werte fuer x/y vorher zu setzen bevor du die Instanz an die Trigonometrie Funktion uebergibst als Parameter.
 
Zusätzlich noch:
Java:
// Berechnung des Winkels zur x-Achse
double winkel = Math.atan(c.y / c.x);
Java hat hier noch die atan2(y, x) Methode, um:
1. den Winkel basierend auf dem echten/richtigen Quadranten der Koordinate zurückzuliefern
2. kein divide-by-zero Fehler zu erzeugen, wenn c.x == 0 ist
 
Vielen Dank euch für die schnelle Hilfe und die Hinweise zu den Math-Funktionen!
Könnte mir vielleicht noch jemand helfen, wie der Code dann letztlich konkret auszusehen hat? Ich stehe gerade etwas auf dem Schlauch :-(

@ Robert Zenz: Leider ist in der Aufgabenstellung vorgegeben, dass die main-Methode in der Klasse Trigonometrie steht.
 

Zurück
Oben