Differenze tra le versioni di "Disegnare in una DrawingArea una spirale"

Da Gambas-it.org - Wikipedia.
 
Riga 1: Riga 1:
 
==Disegnare una Spirale Archimedea==
 
==Disegnare una Spirale Archimedea==
Per disegnare su una ''DrawingArea'' una [https://it.wikipedia.org/wiki/Spirale_archimedea Spirale Archimedea], possiamo utilizzare il seguente codice: <SUP>&#091;[[#Note|1ota 1]]&#093;</sup>
+
Per disegnare su una ''DrawingArea'' una [https://it.wikipedia.org/wiki/Spirale_archimedea Spirale Archimedea], possiamo utilizzare il seguente codice: <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
 
  Private DrawingArea1 As DrawingArea
 
  Private DrawingArea1 As DrawingArea
 
  Private Const VOLUTE As Byte = 8
 
  Private Const VOLUTE As Byte = 8
Riga 6: Riga 6:
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   With Me
 
   With Me
Riga 18: Riga 18:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub DrawingArea1_Draw()
+
   
 +
Public Sub DrawingArea1_Draw()
 
   
 
   
 
   Dim t As Short
 
   Dim t As Short
Riga 38: Riga 39:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
  
  

Versione attuale delle 17:27, 4 giu 2024

Disegnare una Spirale Archimedea

Per disegnare su una DrawingArea una Spirale Archimedea, possiamo utilizzare il seguente codice: [nota 1]

Private DrawingArea1 As DrawingArea
Private Const VOLUTE As Byte = 8
Private Const THETA As Float = 1E-4


Public Sub Form_Open()

 With Me
   .W = Screen.AvailableWidth
   .H = Screen.AvailableHeight
   .Arrangement = Arrange.Fill
 End With

 With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
   .Background = Color.White
 End With

End


Public Sub DrawingArea1_Draw()

 Dim t As Short
 Dim x, y, r As Float    ' r = distanza del punto relativo della spirale dal centro

 x = DrawingArea1.W / 2
 y = DrawingArea1.H / 2
 
 With Paint
   .Brush = .Color(Color.Red)
   For t = 0 To 360 * VOLUTE
     r = r + (t * THETA)
     .Arc(x + (r * Cos(Rad(t))), y + (r * Sin(Rad(t))), 1.0, Rad(0), Rad(360), False)
     .Fill
   Next
   .End
 End With

End


Note

[1] Vedere anche questa pagina: Disegnare punto per punto una Spirale di Archimede