Beispiel #1
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;
        }
Beispiel #2
0
        private (Cube1 cubeA, Cube1 cubeB) SplitA(Cube1 cube)
        {
            int mid = (int)((cube.Max + cube.Min) / 2.0);

            return(new Cube1(cube.Values.Where((x) => x > mid).ToArray()),
                   new Cube1(cube.Values.Where((x) => x <= mid).ToArray()));
        }
Beispiel #3
0
 public void SplitCube(int count, Cube1 cube)
 {
     while (cube.Cubes.Count < count)
     {
         var c  = SelectA(cube.Cubes);
         var cc = SplitA(c);
         cube.Cubes.Remove(c);
         cube.Cubes.Add(cc.cubeA);
         cube.Cubes.Add(cc.cubeB);
     }
 }
Beispiel #4
0
        private Cube1 SelectA(List <Cube1> cubes)
        {
            int   side = 0;
            Cube1 cube = cubes[0];

            foreach (var item in cubes)
            {
                if (side < item.Max - item.Min)
                {
                    cube = item;
                }
            }
            return(cube);
        }