이미 플롯하려는 데이터 세트와이를 플롯하려는 맵이 있다고 가정하면 강도 맵을 작성하여 시작할 수 있습니다. 최종 맵에 대한 경계에 비례하는 부동 소수점 값의 그리드 (맵이있는 경우) 충분히 작습니다. 1 : 1이 좋습니다. 전체 배열을 0으로 초기화하십시오.
그런 다음 플롯하려는 각 점을 살펴보고, 강도 맵의 좌표 공간 (일반적으로 간단한 축척 작업이어야 함)에 매핑 한 다음 해당 위치를 중심으로하는 강도 맵에서 "블립"을 플롯합니다.
기본 "블립"은 블립 포인트의 강도에 약간의 반경을 더한 값으로 증가시키는 것으로 구성 될 수 있습니다. 더 복잡한 구현은 기존 강도를 읽을 수 있으며, 이미 시작점보다 강도가 큰 감쇠 반경을 사용합니다. 블립 플로터로 실험하여 원하는 모양의 구현을 찾을 수 있습니다.
강도 맵이 있으면 각 개별 지점의 강도를 색상 그라디언트에 대한 1D 조회로 사용하여 원하는 시각적 효과를 얻을 수 있습니다. 가장 일반적으로 볼 수 있음). 강도 맵을 최종 플롯으로 전송할 때이 색상 조회를 수행해야합니다 (강도 맵과 최종 이미지의 크기 차이를 설명하기 위해 필요한 경우 크기 조정).
기본 구현에는 충분하지만 최적화 할 여지가 있습니다. 예를 들어, 강도 맵은 정규화되지 않으므로 각 블립을 플로팅 할 때이를 다시 정규화 (아마도 느리게)하거나 최대 강도를 추적해야 할 수 있으므로 개별 강도의 재 정규화를 동시에 수행 할 수 있습니다. 당신은 recolorization을하고 있습니다. 또한 값의 분포가 맵의 전체 좌표 공간을 저장하는 것이 메모리 효율적이지 않을 수 있으며 큰 메모리 덩어리를 미리 할당하지 않는 대체 솔루션을 사용할 수 있습니다 그것은 대부분 비어있을 것입니다.
데이터 세트에서 볼 수있는 최소 및 최대 강도를 쿼리하기에 충분한 데이터가 사전에있는 경우 기본적으로 (X, Y, Z) 사이의 숫자가 " 해당 시점에서 발생한 플롯 된 데이터의 적중 "- 데이터를 수집 하는 시스템에 빌드 할 수 있는 부분으로, 매핑 부분을 최적화하는 데 도움이됩니다.
강도 맵은 본질적으로 회색조 이미지이기 때문에 이러한 종류의 시스템을 프로토 타입하여 강도 맵 및 선택한 드로잉 API (예 : System.Drawing
C #)에 비트 맵을 사용하여 부분적으로 투명한 원을 강도 맵을 생성합니다. 가장 잘 보이지는 않지만 기능적입니다.