myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[JAVA] atan2 Polarform??

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 28.10.10, 21:14   #1
wa53kefa
Newbie
 
Registriert seit: Nov 2009
Beiträge: 66
Bedankt: 11
wa53kefa ist noch neu hier! | 0 Respekt Punkte
Standard [JAVA] atan2 Polarform??

Hallo Leute,

ich habe mal wieder ein kleines Problem,

und zwar möchte ich ein Unterprogramm schreiben, dass eine komplexe Zahl in Polarform darstellt. Meine erste Idee war (komplexe Zahl als Feld mit 2 Einträgen), Polarinformationen in ein neues Feld einzuspeichern.

sowas wie:
Code:
//unterprogramm zur polarformdarstellung
//feld[] hat imma nur 2 Einträge da komplexe Zahl
//rückgabewert double[] Feld mit 2 Einträgen: Betrag und Phase
public static double[] polarisiere (feld[]){             
    double[] polar = new double[2];
    polar[0]= Math.sqrt( feld[0]*feld[0]+feld[1]*feld[1]);
    polar[1]= Math.atan((double)feld[1]/feld[0]);
    return polar;
}
"main"{
    int[] komplex= new int [2];
    komplex = {1 , 5};   //wobei 1 Real- und 5 Imaginärteil repräsentieren soll
    double[] polar = new double[2];
    polar = polarisiere (komplex);
    System.out.print("Betrag: "+polar[0]+" Phase: "+polar[1]+"\n");
}
gibt er mir ja das richtige aus.

jetzt habe ich aber die Funtion Math.atan2(y,x) entdeckt und weiß aber nicht genau was es macht bzw was es zurückgibt. ein blick im Internet verrät dass der Rückgabewert (r,phi) ist (also betrag und winkel). wie kann ich denn jetzt atan2 in meinem bsp. richtig verwenden?

Wenn ich schreibe
Code:
public static double[] polarisiere (feld[]){ 
    return (Math.atan2(feld[1], feld[0]));
}
gibt java mir eine Speicheradresse oder sowas aus.
wa53kefa ist offline   Mit Zitat antworten
Ungelesen 28.10.10, 21:32   #2
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Die Oracle-Packages sind alle dokumentiert (siehe Oracle-Website):

Returns:
the theta component of the point (r, theta) in polar coordinates that corresponds to the point (x, y) in Cartesian coordinates.
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 29.10.10, 20:12   #3
wa53kefa
Newbie
 
Registriert seit: Nov 2009
Beiträge: 66
Bedankt: 11
wa53kefa ist noch neu hier! | 0 Respekt Punkte
Standard

bitte schließen,

da hier eh nicht weitergeholfen wurde....
wa53kefa ist offline   Mit Zitat antworten
Ungelesen 29.10.10, 23:23   #4
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Du hast den Winkel zuerst mit

Code:
	double dWinkel = Math.atan(feld[1]/feld[0]);
berechnet.

Mit deiner zweiten Math-Funktion erhältst du ebenfalls den Winkel, aber ohne Länge, die musst du weiterhin selbst berechnen. Das Dividieren kannst du dir dadurch sparen, die Division durch Null musst du weiterhin überprüfen:

Code:
	double dWinkel = Math.atan2(feld[1], feld[0]);
Wobei ich das feld-Array auf jeden Fall gleich als double und nicht als int definieren würde. Bzw kein array sondern gleich eine Klasse... egal.
germgerm ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 Uhr.


Sitemap

().