Disegnare in una DrawingArea un triangolo: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (9 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 1: | Riga 1: | ||
Per disegnare in una DrawingArea un singolo "Triangolo", <U>impostando i suoi vertici con il clic del mouse</u>, sono possibili almeno un paio di modalità. | |||
===Usando i Metodi ".MoveTo()" e ".LineTo()" della Classe "Paint"=== | |||
Con questa modalità i lati del triangolo saranno disegnati dalle linee create dai Metodi ".MoveTo()" e ".LineTo()" della Classe "Paint". | |||
Private DrawingArea1 As DrawingArea | |||
Private vertix As New Short[] | Private vertix As New Short[] | ||
Public Sub _new() | |||
With Me | |||
.Move(0, 0, Screen.AvailableWidth, Screen.AvailableHeight) | |||
.Arrangement = Arrange.Fill | |||
End With | |||
With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1" | |||
.Background = Color.White | |||
End With | |||
End | |||
Public Sub DrawingArea1_MouseUp() | |||
<FONT Color=gray>' ''Consente di disegnare un nuovo triangolo:''</font> | |||
If vertix.Count == 6 Then vertix = New Short[] | |||
vertix.Push(Mouse.X) | |||
vertix.Push(Mouse.Y) | |||
DrawingArea1.Refresh | |||
End | |||
Public Sub DrawingArea1_Draw() | |||
If vertix.Count == 0 Then Return | If vertix.Count == 0 Then Return | ||
With Paint | With Paint | ||
<FONT Color=gray>' ''Disegna un punto sul primo clic con il puntatore del mouse:''</font> | <FONT Color=gray>' ''Disegna un punto sul primo clic con il puntatore del mouse:''</font> | ||
.Arc(vertix[0], vertix[1], 1, Rad(0), Rad(360)) | .Arc(vertix[0], vertix[1], 1, Rad(0), Rad(360)) | ||
. | .Fill | ||
If vertix.Count < 4 Then | If vertix.Count < 4 Then | ||
.End | .End | ||
| Riga 18: | Riga 45: | ||
Endif | Endif | ||
<FONT Color=gray>' ''Se il vettore "vertix" ha almeno 4 elementi, è possibile disegnare il primo lato:''</font> | <FONT Color=gray>' ''Se il vettore "vertix" ha almeno 4 elementi, è possibile disegnare il primo lato:''</font> | ||
.MoveTo(vertix[0], vertix[1]) | <FONT Color=#B22222>.MoveTo</font>(vertix[0], vertix[1]) | ||
.LineTo(vertix[2], vertix[3]) | <FONT Color=#B22222>.LineTo</font>(vertix[2], vertix[3]) | ||
If vertix.Count == 6 Then | If vertix.Count == 6 Then | ||
<FONT Color=gray>' ''Se il vettore "vertix" ha 6 elementi, è possibile disegnare il secondo e il terzo lato:''</font> | <FONT Color=gray>' ''Se il vettore "vertix" ha 6 elementi, è possibile disegnare il secondo e il terzo lato:''</font> | ||
.LineTo(vertix[4], vertix[5]) | <FONT Color=#B22222>.LineTo</font>(vertix[4], vertix[5]) | ||
.LineTo(vertix[0], vertix[1]) | <FONT Color=#B22222>.LineTo</font>(vertix[0], vertix[1]) | ||
Endif | Endif | ||
.Stroke <FONT Color=gray>' ''Se si preferisce un triangolo "pieno", usare il Metodo ".Fill" | .Stroke <FONT Color=gray>' ''Se si preferisce un triangolo "pieno", usare il Metodo "'''.Fill'''"''</font> | ||
. | End With | ||
End | |||
===Usando il Metodo ".Polygon()" della Classe "Paint"=== | |||
In quest'altra modalità - più breve della precedente - i punti impostati con il mouse saranno passati come array al Metodo ".Polygon()" della Classe "Paint" per disegnare il triangolo prescelto. | |||
Private DrawingArea1 As DrawingArea | |||
Private vertix As New Short[] | |||
Public Sub _new() | |||
With Me | |||
.Move(0, 0, Screen.AvailableWidth, Screen.AvailableHeight) | |||
.Arrangement = Arrange.Fill | |||
End With | End With | ||
With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1" | |||
.Background = Color.White | |||
End With | |||
End | |||
Public Sub DrawingArea1_MouseUp() | |||
<FONT Color=gray>' ''Consente di disegnare un nuovo triangolo:''</font> | <FONT Color=gray>' ''Consente di disegnare un nuovo triangolo:''</font> | ||
If vertix.Count == 6 Then vertix = New Short[] | If vertix.Count == 6 Then vertix = New Short[] | ||
vertix.Push(Mouse.X) | vertix.Push(Mouse.X) | ||
vertix.Push(Mouse.Y) | vertix.Push(Mouse.Y) | ||
DrawingArea1.Refresh | DrawingArea1.Refresh | ||
''' | End | ||
Public Sub DrawingArea1_Draw() | |||
If vertix.Count == 0 Then Return | |||
Dim b As Byte | |||
With Paint | |||
<FONT Color=gray>' ''Disegna in sequenza un punto per ciascun vertice impostato del triangolo:''</font> | |||
For b = 0 To vertix.Max Step 2 | |||
.Arc(vertix[b], vertix[b + 1], 1, Rad(0), Rad(360)) | |||
.Fill | |||
Next | |||
If vertix.Count == 6 Then | |||
<FONT Color=#B22222>.Polygon</font>(vertix) | |||
.Stroke <FONT Color=gray>' ''Se si preferisce un triangolo "pieno", usare il Metodo ".Fill"''</font> | |||
Endif | |||
End With | |||
End | |||
Versione attuale delle 12:57, 10 ago 2025
Per disegnare in una DrawingArea un singolo "Triangolo", impostando i suoi vertici con il clic del mouse, sono possibili almeno un paio di modalità.
Usando i Metodi ".MoveTo()" e ".LineTo()" della Classe "Paint"
Con questa modalità i lati del triangolo saranno disegnati dalle linee create dai Metodi ".MoveTo()" e ".LineTo()" della Classe "Paint".
Private DrawingArea1 As DrawingArea
Private vertix As New Short[]
Public Sub _new()
With Me
.Move(0, 0, Screen.AvailableWidth, Screen.AvailableHeight)
.Arrangement = Arrange.Fill
End With
With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
.Background = Color.White
End With
End
Public Sub DrawingArea1_MouseUp()
' Consente di disegnare un nuovo triangolo:
If vertix.Count == 6 Then vertix = New Short[]
vertix.Push(Mouse.X)
vertix.Push(Mouse.Y)
DrawingArea1.Refresh
End
Public Sub DrawingArea1_Draw()
If vertix.Count == 0 Then Return
With Paint
' Disegna un punto sul primo clic con il puntatore del mouse:
.Arc(vertix[0], vertix[1], 1, Rad(0), Rad(360))
.Fill
If vertix.Count < 4 Then
.End
Return
Endif
' Se il vettore "vertix" ha almeno 4 elementi, è possibile disegnare il primo lato:
.MoveTo(vertix[0], vertix[1])
.LineTo(vertix[2], vertix[3])
If vertix.Count == 6 Then
' Se il vettore "vertix" ha 6 elementi, è possibile disegnare il secondo e il terzo lato:
.LineTo(vertix[4], vertix[5])
.LineTo(vertix[0], vertix[1])
Endif
.Stroke ' Se si preferisce un triangolo "pieno", usare il Metodo ".Fill"
End With
End
Usando il Metodo ".Polygon()" della Classe "Paint"
In quest'altra modalità - più breve della precedente - i punti impostati con il mouse saranno passati come array al Metodo ".Polygon()" della Classe "Paint" per disegnare il triangolo prescelto.
Private DrawingArea1 As DrawingArea
Private vertix As New Short[]
Public Sub _new()
With Me
.Move(0, 0, Screen.AvailableWidth, Screen.AvailableHeight)
.Arrangement = Arrange.Fill
End With
With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
.Background = Color.White
End With
End
Public Sub DrawingArea1_MouseUp()
' Consente di disegnare un nuovo triangolo:
If vertix.Count == 6 Then vertix = New Short[]
vertix.Push(Mouse.X)
vertix.Push(Mouse.Y)
DrawingArea1.Refresh
End
Public Sub DrawingArea1_Draw()
If vertix.Count == 0 Then Return
Dim b As Byte
With Paint
' Disegna in sequenza un punto per ciascun vertice impostato del triangolo:
For b = 0 To vertix.Max Step 2
.Arc(vertix[b], vertix[b + 1], 1, Rad(0), Rad(360))
.Fill
Next
If vertix.Count == 6 Then
.Polygon(vertix)
.Stroke ' Se si preferisce un triangolo "pieno", usare il Metodo ".Fill"
Endif
End With
End