我能用Oxyplot画出积分的面积吗?

本文关键字:Oxyplot | 更新日期: 2023-09-27 18:14:30

是否可以在Oxyplot中画出某个积分的面积?

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

我能用Oxyplot画出积分的面积吗?

我不是这方面的专家,但我可能发现了一些对你有用的东西…看看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;

现在你只需要添加你需要的公式,它应该显示一个类似的图表,你在你的评论