1 pièce(s) jointe(s)
BGRABITMAP Rotation d'image par le milieu
Bonjour à toutes et tous.
Mon problème est d'orienter l'image d'un petit planeur en fonction d'un angle variant de 0 à 360 degrés.
J'utilise la bibliothèque BGRABItmap sous Lazarus 1.6
Pièce jointe 215907
Je charge mon image comme ceci :
Code:
1 2
| PLANE.Free;
PLANE := TBGRABitmap.Create(FILEPLANE); |
Puis je l'affiche sur le canvas comme ceci :
Code:
1 2 3 4 5 6 7 8
| procedure dessinePlane (var box : TPaintBox; X, Y : integer);
begin
if FileExists (FILEPLANE) AND ACTIVEPLANE then
begin
PLANE.Draw (box.Canvas, X-Round(PLANE.Width / 2), Y-Round(PLANE.Height / 3), false);
XPLANE := X; YPLANE := Y;
end;
end; |
Le nez du petit planeur est orienté à zéro degré (ou 360 degrés) au départ. Si il était orienté à 90 degrés, son nez pointerait vers l'Est.
J'aimerai donc appliquer une rotation à cette image autour d'un point se situant au milieu de l'image.
L'angle varie en continue toutes les 100 millisecondes. Le petit planeur devrait donc avoir à chaque instant l'angle désiré et se dessiner en conséquence en transparence (paramètre False, l'ancienne position est effacée).
Quelqu'un saurait t'il comment faire ?