LKoLRn a écrit a écrit :
ben faire une rotation sur l'image pardi...
|
void TForm1::Rotate(double angle)
{
AnsiString vide;
double x = 0;
double y = 0;
double newx, newy;
double radians;
radians = 2 * M_PI * angle / 36;
for(y = 0; y < 50; y++) {
for(x = 0; x < 50; x++) {
if(Sample -> Canvas -> Pixels[x][y] != Sample -> Canvas -> Pixels[0][0]) {
newx = x * cos(radians) + y * sin(radians);
newy = y * cos(radians) - x * sin(radians);
Sprites -> Canvas -> Pixels[newx + X][newy + Y] = Sample -> Canvas -> Pixels[x][y];
Sprites -> Canvas -> Pixels[newx + X + 1][newy + Y] = Sample -> Canvas -> Pixels[x][y];
}
}
}
X = X - 2 * M_PI * cos(((angle * 10) + 45) / 180 * M_PI);
Y = Y + 2 * M_PI * sin(((angle * 10) + 45) / 180 * M_PI);
Indice++;
if(Indice < 9) X += 50;
else {
X -= 400;
Y += 50;
Indice = 0;
}
}
Voilà, ça laisse des trous d'un pixel par-ci par-là mais ça permet de faire pivoter une bitmap.
---------------
...m'enfin !!!