Disegnare in una DrawingArea un rombo

Da Gambas-it.org - Wikipedia.
Versione del 27 lug 2025 alle 22:27 di Vuott (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Di seguito mostreremo un possibile codice per disegnare un Rombo in 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            ' Centro X
 Dim cy As Float = DrawingArea1.H / 2            ' Centro Y
 Dim width As Float = DrawingArea1.W * 0.4       ' Larghezza del rombo
 Dim height As Float = DrawingArea1.H * 0.3      ' Altezza del rombo
 Dim puntoRaggio As Float = 5                    ' Raggio del punto centrale

 Dim points As New PointF[4]

 points[0] = New PointF(cx, cy - height / 2)     ' Vertice superiore
 points[1] = New PointF(cx + width / 2, cy)      ' Vertice destro
 points[2] = New PointF(cx, cy + height / 2)     ' Vertice inferiore
 points[3] = New PointF(cx - width / 2, cy)      ' Vertice sinistro

 With Paint
   .Brush = Paint.Color(Color.Black)
   .LineWidth = 2

' Disegna il rombo:
   .MoveTo(points[0].X, points[0].Y)
   For i As Integer = 1 To 3
     .LineTo(points[i].X, points[i].Y)
   Next
   .LineTo(points[0].X, points[0].Y)
   .Stroke

' Disegna il punto nero al centro:
   .Brush = Paint.Color(Color.Black)
   .Ellipse(cx - puntoRaggio, cy - puntoRaggio, puntoRaggio * 2, puntoRaggio * 2)
   .Fill
 End With

End