Voronoi图广泛应用在几何学、地理学、晶体学、信息系统等学科之中。Voronoi图是由图中各个相邻点连线的中垂线组成的连续多边形组成。图中的各个点归属于该点最邻近的多边形,如下图所示:
Voronoi图相应的C语言实现代码如下:
#include
#include
#include
#define N_SITES 150
double site[N_SITES][2];
unsigned char rgb[N_SITES][3];
int size_x = 640, size_y = 480;
inline double sq2(double x, double y)//square function
{
return x * x + y * y;
}
#define for_k for (k = 0; k < N_SITES; k++)//define for_k
int nearest_site(double x, double y) //get the nearest site id
{
int k, ret = 0;
double d, dist = 0;
for_k {
d = sq2(x - site[k][0], y - site[k][1]);