|
GR32 의 AffineTransformation 을 이용한 임의 각으로 회전하는 예제입니다.
헤더에 GR32_Transforms.hpp 를 include 해주시고, 아래와 같이 해보세요.
void TForm1::ImageRot(float Alpha)
{
TAffineTransformation* AT = new TAffineTransformation();
AT->SrcRect = FloatRect(0,0, Src->Bitmap->Width , Src->Bitmap->Height);
try
{
AT->Clear();
AT->Rotate(Src->Bitmap->Width / 2, Src->Bitmap->Height / 2, Alpha);
Dst->BeginUpdate();
Dst->Bitmap->Clear(clBlack32);
Transform(Dst->Bitmap, Src->Bitmap, AT);
Dst->EndUpdate();
Dst->Repaint();
}
__finally
{
delete AT;
}
}
void __fastcall TForm1::AngleChange(TObject *Sender)
{
ImageRot(-Angle->Position);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Dst->Bitmap->SetSize(Src->Bitmap->Width , Src->Bitmap->Height );
ImageRot(0);
}
//---------------------------------------------------------------------------
|