Differenze tra le versioni di "Disegnare in una DrawingArea un romboide"
Da Gambas-it.org - Wikipedia.
Riga 4: | Riga 4: | ||
<BR>E' possibile variare la dimensione del Pentagono, modificando il raggio della circonferenza, sulla quale i suoi vertici insistono. | <BR>E' possibile variare la dimensione del Pentagono, modificando il raggio della circonferenza, sulla quale i suoi vertici insistono. | ||
Private DrawingArea1 As DrawingArea | Private DrawingArea1 As DrawingArea | ||
− | Private Const RAGGIO As Single = 100.0 | + | Private Const <FONT Color=#B22222>RAGGIO</font> As Single = 100.0 |
Private Const ROMBOIDE As Byte = 4 | Private Const ROMBOIDE As Byte = 4 | ||
Private coord As Single[] | Private coord As Single[] | ||
Riga 40: | Riga 40: | ||
.Arc(coord[0], coord[1], 2, Rad(0), Rad(360), False) | .Arc(coord[0], coord[1], 2, Rad(0), Rad(360), False) | ||
.Fill | .Fill | ||
− | .Polygon([ | + | .Polygon([coord[0] + pol[0], coord[1] + pol[1], coord[0] + pol[2], coord[1] + pol[3], coord[0] + pol[4] - 150, coord[1] + pol[5], coord[0] + pol[6], coord[1] + pol[7]]) |
.Stroke | .Stroke | ||
.End | .End |
Versione delle 11:32, 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], coord[1] + pol[1], coord[0] + pol[2], coord[1] + pol[3], coord[0] + pol[4] - 150, coord[1] + pol[5], coord[0] + pol[6], coord[1] + pol[7]]) .Stroke .End End With End