Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - definire punti di un immagine
Forum - C# / VB.NET - definire punti di un immagine

Avatar
the_angel (Normal User)
Expert


Messaggi: 471
Iscritto: 02/04/2009

Segnala al moderatore
Postato alle 13:51
Martedì, 05/01/2010
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

  1. Dim pts() As Point = { _
  2.     '       New Point(10, 10), _
  3.     '       New Point(200, 100), _
  4.     '       New Point(300, 50), _
  5.     '       New Point(350, 120), _
  6.     '       New Point(240, 260), _
  7.     '       New Point(120, 150), _
  8.     '       New Point(50, 310), _
  9.     '       New Point(70, 190) _
  10.     '   }



funziona...

se li definisco (e per necessità posso farlo solo così, perché non li so a priori)
così

Codice sorgente - presumibilmente VB.NET

  1. Dim punti() As Point = Nothing
  2. punti(n) = New Point(25, 25)
  3. punti(n+1) = New Point(35, 40)
  4. ecc...



Object reference not set to an instance of an object.

come faccio a costruire un array di punti "un po' alla volta" ?


angelogulisano.blogspot.com
PM Quote
Avatar
secretfabios (Normal User)
Rookie


Messaggi: 59
Iscritto: 17/08/2009

Segnala al moderatore
Postato alle 22:20
Martedì, 05/01/2010
Prova cosi :k:
Codice sorgente - presumibilmente VB.NET

  1. Dim punti(0 To 100000) As Point
  2.         Dim n As Integer
  3.         punti(n) = New Point(25, 25)
  4.         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


Segno zodiacale: Lasagna
PM Quote
Avatar
the_angel (Normal User)
Expert


Messaggi: 471
Iscritto: 02/04/2009

Segnala al moderatore
Postato alle 17:22
Mercoledì, 06/01/2010
Testo quotato

Postato originariamente da secretfabios:

Prova cosi :k:
Codice sorgente - presumibilmente VB.NET

  1. Dim punti(0 To 100000) As Point
  2.         Dim n As Integer
  3.         punti(n) = New Point(25, 25)
  4.         punti(n + 1) = New Point(35, 40)



Non credo ke farai poligoni di 100001 punti



grazie mille :-)


angelogulisano.blogspot.com
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:32
Giovedì, 07/01/2010
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

  1. Dim Punti As New List(Of Point)
  2. Punti.Add(New Point(20, 30))
  3. '...



"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
the_angel (Normal User)
Expert


Messaggi: 471
Iscritto: 02/04/2009

Segnala al moderatore
Postato alle 13:55
Venerdì, 08/01/2010
Ah...
però...grazie mille totem, bella soluzione :k:


angelogulisano.blogspot.com
PM Quote