Differenze tra le versioni di "Disegnare in una DrawingArea un rettangolo colorato con distinzione sfumata fra i colori"

Da Gambas-it.org - Wikipedia.
Riga 16: Riga 16:
 
   
 
   
 
   With Paint
 
   With Paint
    .Begin(DrawingArea1)
 
 
     .Brush = .LinearGradient(10, 40, 300, 40, c, p)
 
     .Brush = .LinearGradient(10, 40, 300, 40, c, p)
 
     .Rectangle(10, 40, 300, 40)
 
     .Rectangle(10, 40, 300, 40)

Versione delle 07:05, 23 mag 2015

Per ottenere una distinzione sfumata dei confini fra un colore ed un altro prossimo di un rettangolo disegnato in una DrawingArea, si deve utilizzare il metodo .LinearGradient() della Classe Paint. Il passaggio da un colore all'altro avviene in modo sfumato sia attraverso la sua dissolvenza sia mediante la sua fusione con la parte dissolta dell'altro colore.


Mostriamo un semplice esempio, nel quale viene disegnato un rettangolo internamente colorato con quattro colori blu, verde, giallo e rosso, distinti l'uno dall'altro prossimo in modo sfumato:

Public Sub Form_Open()

  DrawingArea1.Background = Color.White

End


Public Sub DrawingArea1_Draw()

 Dim c As Integer[] = [Color.Blue, Color.Green, Color.Yellow, Color.Red]
 Dim p As Float[] = [0, 0.34, 0.67, 1]

  With Paint
    .Brush = .LinearGradient(10, 40, 300, 40, c, p)
    .Rectangle(10, 40, 300, 40)
    .Fill
    .End
  End With

End