Ruotare una figura piana intorno a una circonferenza in una DrawingArea

Da Gambas-it.org - Wikipedia.
Versione del 2 giu 2021 alle 19:07 di Vuott (Discussione | contributi) (Creata pagina con "Il caso è quello in cui si disegna in una ''DrawingArea'' una figura piana (ad esempio un cerchio) che ruota intorno a una circonferenza. In questo esempio si utilizzeranno...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Il caso è quello in cui si disegna in una DrawingArea una figura piana (ad esempio un cerchio) che ruota intorno a una circonferenza.

In questo esempio si utilizzeranno i Metodi "Paint.Translate()" e "Paint.Rotate()" per effettuare la rotazione.

Private an As Float
 
Public Sub Form_Open()

 Me.Arrangement = Arrange.Fill

 With DrawingArea1
   .X = 0
   .Y = 0
 End With
 
 With Timer1
   .Delay = 10
   .Start
 End With
 
End


Public Sub DrawingArea1_Draw()

 With Paint
   .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, 50, Rad(0), 360, False)
   .stroke
   .Translate(DrawingArea1.W / 2, DrawingArea1.H / 2)
' Un valore positivo dell'angolo di rotazione determina una rotazione in senso antiorario, un valore negativo invece una rotazione in senso orario:
   .Rotate(Rad(-an))
   .Brush = .Color(Color.Red)
   .Arc(40, 40, 5, Rad(0), 360, False)
   .Fill
   .End
 End With
 
End

Public Sub Timer1_Timer()

 Inc an
 DrawingArea1.Refresh
 
End