Supponendo di avere già il set di dati che si desidera tracciare e la mappa in cui si desidera tracciarlo, è possibile iniziare creando una mappa di intensità: una griglia di valori in virgola mobile proporzionale ai limiti della mappa finale (se le mappe sono abbastanza piccoli, 1: 1 probabilmente va bene). Inizializza l'intero array su 0.
Quindi si cammina attraverso ogni punto che si desidera tracciare, mapparlo nello spazio di coordinate della mappa di intensità (che dovrebbe essere un'operazione di scala semplice, normalmente), quindi tracciare un "blip" nella mappa di intensità centrata in quella posizione.
Un "blip" di base potrebbe consistere semplicemente nell'aumentare l'intensità nel punto di blip più un certo raggio di una piccola quantità. Implementazioni più complesse potrebbero leggere l'intensità esistente e utilizzare un raggio di caduta maggiore quanto più intenso è già il blip point. Puoi sperimentare con il plotter blip per trovare un'implementazione che ti piace l'aspetto.
Una volta che hai una mappa dell'intensità puoi usare l'intensità in ogni singolo punto come una ricerca 1D in una sfumatura di colore, che ti permetterà di ottenere l'impatto visivo desiderato (ecco come puoi ottenere i risultati multicolori che sono più comunemente visto). Dovresti fare questa ricerca del colore mentre trasferisci la mappa dell'intensità sulla tua trama finale (riscalando, ovviamente, se necessario per tenere conto delle differenze di dimensioni nella mappa dell'intensità rispetto all'immagine finale).
Questo dovrebbe essere sufficiente per un'implementazione di base, ma c'è spazio per l'ottimizzazione. Ad esempio, la mappa dell'intensità non sarà normalizzata, quindi potrebbe essere necessario rinormalizzarla (probabilmente lenta) o tenere traccia dell'intensità massima mentre tracciate ogni blip, in modo da poter eseguire contemporaneamente la rinormalizzazione di un'intensità individuale stai facendo la ricolorazione. Inoltre, è possibile che la distribuzione dei valori sia tale che non sia efficiente in termini di memoria archiviare l'intero spazio delle coordinate della mappa e potrebbe essere utile utilizzare una soluzione alternativa che non comporta il preallocazione di un grosso blocco di memoria sarà per lo più vuoto.
Se hai abbastanza dati in anticipo per interrogare le intensità minime e massime che ti aspetti di vedere nel set di dati puoi evitare di dover rinormalizzare affatto - fondamentalmente se hai una mappa tra (X, Y, Z) al numero di " hit "dei dati tracciati che si sono verificati a quel punto - è qualcosa che puoi incorporare nel sistema che raccoglie i dati che ti aiuteranno a ottimizzare la porzione di mappatura.
Poiché la mappa dell'intensità è solo, essenzialmente, un'immagine in scala di grigi un modo davvero semplice per prototipare questo tipo di sistema per utilizzare una bitmap per la mappa dell'intensità e l'API di disegno preferita (ad esempio, System.Drawing
in C #) per tracciare cerchi parzialmente trasparenti per produce una mappa di intensità. Non sembra il migliore, ma è funzionale.