Я пытаюсь нарисовать линию тренда на графике в живых диаграммах, используя 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;
}