Aree geografiche (GDI+)
Un'area è una parte della superficie di visualizzazione. Le aree possono essere semplici (un singolo rettangolo) o complesse (una combinazione di poligoni e curve chiuse). La figura seguente mostra due aree: una costruita da un rettangolo e l'altra costruita da un percorso.
Le aree vengono spesso usate per ritagliare e colpire i test. Il ritaglio comporta la limitazione del disegno a una determinata area dello schermo, in genere la parte dello schermo che deve essere aggiornata. Il test di hit prevede il controllo per verificare se il cursore si trova in una determinata area dello schermo quando viene premuto un pulsante del mouse.
È possibile costruire un'area da un rettangolo o da un percorso. È anche possibile creare aree complesse combinando aree esistenti. La classe Region fornisce i metodi seguenti per la combinazione di aree: Intersect, Union, Xor, Exclude e Region::Complement.
L'intersezione di due aree è il set di tutti i punti appartenenti a entrambe le aree. L'unione è il set di tutti i punti appartenenti a una o all'altra o entrambe le regioni. Il complemento di un'area è il set di tutti i punti che non si trovano nell'area. La figura seguente mostra l'intersezione e l'unione delle due aree nella figura precedente.
Il metodo Xor , applicato a una coppia di aree, produce un'area contenente tutti i punti che appartengono a un'area o all'altra, ma non entrambi. Il metodo Exclude , applicato a una coppia di aree, produce un'area che contiene tutti i punti nella prima area che non si trovano nella seconda area. Nella figura seguente vengono illustrate le aree risultanti dall'applicazione dei metodi Xor ed Escludi alle due aree visualizzate all'inizio di questo argomento.
Per riempire un'area, è necessario un oggetto Graphics , un oggetto Brush e un oggetto Region . L'oggetto Graphics fornisce il metodo Graphics::FillRegion e l'oggetto Brush archivia gli attributi del riempimento, ad esempio colore o modello. Nell'esempio seguente viene riempita un'area con un colore a tinta unita.
myGraphics.FillRegion(&mySolidBrush, &myRegion);