WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Java Phänomen (http://www.wcm.at/forum/showthread.php?t=84320)

Who-T 15.01.2003 12:45

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! :rolleyes:

wizo 15.01.2003 20:07

was ist der fehler ??

Who-T 15.01.2003 21:55

bei der ersten version wird das x geändert, y nimmt zur berechnung bereits den neuen wert.

beim zweiten ist das nicht so, das machts dann aus.

hätt ich selber draufkommen müssen, aber wenn man sich n paar zeilen zu lang anschaut...

it00x30 17.01.2003 15:49

das sind gemeine fehler ...

da ist es oft am besten, mal zwischendurch einen kaffe zu trinken und in einer stunde noch mal zu versuchen (interessanterweise geht das fast immer, auch wenn man vorher schon stunden mit der fehlersuche verbraten hat)


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag