Ejemplo n.º 1
0
 void calResult(int mul, int add, List <BMNode> BMs)
 {
     for (int i = 0; i < BMs.Count; i++)
     {
         BMNode currNode = BMs[i];
         bayer[currNode.x, currNode.y] *= mul;
         bayer[currNode.x, currNode.y] += add;
     }
 }
Ejemplo n.º 2
0
        void BMGen(int n, int x, int y, List <BMNode> BMs)
        {
            if (n == 0)
            {
                BMNode node = new BMNode(x, y);
                BMs.Add(node);
            }
            else
            {
                List <BMNode> list00 = new List <BMNode>();
                BMGen(n - 1, x, y, list00);
                calResult(4, 0, list00);

                List <BMNode> list11 = new List <BMNode>();
                BMGen(n - 1, x + (1 << (n - 1)), y + (1 << (n - 1)), list11);
                calResult(4, 1, list11);

                List <BMNode> list01 = new List <BMNode>();
                BMGen(n - 1, x, y + (1 << (n - 1)), list01);
                calResult(4, 2, list01);

                List <BMNode> list10 = new List <BMNode>();
                BMGen(n - 1, x + (1 << (n - 1)), y, list10);
                calResult(4, 3, list10);


                foreach (BMNode node in list00)
                {
                    BMs.Add(node);
                }
                foreach (BMNode node in list01)
                {
                    BMs.Add(node);
                }
                foreach (BMNode node in list11)
                {
                    BMs.Add(node);
                }
                foreach (BMNode node in list10)
                {
                    BMs.Add(node);
                }
            }
        }