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
Je charge mon image comme ceci :
Puis je l'affiche sur le canvas comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PLANE.Free; PLANE := TBGRABitmap.Create(FILEPLANE);
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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 ?
Partager