我不太确定这是最有效的方法,但是这里有一个关于如何从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;
}