J'ai rajouté un G.Clear(AxTransPictureCtl1.BackColor) avant le G.Draw et l'image initiale est effacée... Mais je vois en commentaire un G.Clear(Me.BackColor) en commentaire... Donc j'imagine que tu as déjà essayé ?
Julien.
PS : J'ai utilisé ton code un peu autrement dans le Paint de la pictursBox, peut-être est-ce à cause de ca mais je vois pas le rapport ? Je te colle mes modifs ici, ma pictureBox s'appelle Pic, et j'utilise un timer à 40 pour actualiser l'image...
Private Sub Pic_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Pic.Paint
Dim AngleDegre As Single = DateAndTime.Timer * 100
'on mémorise la longueur de l'image
'je pars de l'hypothèse que j'utilise une image carrée
Dim Largeur As Integer = Pic.Image.Width
Dim Hauteur As Integer = Pic.Image.Height
'on mémorise l'image présente dans la picture box
Dim IMG As System.Drawing.Image = Pic.Image
Dim Angle As Double = AngleDegre / 180 * Math.PI
'on calcule les nouvelles coord X et Y de l'image
Dim PosX As Single = Math.Sqrt(2) * (Largeur) * Math.Sin(Angle / 2) * Math.Cos(Math.PI / 4 + Angle / 2)
Dim PosY As Single = -Math.Sqrt(2) * (Largeur) * Math.Sin(Angle / 2) * Math.Cos(Math.PI / 4 - Angle / 2)
'on fait la rotation e.Graphics.Clear(Pic.BackColor) e.Graphics.RotateTransform(AngleDegre)
'on dessine l'image rotée aux nouvelles coordonnées
e.Graphics.DrawImage(IMG, PosX, PosY, Largeur, Hauteur) End Sub
Private Sub Tmr_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tmr.Tick Pic.Refresh() End Sub
|