Differenze tra le versioni di "Disegnare in una DrawingArea un poligono"
Riga 7: | Riga 7: | ||
− | + | Public Sub Form_Open() | |
With Me | With Me | ||
Riga 19: | Riga 19: | ||
End With | End With | ||
− | + | End | |
− | + | ||
+ | Public Sub DrawingArea1_Draw() | ||
With Paint | With Paint | ||
Riga 35: | Riga 36: | ||
End With | End With | ||
− | + | End | |
===Disegnare un qualunque poligono con il mouse=== | ===Disegnare un qualunque poligono con il mouse=== | ||
Riga 45: | Riga 46: | ||
− | + | Public Sub Form_Open() | |
With Me | With Me | ||
Riga 57: | Riga 58: | ||
End With | End With | ||
− | + | End | |
− | + | ||
+ | Public Sub DrawingArea1_MouseUp() | ||
<FONT Color=gray>' ''Consente di disegnare un nuovo poligono:''</font> | <FONT Color=gray>' ''Consente di disegnare un nuovo poligono:''</font> | ||
Riga 69: | Riga 71: | ||
DrawingArea1.Refresh | DrawingArea1.Refresh | ||
− | + | End | |
+ | |||
− | + | Public Sub DrawingArea1_Draw() | |
If vertici.Count == 0 Then Return | If vertici.Count == 0 Then Return | ||
Riga 90: | Riga 93: | ||
End With | End With | ||
− | + | End | |
Versione delle 10:46, 27 giu 2024
Per disegnare in una DrawingArea un qualunque poligono [nota 1], è necessario utilizzare il Metodo ".Polygon()" della Classe "Paint".
Questo Metodo richiede che siano individuati nel suo unico parametro di tipo vettoriale tutti i punti (x,y rispetto all'angolo in alto a sinistra del Contenitore Drawingrea) relativi ai vertici del poligono da disegnare.
Mostriamo un esempio, nel quale sarà disegnato un "Trapezio scaleno".
Private DrawingArea1 As DrawingArea Public Sub Form_Open() With Me .W = Screen.AvailableWidth .H = Screen.AvailableHeight .Arrangement = Arrange.Fill End With With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1" .Background = Color.Lighter(Color.Yellow) End With End Public Sub DrawingArea1_Draw() With Paint .Brush = .Color(Color.Red) .LineWidth = 2.0 ' Disegna il poligono impostando i suoi parametri: .Polygon([80.0, 50.0, 200.0, 50.0, 250.0, 100.0, 50.0, 100.0]) ' Se si vuole soltanto visualizzare la traccia del perimetro del poligono: .Stroke ' Se, invece, si intende ottenere un poligono internamente colorato: ' .Fill .End End With End
Disegnare un qualunque poligono con il mouse
In quest'altro caso si costruirà un qualunque poligono, impostando innanzitutto nella Costante "LATI" il numero di lati che lo costituiscono.
I vertici dei lati saranno impostati cliccando con il puntatore del mouse sulla superficie della "DrawingArea".
Private DrawingArea1 As DrawingArea Private LATI As Byte = 5 ' In questo caso si disegnerà un poligono con 5 lati Private vertici As New Short[] Public Sub Form_Open() With Me .W = Screen.AvailableWidth .H = Screen.AvailableHeight .Arrangement = Arrange.Fill End With With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1" .Background = Color.Lighter(Color.Yellow) End With End Public Sub DrawingArea1_MouseUp() ' Consente di disegnare un nuovo poligono: If vertici.Count == LATI * 2 Then vertici = New Short[] vertici.Push(Mouse.X) vertici.Push(Mouse.Y) DrawingArea1.Refresh End Public Sub DrawingArea1_Draw() If vertici.Count == 0 Then Return Dim b As Byte With Paint ' Disegna un punto per ciascun clic con il puntatore del mouse: For b = 0 To vertici.Max Step 2 .Arc(vertici[b], vertici[b + 1], 1, Rad(0), Rad(360)) .Fill Next If vertici.Count == LATI * 2 Then .Polygon(vertici) .Stroke ' Se si preferisce un poligono "pieno", usare il Metodo ".Fill" Endif .End End With End
Note
[1] Ovviamente, per ottenere il disegno di un Quadrato o di un Rettangolo, si potrà usare il Metodo "Paint.DrawRect()" oppure "Paint.Rectangle()".