Double Zahl in Grad Zahl

Mirage

Mitglied
Folgende Funktion wird mit einem Wert des Typs double aufgerufen:

Java:
public static void drehe(double winkel){
}

Nun muss ich den double Wert innerhalb der Funktion in einen Grad Wert umwandeln und weiß nicht wie ich dies tun kann.
 
Hi,
hm, was genau soll die Methode machen? Ich seh's nicht so ganz..
Nun muss ich den double Wert innerhalb der Funktion in einen Grad Wert umwandeln und weiß nicht wie ich dies tun kann.
ist der parameter ein wert in rad? (Radiant) und du musst diesen in Winkelgrad umwandeln?
Wenn nicht, wie ist den die ganze Aufgabenstellung dazu?
Vielleicht das hier?
Java:
static double winkelInGrad;
static final double PI = 3.1415;
public static void drehe(double winkel){
   winkelInGrad = winkel * 180 / PI; // 
}
Gruss knilch
 
Zuletzt bearbeitet:
Also was ich bisher dazu habe ist:

Java:
public static double richtungsWinkel = 0;

public static void drehe(double winkel){
}

Gewünschter Vorgang ist folgender: Es wird eine Zahl vom Benutzer abgefragt, bei der Abfrage wird dieser informiert das er eine Zahl eingeben soll, die als Gradangabe dient (also im Bereich 0-360, für andere Eingaben werden Exceptions eingebaut). Mit dieser (double)Zahl wird die Funktion aufgerufen. In der Funktion soll die double Zahl in eine Grad Zahl umgewandelt werden. Diese wird in einem anderen Teil des Programms für eine Rechnung benötigt, das ist aber wieder was anderes, hier geht es nur darum das ich die Gradzahl bekomme, damit ich mit der Rechnung weitermachen kann.
 
hier geht es nur darum das ich die Gradzahl bekomme, damit ich mit der Rechnung weitermachen kann.

Es geht also eher darum wie du die Eingabe des Nutzers ausliest insofern ich das richtig verstanden habe ?
 
Zuletzt bearbeitet:
Nein, die Eingabe des Benutzers soll ja als double Zahl ausgelesen werden, die ausgelesene double Variable wird per Aufruf an die Funktion geschickt und erst in der Funktion umgewandelt.

Für meine Zwecke kann ich mir das, glaube ich, aber inzwischen sparen. Habe mich mit dem ganzen Projekt jetzt weiter nach vorne gearbeitet und bin bei der Funktion angelangt in der alle eingelesenen Variablen in die eigentliche Rechnung eingespeist werden. Diese sieht in etwa so aus:

neue Position = alte Position + Math.cos(hier-kann-ja-ein-double-Wert-rein) * geschwindigkeit

Mich würde jetzt noch interessieren, ob der Teil mit Math.cos(double-Wert) zulässig ist und in der Praxis aus der double Zahl den richtigen Wert berechnet und dementsprechend die Funktion ausrechnet.
 
Ich gehe jetzt einmal davon aus dass du die benutzereingabe schon bekommen hast. Diese ist, wie du bereits gesagt hast, im bereich 0<=x<=360, also eine gradzahl... außerdem gehe ich mal davon aus, dass du eine Zahl im Bogenmaß benötigst. (du schriebst 2x Gradmaß, ich denke du hast dich da irgentwo vertan)

generell ist es ja so, dass es verschiedene möglichkeiten gibt einen Winkel zu notieren. Zum einen gibt es das Gradmaß, welches den Winkel in 360° einteilt. oft verwendet wird auch das Bogenmaß, welches als angabe die kreisbogenlänge vom einheitskreis verwendet. der Umfang eines Kreises beträgt 2*pi*r, Am einheitskreis ist r=1, also ist der gesamtumfang 2*pi.

also gilt
360° = 2*pi
der rest ist einfaches umformen
grad = bogenmaß*(pi/180°)
bogenmaß = grad*(180°/pi)

guck mal außerdem mal bei der Math-Klasse nach, dort gibt es auch methoden zum umrechen zwischen grad und bogenmaß.

ich hoffe das ist das was du meintest

[EDIT]die methoden für sinus, etc erwarten den winkel im bogenmaß[/EDIT]
 
Zuletzt bearbeitet:
Also "etwas" mehr Arbeit musst du dir schon machen😉
Ich hätte fast geantwortet:rtfm:
Und hier meine ich insbesondere mal die javadoc zu LESEN

HTML:
public static double cos(double a)
Returns the trigonometric cosine of an angle. Special cases:
If the argument is NaN or an infinity, then the result is NaN.
The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.

Parameters:
a - an angle, in RADIANS.
Returns:
the cosine of the argument.
 
Habe das Problem ja wie gesagt mit Math.cos(double-Wert); und Math.sin(double-Wert); gelöst. Hat in der Praxis jetzt auch so funktioniert wie es sollte. Noch mal danke an alle Tips und Lösungsvorschläge, die waren alle eine große Hilfe !
 

Zurück
Oben