如何填充两个样条线或线之间的区域

战车

我有这个Chart

在此处输入图片说明

如何填充两个之间的区域Series S0 and S1,例如蓝色和黄色Series

战车

为此,我们对Paint事件之一进行编码

在此处输入图片说明

这里的ValueToPixelPosition函数是有效的,并为我们提供了DataPoint值和Chart像素之间的必要转换

private void chart1_Paint(object sender, PaintEventArgs e)
{
    // we assume two series variables are set..:
    if (sps1 == null || sps2 == null) return;

    // short references:
    Axis ax = chart1.ChartAreas[0].AxisX;
    Axis ay = chart1.ChartAreas[0].AxisY;

    // now we convert all values to pixels
    List<PointF> points1 =  sps1.Points.Select(x=>
        new PointF((float)ax.ValueToPixelPosition(x.XValue), 
                   (float)ay.ValueToPixelPosition(x.YValues[0]))).ToList();

    List<PointF> points2 =  sps2.Points.Select(x=>
        new PointF((float)ax.ValueToPixelPosition(x.XValue), 
                   (float)ay.ValueToPixelPosition(x.YValues[0]))).ToList();

    // one list forward, the other backward:
    points2.Reverse();

    GraphicsPath gp = new GraphicsPath();
    gp.FillMode = FillMode.Winding;  // the right fillmode

    // it will work fine with either Splines or Lines:
    if (sps1.ChartType == SeriesChartType.Spline )   gp.AddCurve(points1.ToArray());
    else gp.AddLines(points1.ToArray());
    if (sps2.ChartType == SeriesChartType.Spline) gp.AddCurve(points2.ToArray());
    else gp.AddLines(points2.ToArray()); 

    // pick your own color, maybe a mix of the Series colors..
    using (SolidBrush brush = new SolidBrush(Color.FromArgb(66, Color.DarkCyan)))
        e.Graphics.FillPath(brush, gp);
    gp.Dispose();
}

请注意,未对此进行缩放测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除两个CGpoint之间的线?

来自分类Dev

从文件中提取两个模式之间的线

来自分类Dev

MATLAB线之间的填充区域

来自分类Dev

使用sed合并两个模式之间的线

来自分类Dev

两个div之间的hr线

来自分类Dev

两个模式之间的awk / sed插入线

来自分类Dev

jQuery Flot ...如何填充样条线?

来自分类Dev

填充两个功能之间的区域

来自分类Dev

跳过或删除两个图案之间的线

来自分类Dev

在图中搜索两个样条线的交点

来自分类Dev

如何简化样条线?

来自分类Dev

如何填充线之间的空间?

来自分类Dev

在线上的两个点之间设置线颜色

来自分类Dev

如何制作一个在刻度线的两个值之间跳动的函数?

来自分类Dev

如何删除两个CGpoint之间的线?

来自分类Dev

如何获取两个.csv文件之间的交线?

来自分类Dev

使用sed合并两个模式之间的线

来自分类Dev

两个div之间的hr线

来自分类Dev

填充两条水平线之间的区域

来自分类Dev

在MATLAB中遮蔽两个线向量之间的区域

来自分类Dev

寻找两个样条线之间的最小距离

来自分类Dev

两个div之间的分隔线

来自分类Dev

我需要两个匹配模式之间的线数

来自分类Dev

jQuery Flot ...如何填充样条线?

来自分类Dev

awk问题在两个模式之间选择线

来自分类Dev

如何简化样条线?

来自分类Dev

如何填充线之间的空间?

来自分类Dev

两个元素之间的黑色1px线

来自分类Dev

填充图中多条线之间的区域