Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected override void FillDataSeries(IDataSeries<double, double> dataSeries, IEnumerable<ChartPoint> chartPoints)
- {
- base.FillDataSeries(dataSeries, chartPoints);
- for (int i = 0; i < dataSeries.Count; i++)
- if (double.IsNaN(dataSeries.YValues[i]))
- dataSeries.RemoveAt(i);
- }
- if (series is XyScatterRenderableSeries xyScatterRenderableSeries)
- {
- double unitsPerPixel;
- if (isHorizontalTrack)
- {
- mousePoint.Y =
- yCalc.GetCoordinate(series.GetInterpolatedValue(xCalc.GetDataValue(mousePoint.X)));
- unitsPerPixel = Math.Abs(xyScatterRenderableSeries.CurrentRenderPassData.XCoordinateCalculator.GetDataValue(mousePoint.X + 1) -
- xyScatterRenderableSeries.CurrentRenderPassData.XCoordinateCalculator.GetDataValue(mousePoint.X));
- }
- else
- {
- mousePoint.X =
- yCalc.GetCoordinate(series.GetInterpolatedValue(xCalc.GetDataValue(mousePoint.Y)));
- unitsPerPixel = Math.Abs(xyScatterRenderableSeries.CurrentRenderPassData.XCoordinateCalculator.GetDataValue(mousePoint.Y + 1) -
- xyScatterRenderableSeries.CurrentRenderPassData.XCoordinateCalculator.GetDataValue(mousePoint.Y));
- }
- var hitTestInfo = xyScatterRenderableSeries.HitTest(mousePoint);
- var pointMarkerRadius = xyScatterRenderableSeries.PointMarker == null ? 0 :
- Math.Max(xyScatterRenderableSeries.PointMarker.Width, xyScatterRenderableSeries.PointMarker.Height) / 2;
- var hitRadius = (BaseRenderableSeries.DefaultHitTestRadius + xyScatterRenderableSeries.StrokeThickness / 2d + pointMarkerRadius) * unitsPerPixel;
- if (Math.Abs(Convert.ToDouble(hitTestInfo.XValue) - xValue) > hitRadius) return info;
- return hitTestInfo;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement