Differenze tra le versioni di "Ruotare un'immagine sul proprio asse centrale in una DrawingArea"
Da Gambas-it.org - Wikipedia.
Riga 30: | Riga 30: | ||
With Paint | With Paint | ||
− | <FONT Color=gray>' ''Pone il centro di rotazione al centro della "DrawingArea" | + | <FONT Color=gray>' ''Pone il centro di rotazione al centro della "DrawingArea".'' |
+ | ' ''Il fulcro del Metodo ".Translate()" agisce da centro di rotazione intorno a una ipotetica circonferenza.''</font> | ||
.Translate(DrawingArea1.W / 2, DrawingArea1.H / 2) | .Translate(DrawingArea1.W / 2, DrawingArea1.H / 2) | ||
.Rotate(Rad(c)) | .Rotate(Rad(c)) |
Versione delle 08:38, 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". ' Il fulcro del Metodo ".Translate()" agisce da centro di rotazione intorno a una ipotetica circonferenza. .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