private bool SolveValueAccurate(PointLineSeries series, double xValue, out double yValue) { yValue = 0; LineSeriesValueSolveResult lssvs = series.SolveYValueAtXValue(xValue); if (lssvs.SolveStatus == LineSeriesSolveStatus.OK) { //PointLineSeries may have two or more points at same X value. If so, center it between min and max yValue = (lssvs.YMax + lssvs.YMin) / 2.0; return(true); } else { return(false); } }
private int GetNearestPointIndex(PointLineSeries series, double xValue) { double x = 0; double y = 0; double yValue = 0; int index = 0; LineSeriesValueSolveResult lssvs = series.SolveYValueAtXValue(xValue); if (lssvs.SolveStatus == LineSeriesSolveStatus.OK) { //PointLineSeries may have two or more points at same X value. If so, center it between min and max yValue = (lssvs.YMax + lssvs.YMin) / 2.0; series.SolveNearestDataPointByValue(xValue, yValue, out x, out y, out index); return(index); } else { return(-1); } }