Якщо припустити, що у вас є вже встановлений набір даних, який ви хочете побудувати, і карту, на яку ви хочете побудувати його, ви можете почати, створивши карту інтенсивності: сітку значень з плаваючою комою, пропорційну в межах до кінцевої карти (якщо карти досить малі, 1: 1, мабуть, добре). Ініціалізуйте весь масив до 0.
Потім ви проходите через кожну точку, яку ви хочете побудувати, нанесіть її на координатний простір карти інтенсивності (що, як правило, має бути простою операцією зі шкалою), а потім побудуйте "блип" у карті інтенсивності, зосередженій у цьому положенні.
Основний "блип" може просто полягати в збільшенні інтенсивності в точці ковзання плюс деякому радіусі на невелику кількість. Більш складні реалізації можуть зчитувати наявну інтенсивність, і використовувати більший радіус випадання, тим інтенсивніше вже точка зсуву. Ви можете поекспериментувати з графічним графіком, щоб знайти реалізацію, яка вам подобається.
Коли ви маєте карту інтенсивності, ви можете використовувати інтенсивність у кожній окремій точці як 1D пошук у кольоровий градієнт, який дозволить вам досягти бажаного візуального впливу (саме так ви можете отримати різнобарвні результати, які є найчастіше спостерігається). Ви повинні зробити цей пошук кольорів під час перенесення карти інтенсивності на остаточний графік (очевидно, масштабування, як це необхідно для врахування різниці розмірів у карті інтенсивності порівняно з кінцевим зображенням).
Цього має бути достатньо для базової реалізації, але є можливість для оптимізації. Наприклад, карта інтенсивності не буде нормалізована, тому вам може знадобитися перенормувати її (можливо, повільно) або відслідковувати максимальну інтенсивність під час складання кожного пропуску, щоб ви могли одночасно виконати перенормування індивідуальної інтенсивності ви робите реколоризацію. Крім того, можливо, що розподіл ваших значень такий, що зберігати весь простір координат карти неефективно, і ви можете скористатися альтернативним рішенням, яке не передбачає попереднього розміщення великого куса пам'яті. що буде здебільшого порожнім.
Якщо заздалегідь у вас є достатня кількість даних для запиту мінімальної та максимальної інтенсивності, яку ви очікуєте побачити в наборі даних, ви можете уникнути необхідності взагалі перенорматизувати - в основному, якщо у вас є деяка карта між (X, Y, Z) на кількість " звернень "до намічених даних, які відбулися в цей момент, - це те, що ви можете вбудувати в систему, яка збирає дані, які допоможуть вам оптимізувати частину карти.
Оскільки карта інтенсивності - це, по суті, зображення сірого масштабу - це дуже простий спосіб прототипувати подібну систему, щоб використовувати растрову карту для інтенсивності карти та вашого вибору API вибору (наприклад, System.Drawing
у C #) для побудови графіків частково прозорих кіл скласти карту інтенсивності. Це виглядає не найкраще, але його функціонал.