Angenommen, Sie haben bereits den Datensatz, den Sie zeichnen möchten, und die Karte, auf die Sie plotten möchten, können Sie mit der Erstellung einer Intensitätskarte beginnen: einem Raster von Gleitkommawerten, das proportional zur endgültigen Karte ist (sofern die Karten vorhanden sind) sind klein genug, 1: 1 ist wohl ok). Initialisieren Sie das gesamte Array auf 0.
Dann gehen Sie durch jeden Punkt, den Sie zeichnen möchten, ordnen ihn dem Koordinatenraum der Intensitätskarte zu (normalerweise sollte dies eine einfache Skalierungsoperation sein) und zeichnen dann einen "Fleck" in der Intensitätskarte, die an dieser Position zentriert ist.
Ein grundlegender "Ausblendeffekt" kann darin bestehen, die Intensität am Ausblendpunkt plus einen gewissen Radius um einen kleinen Betrag zu erhöhen. Komplexere Implementierungen können die vorhandene Intensität auslesen und einen größeren Abnahmeradius verwenden, je intensiver der Blip-Punkt bereits ist. Sie können mit dem Blip-Plotter experimentieren, um eine Implementierung zu finden, die Ihnen gefällt.
Sobald Sie eine Intensitätskarte haben, können Sie die Intensität an jedem einzelnen Punkt als 1D-Nachschlag in einem Farbverlauf verwenden, um die gewünschte visuelle Wirkung zu erzielen am häufigsten gesehen). Sie sollten diese Farbsuche durchführen, während Sie die Intensitätskarte auf Ihr endgültiges Diagramm übertragen (natürlich nach Bedarf neu skalieren, um Größenunterschiede in der Intensitätskarte gegenüber dem endgültigen Bild zu berücksichtigen).
Dies sollte für eine grundlegende Implementierung ausreichen, es besteht jedoch Optimierungsbedarf. Beispielsweise wird die Intensitätskarte nicht normalisiert, sodass Sie sie möglicherweise neu normalisieren müssen (wahrscheinlich langsam) oder die maximale Intensität verfolgen müssen, während Sie jeden Blip zeichnen, damit Sie die Renormalisierung einer einzelnen Intensität gleichzeitig durchführen können Sie machen die Umfärbung. Darüber hinaus ist es möglich, dass die Verteilung Ihrer Werte so ist, dass das Speichern des gesamten Koordinatenraums der Karte nicht speichereffizient ist, und Sie möchten möglicherweise eine alternative Lösung verwenden, bei der kein großer Teil des Speichers vorab zugewiesen wird das wird meist leer sein.
Wenn Sie im Voraus über genügend Daten verfügen, um die minimalen und maximalen Intensitäten abzufragen, die Sie im Datensatz erwarten, können Sie eine Renormierung vermeiden - im Grunde genommen, wenn Sie eine Zuordnung zwischen (X, Y, Z) und der Zahl " Treffer "der zu diesem Zeitpunkt aufgezeichneten Daten - das können Sie in das System integrieren, das die Daten sammelt , um den Mapping-Teil zu optimieren.
Da es sich bei der Intensitätskarte im Wesentlichen nur um ein Graustufenbild handelt, können Sie diese Art von System auf einfache Weise als Prototyp verwenden, um eine Bitmap für die Intensitätskarte und die Zeichnungs-API Ihrer Wahl (z. B. System.Drawing
in C #) zum Plotten von teilweise transparenten Kreisen zu verwenden eine Intensitätskarte erstellen. Es sieht nicht gut aus, ist aber funktional.