Może mi ktoś pomóć przerobić funkcje obracania obrazka na metodę scanline ?? Próbowałem to robić według porad cyfrowegobarona ale nie działa mi to.
Przesyłam kod obracania za pomocą pixels:
- Kod: Zaznacz cały
// Obracanie o 90 stopni
Graphics::TBitmap *SrcBitmap=new Graphics::TBitmap;
Graphics::TBitmap *DestBitmap=new Graphics::TBitmap;
SrcBitmap->Assign(bitmapaa);
DestBitmap->Width = SrcBitmap->Height;
DestBitmap->Height = SrcBitmap->Width;
for (int x=0;x<SrcBitmap->Width;x++) {
for(int y=0;y<SrcBitmap->Height;y++) {
DestBitmap->Canvas->Pixels[y][SrcBitmap->Width-1-x] = SrcBitmap->Canvas->Pixels[x][y];
}
}
bitmapaa->Assign(DestBitmap);
delete DestBitmap;
delete SrcBitmap;
PaintBox1->Refresh();
- Kod: Zaznacz cały
// Obracanie o 180 stopni
Graphics::TBitmap *SrcBitmap=new Graphics::TBitmap;
Graphics::TBitmap *DestBitmap=new Graphics::TBitmap;
SrcBitmap->Assign(bitmapaa);
DestBitmap->Width = SrcBitmap->Width;
DestBitmap->Height = SrcBitmap->Height;
for (int x=0;x<SrcBitmap->Width;x++) {
for(int y=0;y<SrcBitmap->Height;y++) {
DestBitmap->Canvas->Pixels[x][SrcBitmap->Height-1-y] = SrcBitmap->Canvas->Pixels[x][y];
}
}
bitmapaa->Assign(DestBitmap);
delete DestBitmap;
delete SrcBitmap;
PaintBox1->Refresh();
Z góry dzięki i pozdrawiam