public float[,] out_matrix(float[,] minmax, float grid_spacing) //输出外包矩形的四角坐标 { float[,] out_m = new float[4, 2]; //得到外包矩形的四角坐标 out_m[0, 0] = minmax[0, 0]; out_m[0, 1] = minmax[0, 1]; out_m[1, 0] = minmax[0, 0]; out_m[1, 1] = minmax[1, 1]; out_m[2, 0] = minmax[1, 0]; out_m[2, 1] = minmax[1, 1]; out_m[3, 0] = minmax[1, 0]; out_m[3, 1] = minmax[0, 1]; double m = (minmax[1, 0] - minmax[0, 0]) / grid_spacing, n = (minmax[1, 1] - minmax[0, 1]) / grid_spacing; for (int i = 0; i < (minmax[1, 0] - minmax[0, 0]) / grid_spacing; i++) //得到每个格网中心点的坐标 { for (int j = 0; j < (minmax[1, 1] - minmax[0, 1]) / grid_spacing; j++) { grid_point p = new grid_point(); p.x = minmax[0, 0] + i * grid_spacing + grid_spacing / 2; p.y = minmax[0, 1] + j * grid_spacing + grid_spacing / 2; p.i = 0; grid_p.Add(p); } } return(out_m); }
int judge(grid_point a, given_point b, given_point c) //判断点a是否在b—c线的左边 { double m = (c.X - b.X) / (c.Y - b.Y) * (a.y - b.Y) + b.X; if (m > a.x) { return(1); } return(0); }