Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.15 KB | None | 0 0
  1. protected override void FillDataSeries(IDataSeries<double, double> dataSeries, IEnumerable<ChartPoint> chartPoints)
  2.         {
  3.             base.FillDataSeries(dataSeries, chartPoints);
  4.  
  5.             for (int i = 0; i < dataSeries.Count; i++)
  6.                 if (double.IsNaN(dataSeries.YValues[i]))
  7.                     dataSeries.RemoveAt(i);
  8.         }
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. if (series is XyScatterRenderableSeries xyScatterRenderableSeries)
  21.                 {
  22.                     double unitsPerPixel;
  23.                     if (isHorizontalTrack)
  24.                     {
  25.                         mousePoint.Y =
  26.                             yCalc.GetCoordinate(series.GetInterpolatedValue(xCalc.GetDataValue(mousePoint.X)));
  27.  
  28.                         unitsPerPixel = Math.Abs(xyScatterRenderableSeries.CurrentRenderPassData.XCoordinateCalculator.GetDataValue(mousePoint.X + 1) -
  29.                             xyScatterRenderableSeries.CurrentRenderPassData.XCoordinateCalculator.GetDataValue(mousePoint.X));
  30.                     }
  31.                     else
  32.                     {
  33.                         mousePoint.X =
  34.                             yCalc.GetCoordinate(series.GetInterpolatedValue(xCalc.GetDataValue(mousePoint.Y)));
  35.  
  36.                         unitsPerPixel = Math.Abs(xyScatterRenderableSeries.CurrentRenderPassData.XCoordinateCalculator.GetDataValue(mousePoint.Y + 1) -
  37.                             xyScatterRenderableSeries.CurrentRenderPassData.XCoordinateCalculator.GetDataValue(mousePoint.Y));
  38.                     }
  39.  
  40.                     var hitTestInfo = xyScatterRenderableSeries.HitTest(mousePoint);
  41.  
  42.                     var pointMarkerRadius = xyScatterRenderableSeries.PointMarker == null ? 0 :
  43.                         Math.Max(xyScatterRenderableSeries.PointMarker.Width, xyScatterRenderableSeries.PointMarker.Height) / 2;
  44.                     var hitRadius = (BaseRenderableSeries.DefaultHitTestRadius + xyScatterRenderableSeries.StrokeThickness / 2d + pointMarkerRadius) * unitsPerPixel;
  45.                     if (Math.Abs(Convert.ToDouble(hitTestInfo.XValue) - xValue) > hitRadius) return info;
  46.  
  47.                     return hitTestInfo;
  48.                 }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement