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.

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

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.

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
PM