Hola amigos, hace algunos dias le pregunte a algunos amigos como rotar un bitmap y pues no encontre respuestas.Buscando en Google encontre un codigo que me dio la idea de como lograrlo.
procedure TForm1.BitBtn1Click(Sender: TObject);
procedure RotateBitmap(OrigBmp: TBitmap; Angle: real; DestBmp: TBitmap);
var
ang,
sinang, cosang,
xori, yori,
xrot, yrot,
dx, dy : extended;
i, j : integer;
tmpbmp : TBitmap;
begin
tmpbmp := TBitmap.Create;
try
tmpbmp.Width := OrigBmp.Width;
tmpbmp.Height := OrigBmp.Height;
tmpbmp.PixelFormat := OrigBmp.PixelFormat;
ang := DegToRad(Angle);
dx := (OrigBmp.Width-1) / 2;
dy := (OrigBmp.Height-1) / 2;
SinCos(ang, sinang, cosang);
for i := 0 to tmpbmp.Height -1 do
begin
for j := 0 to tmpbmp.Width - 1 do
begin
xori := j - dx;
yori := i - dy;
xrot := (xori * cosang) - (yori * sinang);
yrot := (xori * sinang) + (yori * cosang);
xrot := xrot + dx;
yrot := yrot + dy;
tmpbmp.Canvas.Pixels[j, i] :=
OrigBmp.Canvas.Pixels[Round(xrot), Round(yrot)];
end;
end;
DestBmp.Assign(tmpbmp);
finally
tmpbmp.Free;
end;
end;
begin
RotateBitmap(Image1.Picture.Bitmap,-15,Image1.Picture.Bitmap);
end;
Pues aqui esta y espero que les pueda ser de alguna ayuda.
En mi caso lo que queria era lograr que un avion pudiera hacer alguna inclinacion a ambos lados y algunos grados.Tambien se puede usar para graficos representativos en alguna funcion industrial.
Un Saludo.


 
	 
					 
				
				
			


 
				
				
			 
			
			 
				
				
			 
					
					 
 







