Example #1
0
        private static double area_of_influence_region(NCGrid_Distribution A, int i, int j)
        {
            int imax = A.Xcount - 1;
            int jmax = A.Ycount - 1;

            double[]    x    = new double[4];
            double[]    y    = new double[4];
            NCAMRNode[] grid =
            {
                A.GetFake(i - 1, j + 1),
                A.GetFake(i,     j + 1),
                A.GetFake(i + 1, j + 1),
                A.GetFake(i - 1, j),
                A.GetFake(i,     j),
                A.GetFake(i + 1, j),
                A.GetFake(i - 1, j - 1),
                A.GetFake(i,     j - 1),
                A.GetFake(i + 1, j - 1)
            };
            NCAMRNode[] poly =
            {
                xyavg(grid[3], grid[4], grid[6], grid[7]),
                xyavg(grid[4], grid[5], grid[7], grid[8]),
                xyavg(grid[1], grid[2], grid[4], grid[5]),
                xyavg(grid[0], grid[1], grid[3], grid[4])
            };
            for (int z = 0; z < poly.Length; z++)
            {
                x[z] = poly[z].X;
                y[z] = poly[z].Y;
            }
            return(quad_area(x, y));
        }