Beyond_Beyaan.Utility.CalculateCircle C# (CSharp) Метод

CalculateCircle() публичный статический Метод

public static CalculateCircle ( int radius, int originSize ) : bool[][]
radius int
originSize int
Результат bool[][]
        public static bool[][] CalculateCircle(int radius, int originSize)
        {
            if (originSize < 1)
            {
                return null;
            }
            int size = (radius * 2) + originSize;

            bool[][] grid = new bool[size][];
            for (int i = 0; i < grid.Length; i++)
            {
                grid[i] = new bool[size];
            }

            int f = 1 - radius;
            int ddF_x = 1;
            int ddF_y = -2 * radius;
            int x = 0;
            int y = radius;

            int origin = radius;
            int modifiedOriginSize = originSize - 1;

            for (int i = 0; i < originSize; i++)
            {
                grid[origin + i][origin + radius + modifiedOriginSize] = true;
                grid[origin + i][0] = true;
                grid[origin + radius + modifiedOriginSize][origin + i] = true;
                grid[0][origin + i] = true;
            }

            while (x < y)
            {
                if (f >= 0)
                {
                    y--;
                    ddF_y += 2;
                    f += ddF_y;
                }
                x++;
                ddF_x += 2;
                f += ddF_x;

                grid[origin + modifiedOriginSize + x][origin + modifiedOriginSize + y] = true;
                grid[origin - x][origin + modifiedOriginSize + y] = true;
                grid[origin + modifiedOriginSize + x][origin - y] = true;
                grid[origin - x][origin - y] = true;

                grid[origin + modifiedOriginSize + y][origin + modifiedOriginSize + x] = true;
                grid[origin - y][origin + modifiedOriginSize + x] = true;
                grid[origin + modifiedOriginSize + y][origin - x] = true;
                grid[origin - y][origin - x] = true;
            }

            return grid;
        }