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

Da Gambas-it.org - Wikipedia.
Riga 4: Riga 4:
 
   
 
   
 
  '''Public''' Sub DrawingArea1_Draw()
 
  '''Public''' Sub DrawingArea1_Draw()
 
+
  Dim b As Byte
 
 
 
 
   If vertix.Count == 0 Then Return  
 
   If vertix.Count == 0 Then Return  
 
+
 
   With Paint
 
   With Paint
 
  <FONT Color=gray>' ''Disegna un punto sul primo clic con il puntatore del mouse:''</font>
 
  <FONT Color=gray>' ''Disegna un punto sul primo clic con il puntatore del mouse:''</font>
Riga 28: Riga 26:
 
     .End
 
     .End
 
   End With
 
   End With
 
+
 
 
  '''End'''
 
  '''End'''
 
   
 
   
Riga 35: Riga 33:
 
  <FONT Color=gray>' ''Consente di disegnare un nuovo triangolo:''</font>
 
  <FONT Color=gray>' ''Consente di disegnare un nuovo triangolo:''</font>
 
   If vertix.Count == 6 Then vertix = New Short[]
 
   If vertix.Count == 6 Then vertix = New Short[]
 
+
 
   vertix.Push(Mouse.X)
 
   vertix.Push(Mouse.X)
 
   vertix.Push(Mouse.Y)
 
   vertix.Push(Mouse.Y)
 
+
 
   DrawingArea1.Refresh
 
   DrawingArea1.Refresh
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 20:54, 15 dic 2021

Mostriamo di seguito un possibile codice per disegnare in una DrawingArea un singolo "Triangolo" impostando i suoi vertici con il clic del mouse.

Private vertix As New Short[]


Public Sub DrawingArea1_Draw()

 If vertix.Count == 0 Then Return 

 With Paint
' Disegna un punto sul primo clic con il puntatore del mouse:
   .Arc(vertix[0], vertix[1], 1, Rad(0), Rad(360))
   .Fill
   If vertix.Count < 4 Then 
     .End
     Return 
   Endif
' Se il vettore "vertix" ha almeno 4 elementi, è possibile disegnare il primo lato:
   .MoveTo(vertix[0], vertix[1])
   .LineTo(vertix[2], vertix[3])
   If vertix.Count == 6 Then 
' Se il vettore "vertix" ha 6 elementi, è possibile disegnare il secondo e il terzo lato:
     .LineTo(vertix[4], vertix[5])
     .LineTo(vertix[0], vertix[1])
   Endif 
   .Stroke  ' Se si preferisce un triangolo "pieno", usare il Metodo ".Fill":
   .End
 End With
 
End

Public Sub DrawingArea1_MouseUp()

' Consente di disegnare un nuovo triangolo:
 If vertix.Count == 6 Then vertix = New Short[]

 vertix.Push(Mouse.X)
 vertix.Push(Mouse.Y)

 DrawingArea1.Refresh

End