Einzelnen Beitrag anzeigen
Alt 15.01.2003, 12:45   #1
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard Java Phänomen

kann mir wer folgendes erklären?

lgende methode liefert mir falsche ergebnisse für x/y
Code:
public void rotate(double phi, int rotX, int rotY) {
                double cosPhi = Math.cos(phi);
                double sinPhi = Math.sin(phi);
                x= Math.round((x-rotX)*cosPhi-(y-rotY)*sinPhi)+rotX;
                y= Math.round((x-rotX)*sinPhi+(y-rotY)*cosPhi)+rotY;
        }
folgende methode liefert dagegen die richtigen ergebnisse
Code:
public void rotate(double phi, int rotX, int rotY) {
                double cosPhi = Math.cos(phi);
                double sinPhi = Math.sin(phi);
                int x1, y1;
x1= Math.round((x-rotX)*cosPhi-(y-rotY)*sinPhi)+rotX;
                y1= Math.round((x-rotX)*sinPhi+(y-rotY)*cosPhi)+rotY;
        }
x, y sind membervariablen der klasse.

bin gestern etliche zeit gesessen und habs bis jetzt nicht verstanden.
ein anderer fehler ist ausgeschlossen, da auf mehreren rechnern unabhängig dann ausprobiert, das x1, y1 hat dann immer den unterschied gemacht.

alle rechner dagegen mit gleichem jdk.
trotzdem kann ich mir das nicht erklären...




[EDIT]

roots, bitte löschen
bin den moment draufgekommen

ich öch!
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten