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; }
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())); }
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); } }
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); }