Differenze tra le versioni di "Disegnare in una DrawingArea un esagono regolare"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Di seguito mostreremo un possibile codice per disegnare un Esagono regolare su una ''DrawingArea''. I 6 vertici dell'Esagono regolare sono stati correttamente individuati sul...")
 
Riga 5: Riga 5:
 
  Private DrawingArea1 As DrawingArea
 
  Private DrawingArea1 As DrawingArea
 
  Private Const <FONT Color=#B22222>RAGGIO</font> As Single = 100.0
 
  Private Const <FONT Color=#B22222>RAGGIO</font> As Single = 100.0
 +
Private Const ESAGONO As Byte = 6
 
  Private coord As Single[]
 
  Private coord As Single[]
 
  Private pol As New Single[]
 
  Private pol As New Single[]
Riga 26: Riga 27:
 
   coord = [DrawingArea1.W / 2, DrawingArea1.H / 2]
 
   coord = [DrawingArea1.W / 2, DrawingArea1.H / 2]
 
    
 
    
   For t As Short = 0 To 360 Step 60
+
   For t As Short = 0 To 360 Step 360 / ESAGONO
 
     pol.Push(RAGGIO * Cos(Rad(t)))
 
     pol.Push(RAGGIO * Cos(Rad(t)))
 
     pol.Push(RAGGIO * Sin(Rad(t)))
 
     pol.Push(RAGGIO * Sin(Rad(t)))

Versione delle 11:17, 29 mag 2023

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

I 6 vertici dell'Esagono regolare sono stati correttamente individuati sulla circonferenza ideale, alla quale detti vertici appartengono, dividendo l'angolo di 360° per il numero dei vertici del Pentagono (360° / 6 = 60°). Ciascun vertice si troverà sulla circonferenza ogni 60 gradi.
E' possibile variare la dimensione dell'Esagono, modificando il raggio della circonferenza, sulla quale i suoi vertici insistono.

Private DrawingArea1 As DrawingArea
Private Const RAGGIO As Single = 100.0
Private Const ESAGONO As Byte = 6
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]
 
 For t As Short = 0 To 360 Step 360 / ESAGONO
   pol.Push(RAGGIO * Cos(Rad(t)))
   pol.Push(RAGGIO * Sin(Rad(t)))
 Next

End

Public Sub DrawingArea1_Draw()

 With Paint
   .Polygon([(coord[0] + pol[0]), (coord[1] + pol[1]), (coord[0] + pol[2]), (coord[1] + pol[3]), (coord[0] + pol[4]), (coord[1] + pol[5]), (coord[0] + pol[6]), (coord[1] + pol[7]), (coord[0] + pol[8]), (coord[1] + pol[9]), (coord[0] + pol[10]), (coord[1] + pol[11])])
   .Stroke
   .End
 End With

End