我可以用 Oxyplot 绘制积分面积吗?

Can I draw the area of an integral with Oxyplot?

Oxyplot可以画出某个积分的面积吗?

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

我不是这方面的专家,但我可能找到了对你有帮助的东西...... 看看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;

现在您只需添加所需的公式,它应该会显示与您在评论中输入的图表类似的图表。