public void Calc(Cube5 cube) { //if (cube.IsCalcMinMax == false) //{ // new CalcA().Calc(cube); //} }
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); }
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); }
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; }
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); } }
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); }
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); }
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; }
public void Calc(Cube5 cube) { //if (cube.IsCalcCount == false) new CalcB().Calc(cube); }
public void Calc(Cube5 cube) { cube.Count = cube.Pixels.Length; cube.IsCalcCount = true; }