예제 #1
0
        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);
        }
예제 #2
0
        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);
        }