Disegnare in una DrawingArea un esagono regolare: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (Una versione intermedia di uno stesso utente non è mostrata) | |||
| Riga 1: | Riga 1: | ||
Di seguito mostreremo un possibile codice per disegnare un Esagono regolare su una ''DrawingArea''. | Di seguito mostreremo un possibile codice per disegnare un Esagono regolare su una ''DrawingArea''. | ||
Private DrawingArea1 As DrawingArea | Private DrawingArea1 As DrawingArea | ||
| Riga 13: | Riga 6: | ||
With Me | With Me | ||
. | .Move(0, 0, Screen.AvailableWidth, Screen.AvailableHeight) | ||
.Arrangement = Arrange.Fill | .Arrangement = Arrange.Fill | ||
End With | End With | ||
| Riga 24: | Riga 16: | ||
Public Sub | Public Sub DrawingArea1_Draw() | ||
Dim cx As Float = DrawingArea1.W / 2 | |||
Dim cy As Float = DrawingArea1.H / 2 | |||
Dim r As Float = Min(DrawingArea1.W, DrawingArea1.H) * 0.2 <FONT Color=gray>' ''Raggio dell'Esagono''</font> | |||
Dim numSides As Integer = 6 <FONT Color=gray>' ''Esagono = 6 lati''</font> | |||
Dim angleStep As Float = 2 * Pi / numSides | |||
Dim points As New PointF[numSides] | |||
Dim i As Integer | |||
For i = 0 To numSides - 1 | |||
Dim angle As Float = angleStep * i - Pi / 2 <FONT Color=gray>' ''Rotazione per partire da cima''</font> | |||
points[i] = New PointF(cx + r * Cos(angle), cy + r * Sin(angle)) | |||
Next | Next | ||
With Paint | |||
.Brush = Paint.Color(Color.Black) | |||
.LineWidth = 2 | |||
.MoveTo(points[0].X, points[0].Y) | |||
For i = 1 To numSides - 1 | |||
.LineTo(points[i].X, points[i].Y) | |||
Next | |||
.LineTo(points[0].X, points[0].Y) | |||
.Stroke | .Stroke | ||
End With | End With | ||
End | End | ||
Versione attuale delle 21:36, 27 lug 2025
Di seguito mostreremo un possibile codice per disegnare un Esagono regolare su una DrawingArea.
Private DrawingArea1 As DrawingArea
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.Lighter(Color.Yellow)
End With
End
Public Sub DrawingArea1_Draw()
Dim cx As Float = DrawingArea1.W / 2
Dim cy As Float = DrawingArea1.H / 2
Dim r As Float = Min(DrawingArea1.W, DrawingArea1.H) * 0.2 ' Raggio dell'Esagono
Dim numSides As Integer = 6 ' Esagono = 6 lati
Dim angleStep As Float = 2 * Pi / numSides
Dim points As New PointF[numSides]
Dim i As Integer
For i = 0 To numSides - 1
Dim angle As Float = angleStep * i - Pi / 2 ' Rotazione per partire da cima
points[i] = New PointF(cx + r * Cos(angle), cy + r * Sin(angle))
Next
With Paint
.Brush = Paint.Color(Color.Black)
.LineWidth = 2
.MoveTo(points[0].X, points[0].Y)
For i = 1 To numSides - 1
.LineTo(points[i].X, points[i].Y)
Next
.LineTo(points[0].X, points[0].Y)
.Stroke
End With
End