Сделайте сложный график, показывающий сложный интерес к C#

Пример Показывать сложный интерес на 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 и максимальным месячным графиком, код составляет текст всплывающей подсказки. Затем, если текст отличается от ранее отображаемого текста, метод отображает его.

Источник: http://csharphelper.com/blog/2016/06/make-a-stacked-graph-showing-compound-interest-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector