예제 #1
0
 public override void DrawLineRange(List <KChartEntry> list, int seriesIndex, KLineStyle lineStyle, SKColor color, Swipe pinchPan)
 {
     if (list.Count > 1)
     {
         using (var paint = new SKPaint {
             Style = SKPaintStyle.Fill,
             Color = color,
             IsAntialias = true,
         }) {
             var         path       = new SKPath();
             KChartEntry entry0     = list[0];
             SKPoint     meanPoint0 = entry0.Ypoint[seriesIndex];
             float       range0     = entry0.YpointRange[seriesIndex];
             path.MoveTo(pinchPan % new SKPoint(meanPoint0.X, meanPoint0.Y + range0));
             path.LineTo(pinchPan % new SKPoint(meanPoint0.X, meanPoint0.Y - range0));
             for (int i = 0; i < list.Count; i++)
             {
                 KChartEntry entry     = list[i];
                 SKPoint     meanPoint = entry.Ypoint[seriesIndex];
                 float       range     = entry.YpointRange[seriesIndex];
                 path.LineTo(pinchPan % new SKPoint(meanPoint.X, meanPoint.Y - range));
             }
             for (int i = list.Count - 1; i >= 0; i--)
             {
                 KChartEntry entry     = list[i];
                 SKPoint     meanPoint = entry.Ypoint[seriesIndex];
                 float       range     = entry.YpointRange[seriesIndex];
                 path.LineTo(pinchPan % new SKPoint(meanPoint.X, meanPoint.Y + range));
             }
             path.Close();
             canvas.DrawPath(path, paint);
         }
     }
 }
예제 #2
0
 public override void DrawLine(List <KChartEntry> list, int seriesIndex, KLineStyle lineStyle, SKColor color, Swipe pinchPan)
 {
     if (list.Count > 1)
     {
         using (var paint = new SKPaint {
             Style = SKPaintStyle.Stroke,
             Color = color,
             StrokeWidth = lineStyle == KLineStyle.Thick ? 6 : 2,
             IsAntialias = true,
         }) {
             var path = new SKPath();
             path.MoveTo(pinchPan % list[0].Ypoint[seriesIndex]);
             for (int i = 0; i < list.Count; i++)
             {
                 path.LineTo(pinchPan % list[i].Ypoint[seriesIndex]);
             }
             canvas.DrawPath(path, paint);
         }
     }
 }