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

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 2: Riga 2:
  
 
===Uso del Metodo ".Arc()"===
 
===Uso del Metodo ".Arc()"===
La Classe ''Paint'' ci consente di disegnare un cerchio mediante il Metodo ".Arc()":
+
La Classe ''Paint'' ci consente di disegnare un cerchio mediante il Metodo ".Arc()": <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
 
  Private DrawingArea1 As DrawingArea
 
  Private DrawingArea1 As DrawingArea
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   With Me
 
   With Me
Riga 19: Riga 19:
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub DrawingArea1_Draw()
+
   
 +
Public Sub DrawingArea1_Draw()
 
    
 
    
 
   With Paint
 
   With Paint
Riga 33: Riga 34:
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
  
 
===Uso del Metodo ".Ellipse()"===
 
===Uso del Metodo ".Ellipse()"===
Riga 40: Riga 41:
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   With Me
 
   With Me
Riga 53: Riga 54:
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 +
 
   
 
   
  '''Public''' Sub DrawingArea1_Draw()
+
  Public Sub DrawingArea1_Draw()
 
    
 
    
 
   With Paint
 
   With Paint
Riga 67: Riga 69:
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
  
 
===Usare una formula trigonometrica===
 
===Usare una formula trigonometrica===
E' possibile anche disegnare un cerchio punto per punto mediante una formula trigonometrica ed usando il Metodo ".FillRect()" della Classe "Paint" per ottenere un punto: <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
+
E' possibile anche disegnare un cerchio punto per punto mediante una formula trigonometrica ed usando il Metodo ".FillRect()" della Classe "Paint" per ottenere un punto: <SUP>&#091;[[#Note|nota 2]]&#093;</sup>
 
  Private DrawingArea1 As DrawingArea
 
  Private DrawingArea1 As DrawingArea
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   With Me
 
   With Me
Riga 87: Riga 89:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
 +
 
   
 
   
  '''Public''' Sub DrawingArea1_Draw()
+
  Public Sub DrawingArea1_Draw()
 
    
 
    
 
   Dim x, y, r, t As Single     
 
   Dim x, y, r, t As Single     
Riga 107: Riga 110:
 
   End With
 
   End With
 
   
 
   
  '''End'''
+
  End
  
  
  
 
=Note=
 
=Note=
[1] Vedere anche questa pagina: [[Disegnare_in_successione_dei_punti_in_una_DrawingArea#Visibili_il_punto_corrente_disegnato_e_tutti_i_punti_precedentemente_disegnati|Visibili il punto corrente disegnato e tutti i punti precedentemente disegnati]]
+
[1] Il disegno dell'arco segue lo standard matematico, ovvero gli angoli positivi vengono elaborati in senso antiorario con l'asse X che va da sinistra a destra e l'asse Y che va dal basso verso l'alto.
 +
<BR>Poiché l'asse Y va dall'alto verso il basso per impostazione predefinita nel computer, gli angoli positivi procedono in senso orario.
 +
 
 +
[2] Vedere anche questa pagina:
 +
[[Disegnare_in_una_DrawingArea_dei_punti#Disegnare_punto_per_punto_un_cerchio|Disegnare punto per punto un cerchio]]

Versione attuale delle 17:16, 29 mar 2024

Per disegnare un cerchio all'interno di una DrawingArea, è possibile utilizzare la Classe Paint.

Uso del Metodo ".Arc()"

La Classe Paint ci consente di disegnare un cerchio mediante il Metodo ".Arc()": [nota 1]

Private DrawingArea1 As DrawingArea


Public Sub Form_Open()

 With Me
   .Center
   .W = 600
   .H = 500
   .Arrangement = Arrange.Fill
 End With

 With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
   .Background = Color.White
 End With
 
End


Public Sub DrawingArea1_Draw()
 
 With Paint
   .Brush = Paint.Color(Color.Red)
   .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, 100, Rad(0), Rad(360), False)
' Se si desidera disegnare un cerchio vuoto, si userà il Metodo ".Stroke":
   .Stroke
' Se si desidera disegnare un cerchio ripieno di colore, si userà il Metodo ".Fill":
   .Fill
   .End
 End With
 
End

Uso del Metodo ".Ellipse()"

La Classe Paint ci consente di disegnare un cerchio anche mediante il Metodo ".Ellipse()":

Private DrawingArea1 As DrawingArea


Public Sub Form_Open()

 With Me
   .Center
   .W = 600
   .H = 500
   .Arrangement = Arrange.Fill
 End With

 With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
   .Background = Color.White
 End With
 
End


Public Sub DrawingArea1_Draw()
 
 With Paint
   .Brush = Paint.Color(Color.Red)
   .Ellipse(DrawingArea1.W / 2, DrawingArea1.H / 2,  100, 100, Rad(0), Rad(360), False)
' Se si desidera disegnare un cerchio vuoto, si userà il Metodo ".Stroke":
   .Stroke
' Se si desidera disegnare un cerchio ripieno di colore, si userà il Metodo ".Fill":
   .Fill
   .End
 End With
 
End

Usare una formula trigonometrica

E' possibile anche disegnare un cerchio punto per punto mediante una formula trigonometrica ed usando il Metodo ".FillRect()" della Classe "Paint" per ottenere un punto: [nota 2]

Private DrawingArea1 As DrawingArea


Public Sub Form_Open()

 With Me
   .Center
   .W = 600
   .H = 500
   .Arrangement = Arrange.Fill
 End With

 With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
   .Background = Color.White
 End With

End


Public Sub DrawingArea1_Draw()
 
 Dim x, y, r, t As Single     
 x = DrawingArea1.W / 2
 y = DrawingArea1.H / 2
' Lunghezza del raggio della circonferenza:
 r = 100

 With Paint
   .Brush = .Color(Color.Red)
' Il ciclo disegna l'arco della circonferenza:
   For t = 0 To 360  ' Per maggiore dettaglio si potrà aggiungere: Step 0.25
     .Arc(x + (r * Cos(Rad(t))), y + (r * Sin(Rad(t))), 0.8, Rad(0), Rad(360), False)
     .Fill
   Next
   .End
 End With

End


Note

[1] Il disegno dell'arco segue lo standard matematico, ovvero gli angoli positivi vengono elaborati in senso antiorario con l'asse X che va da sinistra a destra e l'asse Y che va dal basso verso l'alto.
Poiché l'asse Y va dall'alto verso il basso per impostazione predefinita nel computer, gli angoli positivi procedono in senso orario.

[2] Vedere anche questa pagina: Disegnare punto per punto un cerchio