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 | + | 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