Hi p-Logic!
Wow, das du dir so viel Mühe gibst hätt ich nicht gedacht, danke!
Ein paar Fragen hab ich dazu:
- die Variablen stone (z.B. Code-Zeile 13) und stein (z.B. Code-Zeile 39) sind die selben, oder?
- am Anfang(Code-Zeile 13 und 14) verwendest du stone[k][0] und stone[k][1], im weiteren Verlauf dann nur noch stone[k][1] und stone[k][2]. ich denke mal, dass das auch das gleiche ist,oder?
Wenn ich recht habe mit meinen Vermutungen, dann funktioniert dein Rotieralgorithmus nicht richtig. Der Fehler liegt bei der Berechnung von steinRotated, ich weiß aber nicht was da falsch ist.
Achso, und Math.round() kenn ich nicht. Das geht aber einfach mit einem cast-Befehl zu int:
centerX = (int) (centerX/k)
Da centerX aber schon vom Typ int ist, kann man den cast-Befehl auch weglassen (centerX=centerX/k) und das Ergebnis ist trotzdem eine ganze Zahl.
EDIT:
Ich hab mir jetzt was neues überlegt, es funktioniert zwar, aber noch nicht so wie ich das will. Ich lass einfach eine xy-Koordinate fest und dreh die anderen 3 um diesen festen Punkt. Das sieht dann so aus (den Code von p-Logic hab ich übernommen, nur die Drehung hab ich jetzt geändert):
Code:
//Die erste Koordinate bleibt unverändert
stoneRotated[0][0]=stone[0][0];
stoneRotated[0][1]=stone[0][1];
//Die neuen X-Werte:
stoneRotated[1][0]=stone[0][0]+(stone[0][1]-stone[1][1]);
stoneRotated[2][0]=stone[0][0]+(stone[0][1]-stone[2][1]);
stoneRotated[3][0]=stone[0][0]+(stone[0][1]-stone[3][1]);
//Die neuen Y-Werte:
stoneRotated[1][1]=stone[0][1]+(stone[0][0]-stone[1][0]);
stoneRotated[2][1]=stone[0][1]+(stone[0][0]-stone[2][0]);
stoneRotated[3][1]=stone[0][1]+(stone[0][0]-stone[3][0]);
Die Drehung funktioniert aber auch nicht 100% richtig, hoffentlich hat noch jemand eine bessere Idee.
Gruß, Boar