Differenze tra le versioni di "Disegnare in una DrawingArea un romboide"

Da Gambas-it.org - Wikipedia.
(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...")
 
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Di seguito mostreremo un possibile codice per disegnare un Romboide su una ''DrawingArea''.
 
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,
+
I 4 vertici del Romboide sono stati correttamente individuati su una circonferenza ideale, alla quale detti vertici appartengono,
<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 Romboide, 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[]
 
  Private pol As New Single[]
 
  Private pol As New Single[]
 
+
 
+
 
  Public Sub Form_Open()
 
  Public Sub Form_Open()
 
   
 
   
Riga 22: Riga 22:
 
   
 
   
 
  End
 
  End
 +
 
   
 
   
 
  Public Sub Form_Arrange()
 
  Public Sub Form_Arrange()
Riga 34: Riga 35:
 
   
 
   
 
  End
 
  End
 +
 
   
 
   
 
  Public Sub DrawingArea1_Draw()
 
  Public Sub DrawingArea1_Draw()
Riga 40: Riga 42:
 
     .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([(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])
+
     .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 attuale delle 10:48, 27 giu 2024

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

I 4 vertici del Romboide sono stati correttamente individuati su una circonferenza ideale, alla quale detti vertici appartengono,
E' possibile variare la dimensione del Romboide, 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