コード例 #1
0
ファイル: SvgPainter.cs プロジェクト: luca-cardelli/KaemikaXM
 public /*interface ChartPainter*/ void DrawCourseRange(List <KChartEntry> list, int seriesIndex, SKColor color, Swipe pinchPan)
 {
     if (list.Count > 1)
     {
         using (var paint = FillPaint(color)) {
             NewPolygon(paint);
             KChartEntry entry0     = list[0];
             SKPoint     meanPoint0 = entry0.Ypoint[seriesIndex];
             float       range0     = entry0.YpointRange[seriesIndex];
             MoveTo(pinchPan % new SKPoint(meanPoint0.X, meanPoint0.Y + range0));
             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];
                 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];
                 LineTo(pinchPan % new SKPoint(meanPoint.X, meanPoint.Y + range));
             }
             EndPolygon();
         }
     }
 }
コード例 #2
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);
         }
     }
 }
コード例 #3
0
 public /*interface ChartPainter*/ void DrawCourseRange(List <KChartEntry> list, int seriesIndex, SKColor color, Swipe pinchPan)
 {
     if (list.Count == 1)
     {
         DrawCircle(list[0].Ypoint[seriesIndex], pinchPan % 8, FillPaint(color));
     }
     if (list.Count > 1)
     {
         canvas.SetFillColor(CG.Color(color));
         var         path       = new CGPath();
         KChartEntry entry0     = list[0];
         SKPoint     meanPoint0 = entry0.Ypoint[seriesIndex];
         float       range0     = entry0.YpointRange[seriesIndex];
         path.MoveToPoint(CG.Point(pinchPan % new SKPoint(meanPoint0.X, meanPoint0.Y + range0)));
         path.AddLineToPoint(CG.Point(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.AddLineToPoint(CG.Point(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.AddLineToPoint(CG.Point(pinchPan % new SKPoint(meanPoint.X, meanPoint.Y + range)));
         }
         path.CloseSubpath();
         canvas.AddPath(path);
         canvas.FillPath();
     }
 }
コード例 #4
0
 public /*interface ChartPainter*/ void DrawCourseRange(List <KChartEntry> list, int seriesIndex, SKColor color, Swipe pinchPan)
 {
     if (list.Count == 1)
     {
         canvas.DrawCircle(list[0].Ypoint[seriesIndex], pinchPan % 3, FillPaint(color));
     }
     if (list.Count > 1)
     {
         using (var paint = FillPaint(color)) {
             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);
         }
     }
 }