Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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" ?

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
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 :-)

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. '...


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:

PM Quote