- function SetImgAngle(angle:integer; source:TBitmap):TBitmap;
- var
- n:integer;
- Largeur,ecart:integer;
- pi2:extended;
- z:extended;
- col_prov,lig_prov:integer;
- i,j:integer;
- couleur:DWord;
- xx,yy,x,y:integer;
- //Pour accelerer les chose: variable d'optimization
- cz,sz:extended;
- czpi,szpi:extended;
- begin
- n:=source.Width;
- Largeur:= source.Width div 2;
- result:=TBitmap.create;
- result.Height:=300;result.Width:=300;//a changer;
- ecart:= trunc((Sqrt(2*Sqr(n)) - n)/2);
- pi2:= pi / 2;
- z:= 0.01745 * angle;
- x:=source.Width div 2;y:=source.Height div 2;
- cz:=Cos(z);sz:=Sin(z);
- czpi:=Cos(z + pi2);
- szpi:=Sin(z + pi2);
- For i:= -ecart To n + ecart do begin
- col_prov:= trunc(Largeur + ((i - Largeur) * cz));
- lig_prov:= trunc(Largeur + ((i - Largeur) * sz));
- For j:= -ecart To n + ecart do begin
-
- xx:=trunc(col_prov + ((j - Largeur) * czpi));
- yy:=trunc(lig_prov + ((j - Largeur) * szpi));
- Couleur:=source.Canvas.Pixels [xx,yy];
-
- If (Couleur <> -1) And (Couleur <> $FFFFFF) Then begin
- xx:=i + (X - Largeur);
- yy:=j + (Y - Largeur);
- result.Canvas.Pixels[xx,yy]:=Couleur
- end;
- end;
- end;
- end;
function SetImgAngle(angle:integer; source:TBitmap):TBitmap;
var
n:integer;
Largeur,ecart:integer;
pi2:extended;
z:extended;
col_prov,lig_prov:integer;
i,j:integer;
couleur:DWord;
xx,yy,x,y:integer;
//Pour accelerer les chose: variable d'optimization
cz,sz:extended;
czpi,szpi:extended;
begin
n:=source.Width;
Largeur:= source.Width div 2;
result:=TBitmap.create;
result.Height:=300;result.Width:=300;//a changer;
ecart:= trunc((Sqrt(2*Sqr(n)) - n)/2);
pi2:= pi / 2;
z:= 0.01745 * angle;
x:=source.Width div 2;y:=source.Height div 2;
cz:=Cos(z);sz:=Sin(z);
czpi:=Cos(z + pi2);
szpi:=Sin(z + pi2);
For i:= -ecart To n + ecart do begin
col_prov:= trunc(Largeur + ((i - Largeur) * cz));
lig_prov:= trunc(Largeur + ((i - Largeur) * sz));
For j:= -ecart To n + ecart do begin
xx:=trunc(col_prov + ((j - Largeur) * czpi));
yy:=trunc(lig_prov + ((j - Largeur) * szpi));
Couleur:=source.Canvas.Pixels [xx,yy];
If (Couleur <> -1) And (Couleur <> $FFFFFF) Then begin
xx:=i + (X - Largeur);
yy:=j + (Y - Largeur);
result.Canvas.Pixels[xx,yy]:=Couleur
end;
end;
end;
end;