Differenze tra le versioni di "Ruotare un'immagine sul proprio asse centrale in una DrawingArea"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Nel caso in cui si debba far ruotare in una ''DrawingArea'' un'immagine sul proprio asse centrale, sia essa quadrata o rettangolare, si potrà adottare il seguente codice: Pr...")
 
Riga 11: Riga 11:
 
     .Arrangement = Arrange.Fill
 
     .Arrangement = Arrange.Fill
 
   End With
 
   End With
   DrawingArea1 = New DrawingArea As "DrawingArea1"
+
   DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
 
    
 
    
 
   im = Image.Load("<FONT Color=gray>''/percorso/della/immagine''</font>")
 
   im = Image.Load("<FONT Color=gray>''/percorso/della/immagine''</font>")

Versione delle 08:26, 29 gen 2022

Nel caso in cui si debba far ruotare in una DrawingArea un'immagine sul proprio asse centrale, sia essa quadrata o rettangolare, si potrà adottare il seguente codice:

Private DrawingArea1 As DrawingArea
Private im As Image
Private c As Short

Public Sub Form_Open()

 With Me
   .W = Screen.AvailableWidth
   .H = Screen.AvailableHeight
   .Arrangement = Arrange.Fill
 End With
 DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
 
 im = Image.Load("/percorso/della/immagine")
 
End

Public Sub DrawingArea1_MouseUp()

 Do
   c += 10
   DrawingArea1.Refresh
   Wait 0.1
 Loop

End

Public Sub DrawingArea1_Draw()

 With Paint
' Pone il centro di rotazione al centro della "DrawingArea":
   .Translate(DrawingArea1.W / 2, DrawingArea1.H / 2)
   .Rotate(Rad(c))
   .DrawImage(im, -im.W / 2, -im.H / 2, im.W, im.H, 1.0, Null)
   .End
 End With

End