Click here to Skip to main content
15,358,239 members
Articles / Desktop Programming / Win32
Posted 20 Nov 2008


31 bookmarked

Create temperature maps with 2D Voronoi diagrams

Rate me:
Please Sign up or sign in to vote.
4.79/5 (11 votes)
20 Nov 2008CPOL1 min read
A practicle application of 2D Voronoi diagrams.


Voronoi Diagram is a useful mathematic abstraction which has many applications. You can read about it here and here. You can also see some examples here: Visualization of the 2D Voronoi Diagram and the Delaunay Triangulation and Fortune's Voronoi algorithm implemented in C#.


Yesterday, I solved a problem: we have many weather centers and each weather center has coordinates (X, Y) and current temperature value (T). The goal of our solution was to create a temperature map.

Using the code

The structure TemperatureLocation stores data about the weather center: coordinates X, Y, and the temperature value.

public struct TemperatureLocation
    private double x;

    public double X
        get { return x; }
        set { x = value; }
    private double y;

    public double Y
        get { return y; }
        set { y = value; }
    private double t;

    public double T
        get { return t; }
        set { t = value; }

    public TemperatureLocation(double x, double y, double t)
        this.x = x;
        this.y = y;
        this.t = t;

    public double GetDistance(TemperatureLocation tl)
        return Math.Sqrt((this.x - tl.x) * (this.x - tl.x) + 
                         (this.y - tl.y) * (this.y - tl.y));

The class VoronoiTemparature is designed to create temperature maps. We load data about weather center, the parameters of the image (the color of cold and hot temperatures), and get the image of the map. For a more realistic map (without accurate Voronoi cells), use a simple smooth effect. The result of the test creation map can be seen on Figure 1.


Figure 1. Temperature map.

Points of interest

Creating temperature maps is really a problem in meteorology. For a good mapping, we must use interpolation algorithms (for a smooth isotherm). It is one of many Voronoi diagram applications (Voronoi died exactly 100 years ago, on 11-19-1908).


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer
Russian Federation Russian Federation
Hello! My name is Maxim Subbotin.

Now I work in sphere of web-development. I'm interesting researches in SEO field.
If you interesting, you can see this tool:


Comments and Discussions

Generalpls help Pin
daskan7-Aug-09 23:35
Memberdaskan7-Aug-09 23:35 
Generalimplementation in SharMap Pin
agelospanagiotakis15-Feb-09 3:23
Memberagelospanagiotakis15-Feb-09 3:23 
GeneralRe: implementation in SharMap Pin
Maxim_Barsuk15-Feb-09 21:49
MemberMaxim_Barsuk15-Feb-09 21:49 
GeneralRe: implementation in SharMap Pin
agelospanagiotakis16-Feb-09 2:04
Memberagelospanagiotakis16-Feb-09 2:04 
GeneralRe: implementation in SharMap Pin
agelospanagiotakis16-Feb-09 2:09
Memberagelospanagiotakis16-Feb-09 2:09 
GeneralRe: implementation in SharMap Pin
Maxim_Barsuk16-Feb-09 22:35
MemberMaxim_Barsuk16-Feb-09 22:35 
GeneralRe: implementation in SharMap Pin
agelospanagiotakis6-Mar-09 12:11
Memberagelospanagiotakis6-Mar-09 12:11 
QuestionBlack areas are missing? Pin
nnononnnon14-Dec-08 7:26
Membernnononnnon14-Dec-08 7:26 
AnswerRe: Black areas are missing? Pin
Maxim_Barsuk16-Dec-08 18:56
MemberMaxim_Barsuk16-Dec-08 18:56 
GeneralInteresting... Pin
Paul Conrad20-Nov-08 9:47
professionalPaul Conrad20-Nov-08 9:47 
Nice article and very interesting.

"The clue train passed his station without stopping." - John Simmons / outlaw programmer

"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon

"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham

GeneralDate overflow Pin
laserbaronen20-Nov-08 1:50
Memberlaserbaronen20-Nov-08 1:50 
GeneralRe: Date overflow Pin
Maxim_Barsuk20-Nov-08 4:26
MemberMaxim_Barsuk20-Nov-08 4:26 
GeneralRe: Date overflow Pin
Skymir20-Jul-09 4:25
MemberSkymir20-Jul-09 4:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.