代码之家  ›  专栏  ›  技术社区  ›  Trax

Oxyplot从“X轴值”C中查找“Y轴值”#

  •  0
  • Trax  · 技术社区  · 7 年前

    例如,我想从 TimeSpan(0,0,0,1).

    1 回复  |  直到 7 年前
        1
  •  2
  •   Anu Viswan    7 年前

    我不太确定这是最有效的方法,但是这里有一个关于如何从X中找到Y值的建议。请注意,这不是100%经过测试的代码,但是您可以从中得到想法的要点。

    Slope = (y2-y2)/(x2-x1)
    

    假设你有一个轴作为直线轴,另一个轴作为时间轴,那么你就给出了你需要找到Y的时间轴。

    var timeSpanToSearch = new TimeSpan(8, 30, 0);
    var timeSpanToSearchAsDouble = TimeSpanAxis.ToDouble(timeSpanToSearch);
    var series = MyModel.Series.First() as LineSeries;
    double result = 0;
    
    // If the point is a defined point, you can find Y easily
    if (series.Points.Any(x => x.X.Equals(timeSpanToSearchAsDouble)))
    {
        result = series.Points.First(x => x.X.Equals(timeSpanToSearchAsDouble)).Y;
    }
    else
    {
        var floorValue = series.Points.Where(x => x.X < timeSpanToSearchAsDouble).Last();       
        var ceilingValue = series.Points.Where(x => x.X > timeSpanToSearchAsDouble).First();
    
        var slope = (ceilingValue.Y - floorValue.Y) / (ceilingValue.X - floorValue.X);
        result = slope * (timeSpanToSearchAsDouble - floorValue.X) + floorValue.Y;
    }            
    
    推荐文章