Forum - C# / VB.NET
- definire punti di un immagine
the_angel (Normal User)
Expert
Messaggi: 471
Iscritto: 02/04/2009
CIao ragazzi...devi disegnare, per esempio un poligono...
ho un problema nel definire i punti...
se li definisco tutti in una volta così...
Codice sorgente - presumibilmente VB.NET
Dim pts( ) As Point = { _
' New Point(10, 10), _
' New Point(200, 100), _
' New Point(300, 50), _
' New Point(350, 120), _
' New Point(240, 260), _
' New Point(120, 150), _
' New Point(50, 310), _
' New Point(70, 190) _
' }
funziona...
se li definisco (e per necessità posso farlo solo così, perché non li so a priori)
così
Codice sorgente - presumibilmente VB.NET
Dim punti( ) As Point = Nothing
punti( n) = New Point( 25, 25)
punti( n+ 1) = New Point( 35 , 40 )
ecc...
Object reference not set to an instance of an object.
come faccio a costruire un array di punti "un po' alla volta" ?
secretfabios (Normal User)
Rookie
Messaggi: 59
Iscritto: 17/08/2009
Prova cosi
Codice sorgente - presumibilmente VB.NET
Dim punti( 0 To 100000) As Point
Dim n As Integer
punti( n) = New Point( 25, 25)
punti( n + 1) = New Point( 35 , 40 )
Non credo ke farai poligoni di 100001 punti
Ultima modifica effettuata da secretfabios il 05/01/2010 alle 22:22
the_angel (Normal User)
Expert
Messaggi: 471
Iscritto: 02/04/2009
Postato originariamente da secretfabios :
Prova cosi
Codice sorgente - presumibilmente VB.NET
Dim punti( 0 To 100000) As Point
Dim n As Integer
punti( n) = New Point( 25, 25)
punti( n + 1) = New Point( 35 , 40 )
Non credo ke farai poligoni di 100001 punti
grazie mille :-)
Il Totem (Admin )
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
Approccio completamente sbagliato. Utilizzi una gran quantità di memoria inutilmente. E se volessi un poligono da 1000002 punti non potrei farlo, quindi anche inefficiente.
Ecco perchè prendono in giro gli informatici dicendo che per loro 100 (o 100'000 in questo caso) è una buona approssimazione di +Infinito.
La soluzione più corretta è una lista:
Codice sorgente - presumibilmente C# / VB.NET
Dim Punti As New List(Of Point)
Punti.Add(New Point(20, 30))
'...
the_angel (Normal User)
Expert
Messaggi: 471
Iscritto: 02/04/2009
Ah...
però...grazie mille totem, bella soluzione