Witam, mam problem. Pisze program który ma obrocic dowolny obrazek o jakiś zadany z góry kąt z tym ze po obrocie obrazka : robi sie cos takiego :
FPS to zadany kąt
Oto kod:
class GraphicsUtils{
public static void setPixel(Graphics g,Color t, int x, int y) {
g.setColor(t);
g.fillRect(x, y, 1, 1);
}
}
double cosinus = Math.cos((fpsMath.PI)/180);
double sinus = Math.sin((fpsMath.PI)/180);
for(int i=0;i<img.getWidth();i++){
for(int j=0;j<img.getHeight();j++){
x=(double)i;
y=(double)j;
double kx = (double)x - (double)(img.getWidth()/2);
double ky = (double)y - (double)(img.getHeight()/2);
x=(double)(cosinus*kx)-(double)(sinus*ky) + (double)img.getWidth()/2;
y=(double)(sinus*kx)+(double)(cosinus*ky) + (double)img.getHeight()/2;
//Color kolor1=new Color(img.getRGB(i, j));
GraphicsUtils.setPixel(g, new Color(img.getRGB(i, j)), (int)(x+0.5), (int)(y+0.5));
}
}
Probowalem juz na wszystkie sposoby z rzutowaniem , nawet te dodanie 0.5 zadzialalo przy obrocie 180 stopnii no i nie wiem w czym tkwi błąd ;/ po prostu jak widać na drugim obrazku są białe kropki i to są kropki koloru panelu to nie jest bład pobrania koloru z obrazka, po prostu nie trafia w miejsce ;/
Z góry dzieki za pomoc.