Example #1
0
 public void Calc(Cube5 cube)
 {
     //if (cube.IsCalcMinMax == false)
     //{
     //    new CalcA().Calc(cube);
     //}
 }
Example #2
0
        public (Cube5 cubeA, Cube5 cubeB) Split(Cube5 cube)
        {
            if (cube.IsCalcCount == false)
            {
                new SelectCube5_ManyPicexls().Calc(cube);
            }
            var pixA = new List <byte>();
            var pixB = new List <byte>();

            byte[] neko = cube.Pixels.OrderBy(x => x).ToArray();

            int mid = neko[neko.Length / 2];

            foreach (var item in cube.Pixels)
            {
                if (item < mid)
                {
                    pixA.Add(item);
                }
                else
                {
                    pixB.Add(item);
                }
            }
            var cuA = new Cube5(pixA.ToArray(), cube.Selecter, cube.Splitter);
            var cuB = new Cube5(pixB.ToArray(), cube.Selecter, cube.Splitter);

            return(cuA, cuB);
        }
Example #3
0
        public (Cube5 cubeA, Cube5 cubeB) Split(Cube5 cube)
        {
            if (cube.IsCalcMinMax == false)
            {
                new SelectCube5_LongSide().Calc(cube);
            }
            var pixA = new List <byte>();
            var pixB = new List <byte>();
            int mid  = (int)((cube.Max + cube.Min) / 2.0);

            foreach (var item in cube.Pixels)
            {
                if (item < mid)
                {
                    pixA.Add(item);
                }
                else
                {
                    pixB.Add(item);
                }
            }
            var cuA = new Cube5(pixA.ToArray(), cube.Selecter, cube.Splitter);
            var cuB = new Cube5(pixB.ToArray(), cube.Selecter, cube.Splitter);

            return(cuA, cuB);
        }
Example #4
0
        public MainWindow()
        {
            InitializeComponent();
            this.Title = this.GetType().Namespace;// this.ToString();

            MyPixels = new byte[PIXELS_COUNT];
            for (int i = 0; i < PIXELS_COUNT; i++)
            {
                MyPixels[i] = (byte)i;
            }
            var r = new Random();

            r.NextBytes(MyPixels);

            var cube = new Cube1(MyPixels);

            cube.SplitCube(3, cube);

            var c3 = new SelecterA3(MyPixels);


            var ccc5 = new Cube5(MyPixels, new SelectCube5_LongSide(), new SplitCube5_SideMid());

            ccc5.ExeGensyoku(8);
            var neko = ccc5.Cubes;

            ccc5 = new Cube5(MyPixels, new SelectCube5_ManyPicexls(), new SplitCube5_Mid());
            ccc5.ExeGensyoku(8);
            neko = ccc5.Cubes;
        }
Example #5
0
 public void ExeGensyoku(int count)
 {
     while (Cubes.Count < count)
     {
         Cube5 ccc = Selecter.Select(this);
         var(cubeA, cubeB) = Splitter.Split(ccc);
         Cubes.Remove(ccc);
         Cubes.Add(cubeA);
         Cubes.Add(cubeB);
     }
 }
Example #6
0
        public Cube5 Select(Cube5 cube)
        {
            Cube5 result = cube.Cubes[0];

            foreach (var item in cube.Cubes)
            {
                if (result.Pixels.Length < item.Pixels.Length)
                {
                    result = item;
                }
            }
            return(result);
        }
Example #7
0
        public Cube5 Select(Cube5 cube)
        {
            Cube5 result = cube.Cubes[0];
            int   length = result.Max - result.Min;

            foreach (var item in cube.Cubes)
            {
                if (length < item.Max - item.Min)
                {
                    result = item;
                }
            }
            return(result);
        }
Example #8
0
        public void Calc(Cube5 cube)
        {
            byte min = byte.MaxValue;
            byte max = byte.MinValue;

            foreach (var item in cube.Pixels)
            {
                if (min > item)
                {
                    min = item;
                }
                if (max < item)
                {
                    max = item;
                }
            }
            cube.Min          = min; cube.Max = max;
            cube.IsCalcMinMax = true;
        }
Example #9
0
 public void Calc(Cube5 cube)
 {
     //if (cube.IsCalcCount == false) new CalcB().Calc(cube);
 }
Example #10
0
 public void Calc(Cube5 cube)
 {
     cube.Count       = cube.Pixels.Length;
     cube.IsCalcCount = true;
 }