我可以用Oxyplot绘制积分区域吗?

时间:2015-09-25 18:54:25

标签: c# integral oxyplot mathnet

是否可以在Oxyplot中绘制某个积分的区域?

使用MathNet.Numerics库可以计算这些积分,但我想知道我是否能够在我的情节中绘制它?

1 个答案:

答案 0 :(得分:3)

我不是这方面的专家,但我可能找到了对你有用的东西...... 看看AreaSeries。我认为这就是你所需要的。

示例:

        var model = new PlotModel { Title = "AreaSeries" };

        var series = new AreaSeries { Title = "integral" };
        for (double x = -10; x <= 10; x++)
        {
            series.Points.Add(new DataPoint(x, (-1 * (x * x) + 50)));
        }

        model.Series.Add(series);

然后将模型设置为PlotView.Model,您应该会看到与您在上述评论中发布的内容类似的情节。

我希望这适合你。

-----编辑(由于答案中的评论)-----

事实证明,你实际上可以做你在评论中提出的问题。您只需要用AreaSeries.Points2填写要限制区域的点数即可。例如,在我之前的示例中添加for以下行

series.Points2.Add(new DataPoint(x, x));

然后您将由两行定义区域:y = -x^2 + 50y = x。您甚至可以将第二行设置为透明。

完整示例:

        var model = new PlotModel { Title = "AreaSeries" };

        var series = new AreaSeries { Title = "series" };
        for (double x = -10; x <= 10; x++)
        {
            series.Points.Add(new DataPoint(x, (-1 * (x * x) + 50)));
            series.Points2.Add(new DataPoint(x, x));
        }
        series.Color2 = OxyColors.Transparent;

        model.Series.Add(series);

        plotView.Model = model;

现在您只需要添加所需的公式,它应该显示与您在评论中放置的图形类似的图形。