Как иметь наклонную линию на графике в живых графиках - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь нарисовать линию тренда на графике в живых диаграммах, используя windowsForms, и хотя я знаю о LineSeries (или GLineSeries в моем случае), он проходит только через выбранные мной точки. Кто-нибудь знает, как я могу сделать так, чтобы линия продолжалась вечно, как AxisSection, но под углом

Я нашел решение, в котором я вычисляю путь линии по уравнению прямой.

private void extendLineAcrossChart()
    {
        //lines is a list where I keep the indexes the lines I want to extend 
        for(int i = 0; i < lines.Count; i++)
        {
            GLineSeries ls = (GLineSeries)ohlcChart.Series[lines[i]];
            ls.PointGeometry = null;
            extendLineAcrossChart((ChartValues<ObservablePoint>)ohlcChart.Series[lines[i]].Values);
        }
    }

    private void extendLineAcrossChart(ChartValues<ObservablePoint> ChartValues)
    {
        ObservablePoint PointFirst = ChartValues[0];
        double X1 = PointFirst.X;
        double Y1 = PointFirst.Y;
        ObservablePoint PointSecond = ChartValues[ChartValues.Count-1];
        double X2 = PointSecond.X;
        double Y2 = PointSecond.Y;
        double slope = (Y1-Y2) / (X1-X2);
        double coEfficient = Y1 - slope * X1;
        PointFirst.Y = slope * ohlcChart.AxisX[0].ActualMinValue + coEfficient;// Y = mX + n
        PointFirst.X = ohlcChart.AxisX[0].ActualMinValue;
        PointSecond.Y = slope * ohlcChart.AxisX[0].ActualMaxValue + coEfficient;
        PointSecond.X = ohlcChart.AxisX[0].ActualMaxValue;
    }
...