Differenze tra le versioni di "Disegnare in una DrawingArea più punti con il mouse"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
Per disegnare su una ''DrawingArea'' con il mouse due o più punti in modo tale che, i punti precedentemente disegnati, restino visibili sulla ''DrawingArea'' ad ogni disegno di un nuovo punto, potremo adottare un codice come il seguente:
+
Per disegnare su una ''DrawingArea'' con il mouse due o più punti <SUP>&#091;[[#Note|Nota 1]]&093;</sup> in modo tale che, i punti precedentemente disegnati, restino visibili sulla ''DrawingArea'' ad ogni disegno di un nuovo punto, potremo adottare un codice come il seguente:
  Private StartX As Single 
+
  Private StartX As Short
  Private StartY As Single    
+
  Private StartY As Short    
  Private punti As New Integer[]  
+
  Private punti As New Short[]  
 
   
 
   
 
    
 
    
Riga 10: Riga 10:
 
    
 
    
 
   With Paint
 
   With Paint
 +
    .Brush = .Color(Color.Red)
 
     For i = 0 To punti.Max Step 2
 
     For i = 0 To punti.Max Step 2
       .FillRect(punti[i], punti[i + 1], 2, 2, Color.Red)
+
       .Arc(punti[i], punti[i + 1], 1.5, Rad(0), Rad(360), False)
 +
      .Fill
 
     Next
 
     Next
 
     .End
 
     .End
Riga 35: Riga 37:
 
   
 
   
 
  '''End'''
 
  '''End'''
 +
 +
 +
 +
=Note=
 +
[1] Per conoscere le modalità di disegno di un punto su una ''DrawingArea'', vedere questa pagina della wiki:
 +
<BR>https://www.gambas-it.org/wiki/index.php?title=Disegnare_un_punto_su_una_DrawingArea_con_la_Classe_%22Paint%22

Versione delle 11:55, 4 apr 2021

Per disegnare su una DrawingArea con il mouse due o più punti [Nota 1&093; in modo tale che, i punti precedentemente disegnati, restino visibili sulla DrawingArea ad ogni disegno di un nuovo punto, potremo adottare un codice come il seguente:

Private StartX As Short
Private StartY As Short   
Private punti As New Short[] 

  
Public Sub DrawingArea1_Draw()   
  
 Dim i As Integer 
 
 With Paint
   .Brush = .Color(Color.Red)
   For i = 0 To punti.Max Step 2
     .Arc(punti[i], punti[i + 1], 1.5, Rad(0), Rad(360), False)
     .Fill
   Next
   .End
 End With
 
End   
  
  
Public Sub DrawingArea1_MouseDown()     
  
 StartX = Mouse.X   
 StartY = Mouse.Y
 
End


Public Sub DrawingArea1_MouseUp() 
  
 punti.Add(StartX) 
 punti.Add(StartY)
 
 DrawingArea1.Refresh()

End


Note

[1] Per conoscere le modalità di disegno di un punto su una DrawingArea, vedere questa pagina della wiki:
https://www.gambas-it.org/wiki/index.php?title=Disegnare_un_punto_su_una_DrawingArea_con_la_Classe_%22Paint%22