Disegnare in una DrawingArea un rombo: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
 
Riga 1: Riga 1:
Di seguito mostreremo un possibile codice per disegnare un Rombo in una ''DrawingArea''.
Di seguito mostreremo un possibile codice per disegnare un Rombo in una ''DrawingArea''.
  Private DrawingArea1 As DrawingArea
Private DrawingArea1 As DrawingArea
   
   
   
   

Versione attuale delle 22:27, 27 lug 2025

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