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 - Disegnare serie di punti con scarto piccolissimo
Forum - C# / VB.NET - Disegnare serie di punti con scarto piccolissimo

Avatar
cosmico (Normal User)
Newbie


Messaggi: 2
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 17:43
Mercoledì, 20/10/2010
Ciao a tutti, sono nuovo del forum e vi ringrazio anticipatamente.
sto scrivento un applicazione che utilizza dati provenienti da un gps ogni 2 decimi di secondo.
Non riesco a visualizzare la traccia in un picture box perchè mi disegna sempre un punto solo poichè lo scarto tra i punti è veramente piccolo. esempio:
Lat1 = "45,464786529541"
Lon1= "7,8694735"


Lat2="45,4644470214844"
Lon2="7,8690352"
Chi mi aiuta?

PM
Avatar
Ale96 (Member)
Pro


Messaggi: 132
Iscritto: 06/04/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 18:17
Mercoledì, 20/10/2010
Se usi la classe graphics per disegnare un punto puoi disegnare una linea le cui coordinate di inizio e fine sono le stesse, inoltre sono di di tipo PointF ovvero una struttura simile a Point che però invece di avere due coordinate di tipo integer ha due coordinate di tipo Single(quindi va bene anche per i numeri con la virgola.) però in base alla risoluzione dello schermo e dell'immagine su cui vuoi disegnare un punto può risultare sempre nello stesso punto, quindi ti consiglio di usare un ingrandimento.


Qualunque bug sufficientemente avanzato è indistinguibile da una caratteristica del software.

Ci sono 10 tipi di persone al mondo: chi capisce il codice binario e chi no.

I veri utenti non usano mai la funzione “Help”.
(tutti anonimi)
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 21:07
Mercoledì, 20/10/2010
non ce la farai mai a visualizzare una distanza di quel genere se lavori normalmente.
devi implementare una funzione per lo zoom, altrimenti la vedo impossibile :)


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
0
Down
V
Segnala al moderatore
Postato alle 17:44
Giovedì, 21/10/2010
Oltre a questo, due dettagli tecnici:
1) I numeri in virgola mobile a precisione singola (Single) hanno solo 23 bit per la mantissa. Se usi numeri vicini a 45 (101101), ti rimangono solo 18 bit per rappresentare la sua parte frazionaria, ossia hai un epsilon minimo di 2^-18, circa 3.8e-6. Quindi l'estensione decimale viene ridotta a 5 cifre.
2) Usando DrawLine con le stesse coordinate di inizio e fine non disegni nulla, indipendentemente dalla precisione delle stesse. Devi disegnare un segmento lungo almeno 1 pixel perché venga rappresentato, ma la misura del pixel varia in base alla scala di Graphics.


"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
Avatar
cosmico (Normal User)
Newbie


Messaggi: 2
Iscritto: 20/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 18:02
Giovedì, 21/10/2010
Grazie per le risposte, avrei pensato di risolverla così ma devo ancora provarci:
confrontare il più grosso con il più piccolo e vedere il primo numero che cambia. elimino tutte le cifre prima e la voro solo con  i rimanenti.
45,2223453
45,2234532

risultato da gestire dei due numeri
23453
34532

è fattibile secondo voi oppure è una cavolata?

Grazie:-?

PM
Avatar
Ale96 (Member)
Pro


Messaggi: 132
Iscritto: 06/04/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 22:02
Giovedì, 21/10/2010
Si certo, basta che hai un immagine con grande ameno 23435 x 34532 pixel (e uno schermo che riesca a farti vedere l'immagine intera XD), oppure puoi più comodamente usare un normale schermo, zoomare in un certo punto usando un immagine più grande e definita per lo zoom e magari indicando all'utente l'area ingrandita tramite una piccola mappa in alto a destra.

Ultima modifica effettuata da Ale96 il 21/10/2010 alle 22:10


Qualunque bug sufficientemente avanzato è indistinguibile da una caratteristica del software.

Ci sono 10 tipi di persone al mondo: chi capisce il codice binario e chi no.

I veri utenti non usano mai la funzione “Help”.
(tutti anonimi)
PM