Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Buongiorno a tutti!
Visto che in precedenza siete stati così gentili ad aiutarmi ci riprovo ancora un volta.
Il problema è (credo) semplice ma, essendo un principiante, ritengo che mi stia sfuggendo qualcosa.
Io dovrei in VB.NET popolare due vettori separati all'interno di una subroutine, chamiamoli: punti_x() e punti_y()
Una volta creati e popolati si vorrebbe che fossero uniti in un insieme di punti rappresentando un poligono all'interno di un pannello.
Orbene: quanto descritto funziona se tutto il codice viene inserito all'interno di Private Sub Panel1_Paint ma quando cerco di spostare il punto di creazione del vettore una bella X rossa mi comunica che non viene effettuata correttamente la riproduzione del poligono. Il codice che si vorrebbe fare funzionare è il seguente:
Codice sorgente - presumibilmente VB.NET
PublicClass Form1
Public punti_x()AsDouble
Public punti_y()AsDouble
Public n AsInteger
PrivateSub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)Handles Panel1.Paint
'Fusione dei due vettori dei punti X e Y in un unico insieme di punti da renderizzare
N =UBound(punti_x)
Dim cp(N - 1)As Point
For pt = 0 To N - 1
cp(pt).X= punti_x(pt)
cp(pt).Y= punti_y(pt)
Next
Dim penna AsNew Pen(Color.Maroon, 2)
Dim pennello AsNew SolidBrush(Color.Lime)
e.Graphics.DrawPolygon(penna, cp)
e.Graphics.FillPolygon(pennello, cp)
EndSub
PublicSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click
'INIZIA LA COMPOSIZIONE DEI 2 VETTORI CHE RICEVONO SEPARATAMENTE I VALORI DI X E Y
n = 4
ReDim Preserve punti_x(n)
ReDim Preserve punti_y(n)
'punto 1
punti_x(0)=0
punti_y(0)=0
'punto 2
punti_x(1)=0
punti_y(1)=50
'punto 3
punti_x(2)=50
punti_y(2)=50
'punto 4
punti_x(3)=50
punti_y(3)=0
'FINE DELLA COMPOSIZIONE DEI VETTORI
'--------------------------------------------
EndSub
EndClass
Dove sto sbagliando?
Grazie mille
()
Newbie
Messaggi: Iscritto:
3
Postato alle 20:51
Domenica, 30/10/2011
All'inizio del Paint scrivi
If punti_x Is Nothing Then Return
e alla fine del Click
Panel1.Refresh()
Grazie mille, funziona! Grazie ancora... - maikarki - 30/10/11 21:21