public RectangleF GetPosRect(int pos) { float x = pos * UnitSize.Width; float y = drawingArea.Height - arrayToDraw.Get(pos) * UnitSize.Height; float w = UnitSize.Width; float h = drawingArea.Height - y; return(new RectangleF(x, y, w, h)); }
static void MergeSortRecursion(SortingArray array, int[] temp, int left, int right) { if (left < right) { int len = right - left + 1; int mid = left + len / 2; MergeSortRecursion(array, temp, left, mid - 1); MergeSortRecursion(array, temp, mid, right); int p1 = left; int p2 = mid; for (int i = 0; i < len; i++) { bool first = true; if ((p1 >= mid) | (p2 <= right && array.IsBigger(p1, p2))) { first = false; } if (first) { temp[i] = array.Get(p1); p1++; } else { temp[i] = array.Get(p2); p2++; } Updated(array); } for (int i = 0; i < len; i++) { array.Modify(left + i, temp[i]); Updated(array); } } }
static Color GetDefaultColor(SortingArray array, int pos) { switch (style) { case DrawingStyle.Default: return(DefaultDefaultColor); case DrawingStyle.Rainbow: return(RainbowDefaultColor(array.Get(pos), array.Length - 1)); case DrawingStyle.DistanceBased: return(DistanceDefaultColor(array.DistanceToSortedPosition(pos), array.Length)); case DrawingStyle.Monochrome: return(Color.LightSlateGray); case DrawingStyle.Custom: return(CustomDefaultColor); default: return(Color.WhiteSmoke); } }
static Color GetSelectedColor(SortingArray array, int pos) { switch (style) { case DrawingStyle.Default: return(DefaultSelectedColor); case DrawingStyle.Rainbow: return(RainbowSelectedColor(array.Get(pos), array.Length - 1)); case DrawingStyle.DistanceBased: return(DistanceSelectedColor(array.DistanceToSortedPosition(pos), array.Length)); case DrawingStyle.Monochrome: return(Color.LightGray); case DrawingStyle.Custom: return(CustomSelectedColor); default: return(Color.LightGray); } }
static Color GetSpecialColor(SortingArray array, int pos) { switch (style) { case DrawingStyle.Default: return(DefaultSpecialColor); case DrawingStyle.Rainbow: return(RainbowSpecialColor(array.Get(pos), array.Length - 1)); case DrawingStyle.DistanceBased: return(DistanceSpecialColor()); case DrawingStyle.Monochrome: return(Color.White); case DrawingStyle.Custom: return(CustomSpecialColor); default: return(Color.Gray); } }