![]() |
Multimedia »
General Graphics »
General
Beginner
License: The Code Project Open License (CPOL)
Create temperature maps with 2D Voronoi diagramsBy Maxim_BarsukA practicle application of 2D Voronoi diagrams. |
C# (C# 2.0, C# 3.0), Windows (WinXP), .NET (.NET 2.0, .NET 3.0, .NET 3.5), Win32, Visual Studio (VS2008), GDI+, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
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.
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.
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).
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 20 Nov 2008 Editor: Smitha Vijayan |
Copyright 2008 by Maxim_Barsuk Everything else Copyright © CodeProject, 1999-2009 Web20 | Advertise on the Code Project |