Сделайте сложный график, показывающий сложный интерес к C#
Пример
Другими словами, общая сумма процентов по счету в данном месяце - это высота розовой секции в этом месяце. Точно так же общая сумма инвестиций до данного месяца - это высота зеленого участка в этом месяце. Общий баланс в счете - это высота всего графика от красной кривой до нижней.
Этот пример отличается от предыдущего несколькими способами. Сначала он сохраняет только общий баланс и общий объем взносов в каждом месяце. Он использует эти значения для рисования графика. Общий баланс указывает, где должна быть нарисована зона розового (сложного интереса). Общий вклад указывает, где должна быть нарисована зеленая кривая.
Второе различие между этой программой и предыдущей заключается в том, как программа отображает всплывающие подсказки. В предыдущей версии вам нужно переместить указатель мыши на точку данных, такую как общий процентный процент или баланс в течение определенного месяца, чтобы увидеть значение в подсказке.
В этом примере используется X-позиция мыши, чтобы определить, какой месяц она представляет. Затем он отображает всплывающую подсказку, дающую вклады, сложные проценты и общий баланс в этом месяце. Он также рисует вертикальную линию, чтобы отметить месяц на графике.
Следующий код показывает, как программа отображает всплывающую подсказку.
// Координата X положения мыши. private int MouseX = -1; // Отображение значений ближайшего месяца. private void picGraph_MouseMove(object sender, MouseEventArgs e) { if (Transform == null) return; if (Balance.Count < 3) return; // Найдите месяц, ближайший к мыши. PointF[] points = { new PointF(e.X, 0) }; InverseTransform.TransformPoints(points); int month = (int)Math.Round(points[0].X); string tip = ""; if ((month >= 0) && (month < Balance.Count - 1)) { float interest = Balance[month].Y - Contributions[month].Y; tip = "Month: " + month.ToString() + "\nContributions: " + Contributions[month].Y.ToString("C") + "\nInterest: " + interest.ToString("C") + "\nTotal: " + Balance[month].Y.ToString("C"); MouseX = e.X; } else { MouseX = -1; } // Отобразите новый подсказку. if (tip != tipAmount.GetToolTip(picGraph)) { tipAmount.SetToolTip(picGraph, tip); Console.WriteLine("[" + tip + "]"); picGraph.Refresh(); } }
Этот метод использует обратное преобразование графики для преобразования координаты X мыши в число месяцев. Если месяц находится между 0 и максимальным месячным графиком, код составляет текст всплывающей подсказки. Затем, если текст отличается от ранее отображаемого текста, метод отображает его.