Disegnare in una DrawingArea linee mediante codice: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
 
Riga 10: Riga 10:
     .<FONT Color=#B22222>LineTo</font>(200, 100)
     .<FONT Color=#B22222>LineTo</font>(200, 100)
     .Stroke
     .Stroke
    .End
   End With
   End With
    
    
Riga 26: Riga 25:
     .LineTo(200, 100)
     .LineTo(200, 100)
     .Stroke
     .Stroke
    .End
   End With
   End With
    
    
Riga 45: Riga 43:
     .LineTo(100, 200)
     .LineTo(100, 200)
     .Stroke
     .Stroke
    .End
   End With
   End With
   
   
Riga 71: Riga 68:
     .LineTo(100, 200)
     .LineTo(100, 200)
     .Stroke
     .Stroke
    .End
   End With
   End With
   
   
  End
  End

Versione attuale delle 04:37, 9 ago 2025

La definizione di una linea è costituita da due punti di riferimento: quello iniziale (di origine) e quello finale.

Per disegnare in una DrawingArea linee mediante il codice, si utilizza il Metodo ".LineTo()" della Classe Paint. Per ottenere il disegno è necessario usare poi anche il Metodo ".Stroke".

Il Metodo ".LineTo()" possiede due parametri che rappresentano le coordinate del punto finale della linea.
Il punto d'origine, invece, è predefinito ed è pari a x=0, y=0, se il Metodo ".LineTo()" è all'inizio della funzione Paint (ossia se non è preceduto da altro Metodo ".LineTo()" o dal Metodo ".MoveTo()".
Così questo codice:

Public Sub DrawingArea1_Draw()
 
 With Paint
   .LineTo(200, 100)
   .Stroke
 End With
 
End

disegnerà nella DrawingArea una linea che ha come punto di origine le coordinate x=0, y=0, e come punto finale le coordinate impostate nel Metodo ".LineTo()".


Impostare il punto iniziale di una linea da coordinate diverse da 0,0

Se si intende far impostare il punto di origine di una linea in coordinate diverse da quelle predefinite 0,0, è necessario premettere il Metodo ".MoveTo()" al Metodo ".LineTo()".
Così questo codice:

Public Sub DrawingArea1_Draw()
 
 With Paint
   .MoveTo(20, 40)
   .LineTo(200, 100)
   .Stroke
 End With
 
End

disegnerà nella DrawingArea una linea che ha come punto di origine le coordinate x=20, y=40, e come punto finale le coordinate impostate nel successivo Metodo ".LineTo()".


Disegnare più linee a formare un'unica linea spezzata

Per disegnare più linee a formare un'unica linea spezzata, bisognerà combinare adeguatamente i già visti Metodi ".MoveTo()" e ".LineTo()".
Va sottolineato che, quando si utilizzano due o più Metodi ".LineTo()", il punto di origine di ciascuna linea, che sarà disegnata da ogni Metodo ".LineTo()" a cominciare dal secondo in poi, ha le sue coordinate d'origine nel punto finale della linea precedente.
Così questo codice:

Public Sub DrawingArea1_Draw()
 
 With Paint
   .MoveTo(20, 40)
   .LineTo(200, 100)
   .LineTo(10, 150)
   .LineTo(100, 200)
   .Stroke
 End With

End

prevede il disegno di tre linee. In particolare:
- il punto d'origine della prima linea è impostato alle coordinate fissate nel Metodo ".MoveTo()";
- il punto finale della prima linea è impostato alle coordinate fissate nel primo Metodo ".LineTo()";
- il punto d'origine della seconda linea è impostato alle medesime coordinate del punto finale della prima linea (quindi comincerà esattamente dove è terminata la prima linea);
- il punto finale della seconda linea è impostato alle coordinate fissate nel secondo Metodo ".LineTo()";
- il punto d'origine della terza linea è impostato alle medesime coordinate del punto finale della seconda linea (quindi comincerà esattamente dove è terminata la seconda linea);
- il punto finale della terza linea è impostato alle coordinate fissate nel terzo Metodo ".LineTo()";


Interporre il Metodo ".MoveTo()" fra due Metodi ".LineTo()"

E' ovvio che, ponendo fra i due Metodi ".LineTo()", un Metodo ".MoveTo()", si possono ottenere due linee disgiunte e separate.
Esempio pratico:

Public Sub DrawingArea1_Draw()
 
 With Paint
   .MoveTo(20, 40)
   .LineTo(200, 100)
   .MoveTo(150, 40)
   .LineTo(10, 150)
   .LineTo(100, 200)
   .Stroke
 End With

End