Disegnare in una DrawingArea una spirale: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (2 versioni intermedie di uno stesso utente non sono mostrate) | |||
| 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>[[[#Note| | Per disegnare su una ''DrawingArea'' una [https://it.wikipedia.org/wiki/Spirale_archimedea Spirale Archimedea], possiamo utilizzare il seguente codice: <SUP>[[[#Note|nota 1]]]</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() | |||
With Me | With Me | ||
. | .Move(0, 0, Screen.AvailableWidth, Screen.AvailableHeight) | ||
.Arrangement = Arrange.Fill | .Arrangement = Arrange.Fill | ||
End With | End With | ||
| Riga 18: | Riga 17: | ||
End With | End With | ||
End | |||
Public Sub DrawingArea1_Draw() | |||
Dim t As Short | Dim t As Short | ||
| Riga 35: | Riga 35: | ||
.Fill | .Fill | ||
Next | Next | ||
End With | End With | ||
End | |||
Versione attuale delle 12:58, 10 ago 2025
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
.Move(0, 0, Screen.AvailableWidth, 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 With
End
Note
[1] Vedere anche questa pagina: Disegnare punto per punto una Spirale di Archimede