Disegnare in una DrawingArea un romboide: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
(Creata pagina con "Di seguito mostreremo un possibile codice per disegnare un Romboide su una ''DrawingArea''. I 5 vertici del Pentagono regolare sono stati correttamente individuati su una cir...")
 
Nessun oggetto della modifica
Riga 8: Riga 8:
  Private coord As Single[]
  Private coord As Single[]
  Private pol As New Single[]
  Private pol As New Single[]
 
 
  Public Sub Form_Open()
  Public Sub Form_Open()
   
   

Versione delle 12:30, 31 mag 2023

Di seguito mostreremo un possibile codice per disegnare un Romboide su una DrawingArea.

I 5 vertici del Pentagono regolare sono stati correttamente individuati su una circonferenza ideale, alla quale detti vertici appartengono,
E' possibile variare la dimensione del Pentagono, modificando il raggio della circonferenza, sulla quale i suoi vertici insistono.

Private DrawingArea1 As DrawingArea
Private Const RAGGIO As Single = 100.0
Private Const ROMBOIDE As Byte = 4
Private coord As Single[]
Private pol As New Single[]


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.Lighter(Color.Yellow)
 End With

End

Public Sub Form_Arrange()

 coord = [DrawingArea1.W / 2, DrawingArea1.H / 2]

 Dim gradi As Single[] = [0.0, 90.0, 180.0, 270.0]
 For t As Byte = 0 To ROMBOIDE - 1
   pol.Push(RAGGIO * Cos(Rad(gradi[t])))
   pol.Push(RAGGIO * Sin(Rad(gradi[t])))
 Next

End

Public Sub DrawingArea1_Draw()

 With Paint
   .Arc(coord[0], coord[1], 2, Rad(0), Rad(360), False)
   .Fill
   .Polygon([(coord[0] + pol[0]) - xs, (coord[1] + pol[1]) - ys, (coord[0] + pol[2]) - xs, (coord[1] + pol[3]) - ys, (coord[0] + pol[4]) - xs - 150, (coord[1] + pol[5]) - ys, (coord[0] + pol[6]) - xs, (coord[1] + pol[7]) - ys])
   .Stroke
   .End
 End With

End